diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 085dbcec2565..862add9f8a30 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -321,13 +321,13 @@ jobs:
- name: validate generation configuration
shell: bash
run: |
- docker run \
- --rm \
+ bash generation/run_generator_docker.sh "${library_generation_image_tag}" "${{ github.base_ref || 'main' }}" \
+ -e GENERATOR_VERSION="${library_generation_image_tag}" \
--quiet \
-u "$(id -u):$(id -g)" \
-v "$(pwd):${workspace_name}" \
--entrypoint python \
- gcr.io/cloud-devrel-public-resources/java-library-generation:"${library_generation_image_tag}" \
+ -- \
/src/library_generation/cli/entry_point.py validate-generation-config
env:
library_generation_image_tag: 2.68.0
diff --git a/.github/workflows/generated_files_sync.yaml b/.github/workflows/generated_files_sync.yaml
index 3143a317c9e3..bc0a21636d3d 100644
--- a/.github/workflows/generated_files_sync.yaml
+++ b/.github/workflows/generated_files_sync.yaml
@@ -17,7 +17,7 @@ on:
pull_request:
name: generation diff
env:
- library_generation_image_tag: 2.71.0 # {x-version-update:gapic-generator-java:current}
+ library_generation_image_tag: 9.99.9 # {x-version-update:gapic-generator-java:current}
jobs:
root-pom:
# root pom.xml does not have diff from generated one
@@ -27,13 +27,12 @@ jobs:
- name: Generate root pom.xml file
shell: bash
run: |
- docker run \
- --rm \
+ bash generation/run_generator_docker.sh "${library_generation_image_tag}" "${{ github.base_ref }}" \
--quiet \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/workspace" \
--entrypoint python \
- gcr.io/cloud-devrel-public-resources/java-library-generation:"${library_generation_image_tag}" \
+ -- \
/src/library_generation/cli/generate_monorepo_root_pom.py \
generate \
--repository-path=/workspace
@@ -48,13 +47,12 @@ jobs:
- name: Generate gapic-libraries-bom/pom.xml
shell: bash
run: |
- docker run \
- --rm \
+ bash generation/run_generator_docker.sh "${library_generation_image_tag}" "${{ github.base_ref }}" \
--quiet \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/workspace" \
--entrypoint python \
- gcr.io/cloud-devrel-public-resources/java-library-generation:"${library_generation_image_tag}" \
+ -- \
/src/library_generation/cli/generate_monorepo_gapic_bom.py \
generate \
--repository-path=/workspace \
diff --git a/.github/workflows/hermetic_library_generation.yaml b/.github/workflows/hermetic_library_generation.yaml
index 74fec93e13d8..42dcd405eeb4 100644
--- a/.github/workflows/hermetic_library_generation.yaml
+++ b/.github/workflows/hermetic_library_generation.yaml
@@ -20,6 +20,9 @@ on:
env:
REPO_FULL_NAME: ${{ github.event.pull_request.head.repo.full_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
+ # {x-version-update-start:gapic-generator-java:current}
+ GENERATOR_VERSION: 2.71.0
+ # {x-version-update-end}
jobs:
library_generation:
runs-on: ubuntu-latest
@@ -44,4 +47,4 @@ jobs:
head_ref: ${{ github.head_ref }}
token: ${{ secrets.CLOUD_JAVA_BOT_GITHUB_TOKEN }}
force_regenerate_all: ${{ github.event.pull_request.head.ref == 'generate-libraries-main' }}
- image_tag: 2.71.0 # {x-version-update:gapic-generator-java:current}
+ image_tag: ${{ env.GENERATOR_VERSION }}
diff --git a/.kokoro/common.sh b/.kokoro/common.sh
index cf6b8e47ff7e..5b182bc48c5b 100644
--- a/.kokoro/common.sh
+++ b/.kokoro/common.sh
@@ -236,6 +236,7 @@ function generate_modified_modules_list() {
# grep returns 1 (error code) and exits the pipeline if there is no match
# If there is no match, it will return true so the rest of the commands can run
git config --global --add safe.directory $(realpath .)
+ git fetch origin "${KOKORO_GITHUB_PULL_REQUEST_TARGET_BRANCH}" || true
modified_files=$(git diff --name-only "${KOKORO_GITHUB_PULL_REQUEST_TARGET_BRANCH}...${KOKORO_GITHUB_PULL_REQUEST_COMMIT}")
printf "Modified files:\n%s\n" "${modified_files}"
diff --git a/WORKSPACE b/WORKSPACE
index 91d2cb646fa0..475aadca8742 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -67,7 +67,7 @@ load("@rules_jvm_external//:defs.bzl", "maven_install")
load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS")
load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS")
-_gapic_generator_java_version = "2.71.0" # {x-version-update:gapic-generator-java:current}
+_gapic_generator_java_version = "9.99.9" # {x-version-update:gapic-generator-java:current}
maven_install(
artifacts = [
diff --git a/generation/run_generator_docker.sh b/generation/run_generator_docker.sh
new file mode 100755
index 000000000000..4255747319da
--- /dev/null
+++ b/generation/run_generator_docker.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+# Copyright 2026 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exo pipefail
+
+REQUESTED_TAG="$1"
+TARGET_BRANCH="$2"
+shift 2
+
+# Parse arguments using '--' as delimiter
+DOCKER_OPTS=()
+CONTAINER_CMD=()
+found_delimiter=false
+
+for arg in "$@"; do
+ if [ "$arg" == "--" ]; then
+ found_delimiter=true
+ continue
+ fi
+ if $found_delimiter; then
+ CONTAINER_CMD+=("$arg")
+ else
+ DOCKER_OPTS+=("$arg")
+ fi
+done
+
+IMAGE_NAME="gcr.io/cloud-devrel-public-resources/java-library-generation"
+# Support both local git and GitHub Actions environment variables
+CURRENT_BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME:-$(git branch --show-current)}}"
+IMAGE_TAG="$REQUESTED_TAG"
+
+# Fallback logic on Release PR branches
+if [[ "$CURRENT_BRANCH" =~ ^release-please-- ]]; then
+ echo "Detected release PR branch: $CURRENT_BRANCH"
+ if ! docker pull "${IMAGE_NAME}:${IMAGE_TAG}"; then
+ echo "Image not found for version ${IMAGE_TAG}. Falling back to previous version from ${TARGET_BRANCH}."
+ # Extract tag from target branch's versions.txt using explicit fetch
+ git fetch origin "${TARGET_BRANCH}" --depth=1 || true
+ PREVIOUS_TAG=$(git show FETCH_HEAD:versions.txt | grep "^gapic-generator-java:" | cut -d ':' -f 2 || true)
+ if [ -n "$PREVIOUS_TAG" ]; then
+ echo "Using previous image version: $PREVIOUS_TAG"
+ IMAGE_TAG="$PREVIOUS_TAG"
+ else
+ echo "Failed to extract fallback tag. Proceeding with requested tag."
+ fi
+ fi
+fi
+
+# Execute Docker run with proper ordering
+docker run --rm "${DOCKER_OPTS[@]}" "${IMAGE_NAME}:${IMAGE_TAG}" "${CONTAINER_CMD[@]}"
diff --git a/generation_config.yaml b/generation_config.yaml
index d10cf1c50168..add660b31a8b 100644
--- a/generation_config.yaml
+++ b/generation_config.yaml
@@ -1,4 +1,3 @@
-gapic_generator_version: 2.70.0
googleapis_commitish: 62e4ecb2f4390728990514fea14aad0431881a52
libraries_bom_version: 26.79.0
libraries:
diff --git a/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile b/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile
index dd805ecfc362..72a15ec555d9 100644
--- a/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile
+++ b/sdk-platform-java/.cloudbuild/library_generation/library_generation.Dockerfile
@@ -22,7 +22,7 @@ WORKDIR /google-cloud-java
COPY . .
# {x-version-update-start:gapic-generator-java:current}
-ENV DOCKER_GAPIC_GENERATOR_VERSION="2.71.0"
+ENV DOCKER_GAPIC_GENERATOR_VERSION="9.99.9"
# {x-version-update-end}
# Download the java formatter
@@ -43,6 +43,10 @@ ARG GRPC_VERSION=1.80.0
ENV HOME=/home
ENV OS_ARCHITECTURE="linux-x86_64"
+# {x-version-update-start:gapic-generator-java:current}
+ENV GENERATOR_VERSION="9.99.9"
+# {x-version-update-end}
+
# install OS tools
RUN apt update && apt install -y curl unzip rsync jq nodejs npm git openjdk-17-jdk
diff --git a/sdk-platform-java/.github/scripts/hermetic_library_generation.sh b/sdk-platform-java/.github/scripts/hermetic_library_generation.sh
index fc991aa3e94d..c254aae64b3a 100755
--- a/sdk-platform-java/.github/scripts/hermetic_library_generation.sh
+++ b/sdk-platform-java/.github/scripts/hermetic_library_generation.sh
@@ -27,6 +27,7 @@ set -exo pipefail
# the default value is generation_config.yaml in the repository root.
# 5. [optional] showcase_mode, true if we wish to download the showcase api
# definitions, which are necessary for generating the showcase library.
+IMAGE_NAME="gcr.io/cloud-devrel-public-resources/java-library-generation"
while [[ $# -gt 0 ]]; do
key="$1"
case "${key}" in
@@ -123,13 +124,12 @@ changed_libraries="$(cat "${changed_libraries_file}")"
echo "Changed libraries are: ${changed_libraries:-"No changed library"}."
# run hermetic code generation docker image.
-docker run \
- --rm \
+bash generation/run_generator_docker.sh "${image_tag}" "${target_branch}" \
-u "$(id -u):$(id -g)" \
-v "$(pwd):${workspace_name}" \
-v "${api_def_dir}:${workspace_name}/googleapis" \
-e GENERATOR_VERSION="${image_tag}" \
- gcr.io/cloud-devrel-public-resources/java-library-generation:"${image_tag}" \
+ -- \
--generation-config-path="${workspace_name}/${generation_config}" \
--library-names="${changed_libraries}" \
--api-definitions-path="${workspace_name}/googleapis"
diff --git a/sdk-platform-java/api-common-java/pom.xml b/sdk-platform-java/api-common-java/pom.xml
index 881eac206666..ce9b9c96c6e7 100644
--- a/sdk-platform-java/api-common-java/pom.xml
+++ b/sdk-platform-java/api-common-java/pom.xml
@@ -12,7 +12,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/gapic-generator-java-bom/pom.xml b/sdk-platform-java/gapic-generator-java-bom/pom.xml
index f9ef334121d8..edd5042280e7 100644
--- a/sdk-platform-java/gapic-generator-java-bom/pom.xml
+++ b/sdk-platform-java/gapic-generator-java-bom/pom.xml
@@ -4,7 +4,7 @@
com.google.api
gapic-generator-java-bom
pom
- 2.71.0
+ 9.99.9
GAPIC Generator Java BOM
BOM for the libraries in gapic-generator-java repository. Users should not
@@ -15,7 +15,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
@@ -100,7 +100,7 @@
com.google.api
gapic-generator-java
- 2.71.0
+ 9.99.9
com.google.api.grpc
diff --git a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml
index 3b7f133acc76..f8ff47b18361 100644
--- a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml
+++ b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
pom
GAPIC Generator Java POM Parent
https://github.com/googleapis/sdk-platform-java
diff --git a/sdk-platform-java/gapic-generator-java/pom.xml b/sdk-platform-java/gapic-generator-java/pom.xml
index da49819c86bb..f3785c09b42d 100644
--- a/sdk-platform-java/gapic-generator-java/pom.xml
+++ b/sdk-platform-java/gapic-generator-java/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.google.api
gapic-generator-java
- 2.71.0
+ 9.99.9
GAPIC Generator Java
GAPIC generator Java
@@ -23,7 +23,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
@@ -32,7 +32,7 @@
com.google.api
gapic-generator-java-bom
- 2.71.0
+ 9.99.9
pom
import
diff --git a/sdk-platform-java/gax-java/pom.xml b/sdk-platform-java/gax-java/pom.xml
index 558194b4f78d..3836613bad36 100644
--- a/sdk-platform-java/gax-java/pom.xml
+++ b/sdk-platform-java/gax-java/pom.xml
@@ -11,7 +11,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE b/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE
index 60b3036d9daf..96c71225aced 100644
--- a/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE
+++ b/sdk-platform-java/hermetic_build/common/tests/resources/misc/TESTWORKSPACE
@@ -62,7 +62,7 @@ maven_install(
repositories = ["https://repo.maven.apache.org/maven2/"],
)
-_gapic_generator_java_version = "2.25.1-SNAPSHOT" # {x-version-update:gapic-generator-java:current}
+_gapic_generator_java_version = "9.99.9" # {x-version-update:gapic-generator-java:current}
maven_install(
artifacts = [
diff --git a/sdk-platform-java/java-common-protos/pom.xml b/sdk-platform-java/java-common-protos/pom.xml
index 9dca49783ba9..4bdf4ccdc658 100644
--- a/sdk-platform-java/java-common-protos/pom.xml
+++ b/sdk-platform-java/java-common-protos/pom.xml
@@ -13,7 +13,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml b/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml
index 4857efd40145..2483c1c240e9 100644
--- a/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml
+++ b/sdk-platform-java/java-core/google-cloud-core-bom/pom.xml
@@ -9,7 +9,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/java-core/pom.xml b/sdk-platform-java/java-core/pom.xml
index 254b6d2c10c3..2cc105cb321c 100644
--- a/sdk-platform-java/java-core/pom.xml
+++ b/sdk-platform-java/java-core/pom.xml
@@ -13,7 +13,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/java-iam/pom.xml b/sdk-platform-java/java-iam/pom.xml
index 339a16102230..99080cd98216 100644
--- a/sdk-platform-java/java-iam/pom.xml
+++ b/sdk-platform-java/java-iam/pom.xml
@@ -13,7 +13,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml b/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml
index 3283683e9886..652f7c922ddd 100644
--- a/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml
+++ b/sdk-platform-java/java-shared-dependencies/first-party-dependencies/pom.xml
@@ -32,7 +32,7 @@
com.google.api
gapic-generator-java-bom
- 2.71.0
+ 9.99.9
pom
import
diff --git a/sdk-platform-java/java-shared-dependencies/pom.xml b/sdk-platform-java/java-shared-dependencies/pom.xml
index 6eea01d40b57..4b2123efc7c8 100644
--- a/sdk-platform-java/java-shared-dependencies/pom.xml
+++ b/sdk-platform-java/java-shared-dependencies/pom.xml
@@ -17,7 +17,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../gapic-generator-java-pom-parent
diff --git a/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml b/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml
index b372ed8aa93d..dd443f9dab29 100644
--- a/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml
+++ b/sdk-platform-java/java-shared-dependencies/third-party-dependencies/pom.xml
@@ -15,7 +15,7 @@
com.google.api
gapic-generator-java-pom-parent
- 2.71.0
+ 9.99.9
../../gapic-generator-java-pom-parent