Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
7b5df74
chore(java-pubsub): improve monorepo migration tooling
meltsufin Apr 29, 2026
110e1db
chore(java-pubsub): inject SHAs and fetch-depth for lint jobs
meltsufin Apr 29, 2026
b7038a3
chore(java-pubsub): add conditional version check to core migration s…
meltsufin Apr 29, 2026
ed02927
impl(java-pubsub): dynamically exempt unmanaged modules from global m…
meltsufin Apr 30, 2026
0d91612
chore: integrate version alignment and owlbot formatting into migrate…
meltsufin Apr 30, 2026
19d4690
chore: allow MIGRATION_HEAD_BRANCH override in migrate-pubsub.sh
meltsufin Apr 30, 2026
c33bb07
chore: revert MIGRATION_HEAD_BRANCH to main
meltsufin Apr 30, 2026
0524369
chore: migrate GraalVM Native presubmit config in migration script
meltsufin Apr 30, 2026
319b79d
chore: migrate GraalVM and Integration presubmit configs in migration…
meltsufin Apr 30, 2026
e9afc54
chore: preserve GEMINI.md and DEVELOPMENT.md during migration
meltsufin May 1, 2026
ca74740
chore: add update_ci_filters.py and integrate with migrate script
meltsufin May 1, 2026
211ca9b
feat: add script to transfer issues
chingor13 Mar 26, 2026
32bcb18
chore: add update_changes_filters.py and integrate into migrate script
meltsufin May 1, 2026
479db0f
chore: update repo-metadata.json repo and repo_short entries
meltsufin May 1, 2026
7e55423
chore: add bulkTests profile automatically during pom modernization
meltsufin May 1, 2026
d988836
chore: switch migration from read-tree to filter-repo
meltsufin May 1, 2026
bf47e7e
chore: add local git-filter-repo PATH injection in migrate script
meltsufin May 1, 2026
447780b
chore: add SKIP_SOURCE_UPDATE option to migrate script
meltsufin May 1, 2026
fbf6cf8
chore: fix syntax error in apply_versions.sh
meltsufin May 1, 2026
bf971c1
chore: fix OwlBot pathing and origin remote bug
meltsufin May 1, 2026
6046ced
chore: remove unnecessary repo_short update to prevent clash with bot
meltsufin May 1, 2026
d47bf84
chore: strip java- prefix from migrated Kokoro cfg filenames
meltsufin May 1, 2026
9826abb
chore: auto-substitute java8 trampoline image for java11 in migrated …
meltsufin May 1, 2026
a381be0
chore(migration): optimize paths, add workspace protection guard and …
meltsufin May 3, 2026
416fbaf
chore(migration): add initial source repository cleanup at startup
meltsufin May 3, 2026
cbecea0
chore: enhance monorepo migration scripts with generic exclusions and…
meltsufin May 3, 2026
eb81cb3
chore: isolate bulkTests profile injection to library root POM only
meltsufin May 3, 2026
1856fcf
chore(migration): support root centralized custom conformance migration
meltsufin May 3, 2026
9099380
chore(migration): support glob-based loop migration for all integrati…
meltsufin May 4, 2026
327bf03
chore(migration): exclude hyphenated unmanaged dependency check workf…
meltsufin May 4, 2026
e226bb8
fix(migration): correct variable expansion for known failures databas…
meltsufin May 4, 2026
5cfc07d
chore(migration): register custom test-proxy submodules inside parent…
meltsufin May 4, 2026
2d4d48c
fix(migration): dynamically patch .kokoro/build.sh in target clone fo…
meltsufin May 4, 2026
c68578c
chore(migration): automatically upgrade java-version from 8 to 11 ins…
meltsufin May 4, 2026
b95251a
fix(migration): pre-install library BOM modules to cache snapshots fo…
meltsufin May 4, 2026
6016fc5
fix(migration): pre-install shared dependencies BOM into local m2 cac…
meltsufin May 5, 2026
f0be604
fix(migration): declare shared dependencies submodules directly in co…
meltsufin May 5, 2026
2414757
impl(migration): bypass unit test deadlock during pubsub staging veri…
meltsufin May 6, 2026
8bfc211
impl(migration): simplify conformance.sh staging using sequential pus…
meltsufin May 6, 2026
92732dc
impl(migration): scope conformance.sh compilation to subdirectory rea…
meltsufin May 6, 2026
39f3981
impl(migration): refactor pre-installation to delegate to standard in…
meltsufin May 7, 2026
63db709
impl(migration): adapt samples build configurations during migration
meltsufin May 8, 2026
e197bdc
impl(migration): fix grep option typo in issues migration script
meltsufin May 8, 2026
6975a47
fix(migration): inject fallback SHAs in GHA workflows for push events
meltsufin May 8, 2026
7603a3a
fix(ci): add checkout step in changes job of ci.yaml to prevent push …
meltsufin May 8, 2026
92ab479
impl(migration): support pagination limit in issues migration script
meltsufin May 8, 2026
7e199e5
fix(ci): sweep and inject GHA fallback SHAs inside all client library…
meltsufin May 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ jobs:
outputs:
packages: ${{ steps.filter.outputs.changes }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
Expand Down Expand Up @@ -338,8 +339,8 @@ jobs:
- run: .kokoro/build.sh
env:
JOB_TYPE: lint
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
enforcer:
runs-on: ubuntu-latest
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/java-bigtable-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ jobs:
- run: .kokoro/build.sh
env:
JOB_TYPE: lint
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
clirr:
needs: filter
if: ${{ needs.filter.outputs.library == 'true' }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/java-pubsub-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ jobs:
- run: .kokoro/build.sh
env:
JOB_TYPE: lint
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
clirr:
needs: filter
if: ${{ needs.filter.outputs.library == 'true' }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/java-spanner-jdbc-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ jobs:
- run: .kokoro/build.sh
env:
JOB_TYPE: lint
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
required:
needs: [ units, units-java8, windows, dependencies, javadoc, lint ]
name: conditional-required-check
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/java-storage-nio-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ jobs:
- run: .kokoro/build.sh
env:
JOB_TYPE: lint
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
required:
needs: [ units, units-java8, windows, dependencies, javadoc, lint ]
name: conditional-required-check
Expand Down
2 changes: 1 addition & 1 deletion generation/apply_versions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ if [[ "$column_name" == "released" ]]; then
column_index=2
elif [[ "$column_name" == "current" ]]; then
column_index=3
elif "$column_name" != "current" ]]; then
elif [[ "$column_name" != "current" ]]; then
echo "Error: column_name must be either 'released' or 'current'"
exit 1
fi
Expand Down
5 changes: 4 additions & 1 deletion generation/update_owlbot_postprocessor_config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@

set -e

for dir in $(find . -mindepth 2 -maxdepth 2 -name owlbot.py | grep -v 'java-common-protos/' | grep -v 'java-iam/' | grep -v 'java-showcase/' | sort | xargs dirname ); do
TARGET_MODULE="${1:-.}"

for owlbot_script in $(find "$TARGET_MODULE" -name owlbot.py | grep -v 'java-common-protos/' | grep -v 'java-iam/' | grep -v 'java-showcase/' | sort); do
dir=$(dirname "$owlbot_script")
pushd "$dir"

# form a perl command to replace java.common_templates() invocation
Expand Down
3 changes: 3 additions & 0 deletions monorepo-migration/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.git-filter-repo/
__pycache__/
*.pyc
45 changes: 45 additions & 0 deletions monorepo-migration/migrate-bigtable.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/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.

# Exit on error
set -e

# Get absolute paths
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MONOREPO_ROOT="$(dirname "$SCRIPT_DIR")"

echo "========================================================"
echo " Staging java-bigtable migration"
echo "========================================================"

# 1. Configure environment for the base migrate.sh script
export SOURCE_REPO_URL="https://github.com/googleapis/java-bigtable"
export MIGRATION_HEAD_BRANCH="main"
export SQUASH_COMMITS="false"
export CODEOWNER="@googleapis/bigtable-team"
export BOM_SUBSTITUTIONS="gapic-libraries-bom:google-cloud-monitoring-bom"
export PRE_INSTALL_DEPS="java-monitoring/google-cloud-monitoring-bom,java-monitoring/google-cloud-monitoring"

# 2. Execute the central migration script
"${SCRIPT_DIR}/migrate.sh"

echo ""
echo "========================================================"
echo "Migration staged successfully!"
echo "Results are available in the isolated clone:"
echo " migration-work/google-cloud-java-target"
echo "Current Branch: migrate-java-bigtable"
echo "Next Steps: cd migration-work/google-cloud-java-target && mvn clean install -DskipTests"
echo "========================================================"
43 changes: 43 additions & 0 deletions monorepo-migration/migrate-firestore.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/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.

# Exit on error
set -e

# Get absolute paths
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MONOREPO_ROOT="$(dirname "$SCRIPT_DIR")"

echo "========================================================"
echo " Staging java-firestore migration"
echo "========================================================"

# 1. Configure environment for the base migrate.sh script
export SOURCE_REPO_URL="https://github.com/googleapis/java-firestore"
export MIGRATION_HEAD_BRANCH="main"
export SQUASH_COMMITS="false"
export CODEOWNER="@googleapis/firestore-team"

# 2. Execute the central migration script
"${SCRIPT_DIR}/migrate.sh"

echo ""
echo "========================================================"
echo "Migration staged successfully!"
echo "Results are available in the isolated clone:"
echo " migration-work/google-cloud-java-target"
echo "Current Branch: migrate-java-firestore"
echo "Next Steps: cd migration-work/google-cloud-java-target && mvn clean install -DskipTests"
echo "========================================================"
46 changes: 46 additions & 0 deletions monorepo-migration/migrate-pubsub.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/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.

# Exit on error
set -e

# Get absolute paths
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MONOREPO_ROOT="$(dirname "$SCRIPT_DIR")"

echo "========================================================"
echo " Staging java-pubsub migration"
echo "========================================================"

# 1. Configure environment for the base migrate.sh script
export SOURCE_REPO_URL="https://github.com/googleapis/java-pubsub"
export MIGRATION_HEAD_BRANCH="main"
export SQUASH_COMMITS="false"
export CODEOWNER="@googleapis/pubsub-team"
export SUREFIRE_JVM_OPT="-DskipTests"

# 2. Execute the central migration script
# This performs git read-tree, POM modernization, workflow transformation, and generation config updates.
# Note: migrate.sh works in an isolated sibling clone to avoid polluting the active workspace.
"${SCRIPT_DIR}/migrate.sh"

echo ""
echo "========================================================"
echo "Migration staged successfully!"
echo "Results are available in the isolated clone:"
echo " ../../migration-work/google-cloud-java-target"
echo "Current Branch: migrate-java-pubsub"
echo "Next Steps: cd ../../migration-work/google-cloud-java-target && mvn clean install -DskipTests"
echo "========================================================"
Loading
Loading