From b473cd4ec4b8b7b6f9177578fce9c9d368613d15 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 11:38:30 -0400 Subject: [PATCH 01/29] chore: Create shells scripts to automate testing downstream ITs --- .github/check_pr_status.sh | 95 ++++++++++++++++++++++++ .github/update_prs.sh | 148 +++++++++++++++++++++++++++++++++++++ 2 files changed, 243 insertions(+) create mode 100755 .github/check_pr_status.sh create mode 100755 .github/update_prs.sh diff --git a/.github/check_pr_status.sh b/.github/check_pr_status.sh new file mode 100755 index 0000000000..25acec6cea --- /dev/null +++ b/.github/check_pr_status.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +# A script to check the status of a specific CI job ("Kokoro - Test: Integration") +# for a list of GitHub Pull Requests. +# +# Assumes the user has the GitHub CLI (`gh`) installed and is authenticated. + +# --- Configuration --- +# Add the list of GitHub PR URLs you want to check into this array. +PULL_REQUESTS=( + "https://github.com/googleapis/java-bigtable/pull/2614" + "https://github.com/googleapis/java-bigquery/pull/3867" + "https://github.com/googleapis/java-bigquerystorage/pull/3030" + "https://github.com/googleapis/java-datastore/pull/1900" + "https://github.com/googleapis/java-firestore/pull/2165" + "https://github.com/googleapis/java-logging/pull/1825" + "https://github.com/googleapis/java-logging-logback/pull/1492" + "https://github.com/googleapis/java-pubsub/pull/2470" + "https://github.com/googleapis/java-pubsublite/pull/1889" + "https://github.com/googleapis/java-spanner/pull/3928" + "https://github.com/googleapis/java-spanner-jdbc/pull/2113" + "https://github.com/googleapis/java-storage/pull/3178" + "https://github.com/googleapis/java-storage-nio/pull/1612" + "https://github.com/googleapis/java-bigtable/pull/2663" + "https://github.com/googleapis/java-bigquery/pull/3942" + "https://github.com/googleapis/java-bigquerystorage/pull/3083" + "https://github.com/googleapis/java-datastore/pull/1954" + "https://github.com/googleapis/java-firestore/pull/2227" + "https://github.com/googleapis/java-logging/pull/1851" + "https://github.com/googleapis/java-logging-logback/pull/1512" + "https://github.com/googleapis/java-pubsub/pull/2537" + "https://github.com/googleapis/java-pubsublite/pull/1917" + "https://github.com/googleapis/java-spanner/pull/4026" + "https://github.com/googleapis/java-spanner-jdbc/pull/2191" + "https://github.com/googleapis/java-storage/pull/3266" + "https://github.com/googleapis/java-storage-nio/pull/1644" +) + +# The name of the CI job you want to check. +JOB_NAME="Kokoro - Test: Integration" + +# --- Script Logic --- +echo "🔎 Starting check for '${JOB_NAME}' status..." +echo "------------------------------------------------" + +# A counter for failed or pending jobs. +FAILURES=0 +PENDING=0 + +# Loop through each PR in the array. +for pr_url in "${PULL_REQUESTS[@]}"; do + echo "Checking PR: ${pr_url}" + + # Use `gh pr checks` to get the status of all checks for the PR. + # Then, use `grep` to find the line for our specific job. + # We anchor the search to the beginning of the line (^) and ensure it is + # followed by whitespace to avoid partial matches with other job names. + check_status_line=$(gh pr checks "${pr_url}" | grep "^${JOB_NAME}[[:space:]]") + + if [[ -z "${check_status_line}" ]]; then + # If `grep` returns nothing, the job was not found. + echo " -> 🟡 WARNING: Could not find the '${JOB_NAME}' job." + ((FAILURES++)) + else + # The output format of `gh pr checks` is typically: + # JOB_NAME STATUS TIME URL + # We can use `awk` to extract the second column, which is the status. + status=$(gh pr checks ${pr_url} --json name,state -q ".[] | select(.name == \"${JOB_NAME}\") | .state") + + # Check the status and report accordingly. + if [[ "${status}" == "SUCCESS" ]]; then + echo " -> ✅ SUCCESS: The job passed." + elif [[ "${status}" == "FAILURE" ]]; then + echo " -> ❌ FAILURE: The job failed." + ((FAILURES++)) + elif [[ "${status}" == "PENDING" ]]; then + echo " -> ⏳ PENDING: The job is still running." + ((PENDING++)) + else + # Handle any other statuses (e.g., SKIPPED, CANCELED). + echo " -> ⚪️ INFO: The job status is '${status}'." + fi + fi + echo "" # Add a newline for better readability. +done + +echo "------------------------------------------------" + +# Final summary report. +if [[ ${FAILURES} -eq 0 && ${PENDING} -eq 0 ]]; then + echo "🎉 All checks for '${JOB_NAME}' passed successfully!" +else + echo "🚨 Found ${FAILURES} PR(s) where '${JOB_NAME}' did not succeed." + echo "🚨 Found ${PENDING} PR(s) where '${JOB_NAME}' status is unknown." +fi \ No newline at end of file diff --git a/.github/update_prs.sh b/.github/update_prs.sh new file mode 100755 index 0000000000..01223fbbaf --- /dev/null +++ b/.github/update_prs.sh @@ -0,0 +1,148 @@ +#!/bin/bash + +# A script to update GitHub PRs with the latest from the main branch. +# +# It checks out each PR, merges main using the 'ours' strategy for conflicts +# (which keeps the PR's changes), and pushes the updated branch. +# +# Dependencies: +# - git +# - gh (GitHub CLI) +# +# Usage: +# ./update_prs.sh + +# ----------------------------------------------------------------------------- +# Configuration & Safety Checks +# ----------------------------------------------------------------------------- + +# Exit the script immediately if any command fails. +set -e + +# Ensure required command-line tools are installed. +if ! command -v git &> /dev/null; then + echo "❌ Error: 'git' is not installed. Please install it to continue." + exit 1 +fi + +if ! command -v gh &> /dev/null; then + echo "❌ Error: 'gh' (GitHub CLI) is not installed. Please install it to continue." + exit 1 +fi + +# Ensure the user is authenticated with the GitHub CLI. +if ! gh auth status &> /dev/null; then + echo "❌ Error: You are not logged into the GitHub CLI. Please run 'gh auth login'." + exit 1 +fi + +# ----------------------------------------------------------------------------- +# Main Logic +# ----------------------------------------------------------------------------- + +PR_URLS_429=( + "https://github.com/googleapis/java-bigtable/pull/2614" + "https://github.com/googleapis/java-bigquery/pull/3867" + "https://github.com/googleapis/java-bigquerystorage/pull/3030" + "https://github.com/googleapis/java-datastore/pull/1900" + "https://github.com/googleapis/java-firestore/pull/2165" + "https://github.com/googleapis/java-logging/pull/1825" + "https://github.com/googleapis/java-logging-logback/pull/1492" + "https://github.com/googleapis/java-pubsub/pull/2470" + "https://github.com/googleapis/java-pubsublite/pull/1889" + "https://github.com/googleapis/java-spanner/pull/3928" + "https://github.com/googleapis/java-spanner-jdbc/pull/2113" + "https://github.com/googleapis/java-storage/pull/3178" + "https://github.com/googleapis/java-storage-nio/pull/1612" +) + +PR_URLS_431=( + "https://github.com/googleapis/java-bigtable/pull/2663" + "https://github.com/googleapis/java-bigquery/pull/3942" + "https://github.com/googleapis/java-bigquerystorage/pull/3083" + "https://github.com/googleapis/java-datastore/pull/1954" + "https://github.com/googleapis/java-firestore/pull/2227" + "https://github.com/googleapis/java-logging/pull/1851" + "https://github.com/googleapis/java-logging-logback/pull/1512" + "https://github.com/googleapis/java-pubsub/pull/2537" + "https://github.com/googleapis/java-pubsublite/pull/1917" + "https://github.com/googleapis/java-spanner/pull/4026" + "https://github.com/googleapis/java-spanner-jdbc/pull/2191" + "https://github.com/googleapis/java-storage/pull/3266" + "https://github.com/googleapis/java-storage-nio/pull/1644" +) + +# Keep track of the directory where the script was started. +START_DIR=$(pwd) + +function processPRs() { + PR_URLS=("$@") + # Loop through all PR URLs defined in the PR_URLS array. + for pr_url in "${PR_URLS[@]}"; do + echo "🚀 Processing PR: $pr_url" + + # Parse the URL to get the repository and PR number. + # Example: https://github.com/googleapis/java-bigtable/pull/2614 + # REPO_OWNER -> googleapis + # REPO_NAME -> java-bigtable + # PR_NUMBER -> 2614 + REPO_OWNER=$(echo "$pr_url" | cut -d'/' -f4) + REPO_NAME=$(echo "$pr_url" | cut -d'/' -f5) + PR_NUMBER=$(echo "$pr_url" | cut -d'/' -f7) + + # Basic validation of the parsed components. + if [ -z "$REPO_OWNER" ] || [ -z "$REPO_NAME" ] || [ -z "$PR_NUMBER" ]; then + echo "⚠️ Could not parse URL: $pr_url. Skipping." + echo "-----------------------------------------" + continue + fi + + REPO_FULL_NAME="$REPO_OWNER/$REPO_NAME" + + # Clone the repo into a subdirectory if it doesn't already exist. + if [ ! -d "$REPO_NAME" ]; then + echo "Cloning repository $REPO_FULL_NAME..." + gh repo clone "$REPO_FULL_NAME" + fi + + # Navigate into the repository's directory. + cd "$REPO_NAME" + + git stash + + echo "Checking out PR #$PR_NUMBER..." + gh pr checkout "$PR_NUMBER" + + echo "Fetching latest updates from origin..." + git fetch origin + + echo "Merging latest 'origin/main' into the branch..." + # The `-X ours` option is the key. It resolves any merge conflicts + # by automatically favoring the version of the code from the + # current branch (your PR branch). + git merge -m "Merge branch 'main' into PR #$PR_NUMBER to update" -X ours origin/main + + echo "Pushing updated branch to remote..." + git push + + echo "✅ Successfully updated PR #$PR_NUMBER in $REPO_FULL_NAME." + + if git stash list | grep -q 'stash@{0}'; then + git stash pop + else + echo "No stash entries found, skipping git stash pop." + fi + + # Return to the starting directory to process the next repository. + cd "$START_DIR" + echo "-----------------------------------------" + done + echo "🎉 All done!" +} + +echo "Running for all 4.29 Protobuf PRs..." +processPRs "${PR_URLS_429[@]}" +echo "-----------------------------------------" +echo "Running for all 4.31 Protobuf PRs..." +processPRs "${PR_URLS_431[@]}" +echo "-----------------------------------------" \ No newline at end of file From f926fa5b7471e4501ffe9663ec4571978fdd329e Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 16:46:18 -0400 Subject: [PATCH 02/29] chore: Move scripts into .github/scripts subfolder --- .github/{ => scripts}/check_pr_status.sh | 9 +++------ .github/{ => scripts}/update_prs.sh | 13 +++++++------ 2 files changed, 10 insertions(+), 12 deletions(-) rename .github/{ => scripts}/check_pr_status.sh (92%) rename .github/{ => scripts}/update_prs.sh (95%) diff --git a/.github/check_pr_status.sh b/.github/scripts/check_pr_status.sh similarity index 92% rename from .github/check_pr_status.sh rename to .github/scripts/check_pr_status.sh index 25acec6cea..c158274964 100755 --- a/.github/check_pr_status.sh +++ b/.github/scripts/check_pr_status.sh @@ -5,8 +5,7 @@ # # Assumes the user has the GitHub CLI (`gh`) installed and is authenticated. -# --- Configuration --- -# Add the list of GitHub PR URLs you want to check into this array. +# Hardcoded list of downstream Protobuf testing PRs to check the status of PULL_REQUESTS=( "https://github.com/googleapis/java-bigtable/pull/2614" "https://github.com/googleapis/java-bigquery/pull/3867" @@ -36,7 +35,7 @@ PULL_REQUESTS=( "https://github.com/googleapis/java-storage-nio/pull/1644" ) -# The name of the CI job you want to check. +# The name of the Integration Testing CI job JOB_NAME="Kokoro - Test: Integration" # --- Script Logic --- @@ -62,9 +61,7 @@ for pr_url in "${PULL_REQUESTS[@]}"; do echo " -> 🟡 WARNING: Could not find the '${JOB_NAME}' job." ((FAILURES++)) else - # The output format of `gh pr checks` is typically: - # JOB_NAME STATUS TIME URL - # We can use `awk` to extract the second column, which is the status. + # Get the json values for the name of the job and the status status=$(gh pr checks ${pr_url} --json name,state -q ".[] | select(.name == \"${JOB_NAME}\") | .state") # Check the status and report accordingly. diff --git a/.github/update_prs.sh b/.github/scripts/update_prs.sh similarity index 95% rename from .github/update_prs.sh rename to .github/scripts/update_prs.sh index 01223fbbaf..1d12dd683b 100755 --- a/.github/update_prs.sh +++ b/.github/scripts/update_prs.sh @@ -40,6 +40,7 @@ fi # Main Logic # ----------------------------------------------------------------------------- +# Hardcoded list of downstream PRs testing Protobuf 4.29.x Compatibility PR_URLS_429=( "https://github.com/googleapis/java-bigtable/pull/2614" "https://github.com/googleapis/java-bigquery/pull/3867" @@ -56,6 +57,7 @@ PR_URLS_429=( "https://github.com/googleapis/java-storage-nio/pull/1612" ) +# Hardcoded list of downstream PRs testing Protobuf 4.31.x Compatibility PR_URLS_431=( "https://github.com/googleapis/java-bigtable/pull/2663" "https://github.com/googleapis/java-bigquery/pull/3942" @@ -72,10 +74,8 @@ PR_URLS_431=( "https://github.com/googleapis/java-storage-nio/pull/1644" ) -# Keep track of the directory where the script was started. -START_DIR=$(pwd) - function processPRs() { + pushd "/tmp" PR_URLS=("$@") # Loop through all PR URLs defined in the PR_URLS array. for pr_url in "${PR_URLS[@]}"; do @@ -106,8 +106,9 @@ function processPRs() { fi # Navigate into the repository's directory. - cd "$REPO_NAME" + pushd "$REPO_NAME" + # Stash any existing changes in the repo git stash echo "Checking out PR #$PR_NUMBER..." @@ -133,11 +134,11 @@ function processPRs() { echo "No stash entries found, skipping git stash pop." fi - # Return to the starting directory to process the next repository. - cd "$START_DIR" + popd echo "-----------------------------------------" done echo "🎉 All done!" + popd } echo "Running for all 4.29 Protobuf PRs..." From c5e90230061c3ee47ef4a905f99193e558cbbcf1 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:17:21 -0400 Subject: [PATCH 03/29] chore: Create GH nightly workflow for updating downstream PRs --- .../update_downstream_protobuf_test.yaml | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/update_downstream_protobuf_test.yaml diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml new file mode 100644 index 0000000000..e88e76dd85 --- /dev/null +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -0,0 +1,28 @@ +# This is a GitHub Actions workflow to run the check_pr_status.sh script nightly. +name: Nightly PR Status Check + +on: + schedule: + # This cron schedule runs at 03:00 UTC every day. + # This corresponds to 11:00 PM EST during Daylight Saving Time (EDT). + # Note: During Standard Time, this will be 10:00 PM EST. + - cron: '0 3 * * *' + + # This allows you to manually run the workflow from the Actions tab in GitHub. + workflow_dispatch: + +jobs: + run_pr_check: + # The type of runner that the job will run on. + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # The GH_TOKEN is set automatically using GitHub's built-in secret. + # The `gh` CLI tool will automatically use this token for authentication. + - name: Run PR status check script + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: ./.github/scripts/update_prs.sh \ No newline at end of file From f651dbcce141927c1b72137ddaa401315540d7b8 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:21:01 -0400 Subject: [PATCH 04/29] chore: Change token name --- .github/workflows/update_downstream_protobuf_test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml index e88e76dd85..cfa21b99be 100644 --- a/.github/workflows/update_downstream_protobuf_test.yaml +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -24,5 +24,5 @@ jobs: # The `gh` CLI tool will automatically use this token for authentication. - name: Run PR status check script env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.TOKEN }} run: ./.github/scripts/update_prs.sh \ No newline at end of file From 84b17cfb1b43da394efa79308641e716639ccc2a Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:26:23 -0400 Subject: [PATCH 05/29] chore: Update git username --- .github/workflows/update_downstream_protobuf_test.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml index cfa21b99be..a2ea639d78 100644 --- a/.github/workflows/update_downstream_protobuf_test.yaml +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -18,11 +18,15 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 + - name: Setup Git + run: | + git config user.name 'Lawrence Qiu' + git config user.email 'lawrenceqiu@google.com' # The GH_TOKEN is set automatically using GitHub's built-in secret. # The `gh` CLI tool will automatically use this token for authentication. - name: Run PR status check script env: - GH_TOKEN: ${{ secrets.TOKEN }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: ./.github/scripts/update_prs.sh \ No newline at end of file From 8d4d6d5b6ec3a11b444d54f23ae697611dff44f5 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:28:29 -0400 Subject: [PATCH 06/29] chore: Use PAT --- .github/workflows/update_downstream_protobuf_test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml index a2ea639d78..f2bbdc2f8c 100644 --- a/.github/workflows/update_downstream_protobuf_test.yaml +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -28,5 +28,5 @@ jobs: # The `gh` CLI tool will automatically use this token for authentication. - name: Run PR status check script env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.PAT }} run: ./.github/scripts/update_prs.sh \ No newline at end of file From 1c4688c82773bc33b8fd00c3750ef8afa0ccf820 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:43:19 -0400 Subject: [PATCH 07/29] chore: Try setting git before running script --- .github/workflows/update_downstream_protobuf_test.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml index f2bbdc2f8c..7b2c42ef46 100644 --- a/.github/workflows/update_downstream_protobuf_test.yaml +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -19,14 +19,13 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v5 - - name: Setup Git - run: | - git config user.name 'Lawrence Qiu' - git config user.email 'lawrenceqiu@google.com' # The GH_TOKEN is set automatically using GitHub's built-in secret. # The `gh` CLI tool will automatically use this token for authentication. - name: Run PR status check script env: GH_TOKEN: ${{ secrets.PAT }} - run: ./.github/scripts/update_prs.sh \ No newline at end of file + run: | + git config user.name 'Lawrence Qiu' + git config user.email 'lawrenceqiu@google.com' + ./.github/scripts/update_prs.sh \ No newline at end of file From 0494573836f2026a50d657a542245c684cdc8fd1 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:46:18 -0400 Subject: [PATCH 08/29] chore: git uses gh as cred helper --- .github/workflows/update_downstream_protobuf_test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml index 7b2c42ef46..b6094a1161 100644 --- a/.github/workflows/update_downstream_protobuf_test.yaml +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -28,4 +28,5 @@ jobs: run: | git config user.name 'Lawrence Qiu' git config user.email 'lawrenceqiu@google.com' + gh auth setup-git ./.github/scripts/update_prs.sh \ No newline at end of file From ac2a625bb4787800e712d5fe53a7d428f0902b55 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 6 Oct 2025 17:51:06 -0400 Subject: [PATCH 09/29] chore: Set git user and email --- .github/workflows/update_downstream_protobuf_test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update_downstream_protobuf_test.yaml b/.github/workflows/update_downstream_protobuf_test.yaml index b6094a1161..ca29b44af4 100644 --- a/.github/workflows/update_downstream_protobuf_test.yaml +++ b/.github/workflows/update_downstream_protobuf_test.yaml @@ -26,7 +26,7 @@ jobs: env: GH_TOKEN: ${{ secrets.PAT }} run: | - git config user.name 'Lawrence Qiu' - git config user.email 'lawrenceqiu@google.com' + git config --global user.name 'Lawrence Qiu' + git config --global user.email 'lawrenceqiu@google.com' gh auth setup-git ./.github/scripts/update_prs.sh \ No newline at end of file From 048b98f17340305d1f742a46563c24aff5e6ad23 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 14 Oct 2025 19:09:09 -0400 Subject: [PATCH 10/29] chore: Create group config for upper bounds file --- renovate.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/renovate.json b/renovate.json index ebc1f1d1e4..80507fd2d0 100644 --- a/renovate.json +++ b/renovate.json @@ -88,6 +88,15 @@ } ], "packageRules": [ + { + "matchManagers": [ + "regex" + ], + "fileMatch": ["/^dependencies\\.txt$/"], + "matchDatasources": ["maven"], + "groupName": "Upper Bound Dependencies File", + "description": "Group all dependencies from the Upper Bound Dependencies File" + }, { "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" From 49ee85aff3d0ee68ec3097e83f769efb9c86844e Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 14 Oct 2025 20:16:06 -0400 Subject: [PATCH 11/29] chore: Specifcy the upper bounds file to match --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 80507fd2d0..1b3ae13a3d 100644 --- a/renovate.json +++ b/renovate.json @@ -92,7 +92,7 @@ "matchManagers": [ "regex" ], - "fileMatch": ["/^dependencies\\.txt$/"], + "fileMatch": ["dependencies.txt"], "matchDatasources": ["maven"], "groupName": "Upper Bound Dependencies File", "description": "Group all dependencies from the Upper Bound Dependencies File" From 2c54f0f3a14a9a6a619ec421bf2c70c9dbf2dfeb Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 14 Oct 2025 20:37:53 -0400 Subject: [PATCH 12/29] chore: Ignore other matching packageRules --- renovate.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 1b3ae13a3d..4b8eb8d156 100644 --- a/renovate.json +++ b/renovate.json @@ -92,7 +92,7 @@ "matchManagers": [ "regex" ], - "fileMatch": ["dependencies.txt"], + "fileMatch": ["/^dependencies\\.txt$/"], "matchDatasources": ["maven"], "groupName": "Upper Bound Dependencies File", "description": "Group all dependencies from the Upper Bound Dependencies File" @@ -101,6 +101,7 @@ "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" ], + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "registryUrls": [ "https://repo.maven.apache.org/maven2/", "https://repo1.maven.org/maven2" @@ -131,6 +132,7 @@ { "semanticCommitType": "deps", "semanticCommitScope": null, + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "*" ] @@ -139,6 +141,7 @@ "semanticCommitType": "build", "semanticCommitScope": "deps", "enabled": true, + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", @@ -150,6 +153,7 @@ { "semanticCommitType": "chore", "semanticCommitScope": "deps", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^{{metadata['repo']['distribution_name']}}/", "/^com.google.cloud:libraries-bom/", @@ -159,6 +163,7 @@ { "semanticCommitType": "test", "semanticCommitScope": "deps", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^junit:junit/", "/^com.google.truth:truth/", @@ -169,18 +174,21 @@ }, { "ignoreUnstable": false, + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^com.google.cloud:google-cloud-/" ] }, { "groupName": "jackson dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^com.fasterxml.jackson.core/" ] }, { "groupName": "gRPC dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^io.grpc/" ], @@ -188,12 +196,14 @@ }, { "groupName": "Google Auth Library dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^com.google.auth/" ] }, { "groupName": "Google API dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", "/com.google.api.grpc:grpc-google-iam-v1/", @@ -204,24 +214,28 @@ }, { "groupName": "Google HTTP Client dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^com.google.http-client/" ] }, { "groupName": "OpenCensus dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^io.opencensus/" ] }, { "groupName": "Netty dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^io.netty/" ] }, { "groupName": "Error Prone dependencies", + "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], "matchPackageNames": [ "/^com.google.errorprone/" ] From 48eecb010590033fff54e11982e5e879d375d1f5 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 14 Oct 2025 23:21:23 -0400 Subject: [PATCH 13/29] chore: Add fileMatch for other file groups --- renovate.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/renovate.json b/renovate.json index 4b8eb8d156..4f750007a9 100644 --- a/renovate.json +++ b/renovate.json @@ -12,7 +12,7 @@ "customManagers": [ { "customType": "regex", - "managerFilePatterns": ["/^dependencies\\.txt$/"], + "fileMatch": ["/^dependencies\\.txt$/"], "matchStrings": ["(?.*),(.*)=(?.*)"], "datasourceTemplate": "maven" }, @@ -101,7 +101,7 @@ "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" ], - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties", ".*\\.yaml"], "registryUrls": [ "https://repo.maven.apache.org/maven2/", "https://repo1.maven.org/maven2" @@ -132,7 +132,7 @@ { "semanticCommitType": "deps", "semanticCommitScope": null, - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties", ".*\\.yaml"], "matchPackageNames": [ "*" ] @@ -141,7 +141,7 @@ "semanticCommitType": "build", "semanticCommitScope": "deps", "enabled": true, - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", @@ -153,7 +153,7 @@ { "semanticCommitType": "chore", "semanticCommitScope": "deps", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^{{metadata['repo']['distribution_name']}}/", "/^com.google.cloud:libraries-bom/", @@ -163,7 +163,7 @@ { "semanticCommitType": "test", "semanticCommitScope": "deps", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^junit:junit/", "/^com.google.truth:truth/", @@ -174,21 +174,21 @@ }, { "ignoreUnstable": false, - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties", ".*\\.yaml"], "matchPackageNames": [ "/^com.google.cloud:google-cloud-/" ] }, { "groupName": "jackson dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^com.fasterxml.jackson.core/" ] }, { "groupName": "gRPC dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^io.grpc/" ], @@ -196,14 +196,14 @@ }, { "groupName": "Google Auth Library dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^com.google.auth/" ] }, { "groupName": "Google API dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", "/com.google.api.grpc:grpc-google-iam-v1/", @@ -214,28 +214,28 @@ }, { "groupName": "Google HTTP Client dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^com.google.http-client/" ] }, { "groupName": "OpenCensus dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^io.opencensus/" ] }, { "groupName": "Netty dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^io.netty/" ] }, { "groupName": "Error Prone dependencies", - "fileMatch": ["/^(?!dependencies\\.txt$).*$/"], + "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], "matchPackageNames": [ "/^com.google.errorprone/" ] From f34675f1ae41ee985ef3e51d4389e584875c5052 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 14 Oct 2025 23:36:29 -0400 Subject: [PATCH 14/29] chore: Update to re2 file matching --- renovate.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/renovate.json b/renovate.json index 4f750007a9..cbc6c0f239 100644 --- a/renovate.json +++ b/renovate.json @@ -92,7 +92,7 @@ "matchManagers": [ "regex" ], - "fileMatch": ["/^dependencies\\.txt$/"], + "matchFileNames": ["/^dependencies\\.txt$/"], "matchDatasources": ["maven"], "groupName": "Upper Bound Dependencies File", "description": "Group all dependencies from the Upper Bound Dependencies File" @@ -101,7 +101,7 @@ "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" ], - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties", ".*\\.yaml"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/", "/.*\/.*\\.yaml/"], "registryUrls": [ "https://repo.maven.apache.org/maven2/", "https://repo1.maven.org/maven2" @@ -132,7 +132,7 @@ { "semanticCommitType": "deps", "semanticCommitScope": null, - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties", ".*\\.yaml"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/", "/.*\/.*\\.yaml/"], "matchPackageNames": [ "*" ] @@ -141,7 +141,7 @@ "semanticCommitType": "build", "semanticCommitScope": "deps", "enabled": true, - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", @@ -153,7 +153,7 @@ { "semanticCommitType": "chore", "semanticCommitScope": "deps", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^{{metadata['repo']['distribution_name']}}/", "/^com.google.cloud:libraries-bom/", @@ -163,7 +163,7 @@ { "semanticCommitType": "test", "semanticCommitScope": "deps", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^junit:junit/", "/^com.google.truth:truth/", @@ -174,21 +174,21 @@ }, { "ignoreUnstable": false, - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties", ".*\\.yaml"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/", "/.*\/.*\\.yaml/"], "matchPackageNames": [ "/^com.google.cloud:google-cloud-/" ] }, { "groupName": "jackson dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^com.fasterxml.jackson.core/" ] }, { "groupName": "gRPC dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^io.grpc/" ], @@ -196,14 +196,14 @@ }, { "groupName": "Google Auth Library dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^com.google.auth/" ] }, { "groupName": "Google API dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", "/com.google.api.grpc:grpc-google-iam-v1/", @@ -214,28 +214,28 @@ }, { "groupName": "Google HTTP Client dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^com.google.http-client/" ] }, { "groupName": "OpenCensus dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^io.opencensus/" ] }, { "groupName": "Netty dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^io.netty/" ] }, { "groupName": "Error Prone dependencies", - "matchFileNames": [".*/pom\\.xml", ".*/dependencies\\.properties"], + "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], "matchPackageNames": [ "/^com.google.errorprone/" ] From 84a7a23fe51391a480b2e334d3ceafd41e5964b5 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 14 Oct 2025 23:50:10 -0400 Subject: [PATCH 15/29] chore: Use glob for pom.xml file --- renovate.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/renovate.json b/renovate.json index cbc6c0f239..af999c8815 100644 --- a/renovate.json +++ b/renovate.json @@ -101,7 +101,7 @@ "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" ], - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/", "/.*\/.*\\.yaml/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$", "^\\.cloudbuild/graalvm/.*\\.yaml$"], "registryUrls": [ "https://repo.maven.apache.org/maven2/", "https://repo1.maven.org/maven2" @@ -132,7 +132,7 @@ { "semanticCommitType": "deps", "semanticCommitScope": null, - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/", "/.*\/.*\\.yaml/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$", "^\\.cloudbuild/library_generation/library_generation.*\\.Dockerfile$", "^\\.cloudbuild/graalvm/.*\\.yaml$"], "matchPackageNames": [ "*" ] @@ -141,7 +141,7 @@ "semanticCommitType": "build", "semanticCommitScope": "deps", "enabled": true, - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", @@ -153,7 +153,7 @@ { "semanticCommitType": "chore", "semanticCommitScope": "deps", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^{{metadata['repo']['distribution_name']}}/", "/^com.google.cloud:libraries-bom/", @@ -163,7 +163,7 @@ { "semanticCommitType": "test", "semanticCommitScope": "deps", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^junit:junit/", "/^com.google.truth:truth/", @@ -174,21 +174,21 @@ }, { "ignoreUnstable": false, - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/", "/.*\/.*\\.yaml/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.cloud:google-cloud-/" ] }, { "groupName": "jackson dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.fasterxml.jackson.core/" ] }, { "groupName": "gRPC dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$", "^\\.cloudbuild/library_generation/library_generation.*\\.Dockerfile$"], "matchPackageNames": [ "/^io.grpc/" ], @@ -196,14 +196,14 @@ }, { "groupName": "Google Auth Library dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.auth/" ] }, { "groupName": "Google API dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", "/com.google.api.grpc:grpc-google-iam-v1/", @@ -214,28 +214,28 @@ }, { "groupName": "Google HTTP Client dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.http-client/" ] }, { "groupName": "OpenCensus dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^io.opencensus/" ] }, { "groupName": "Netty dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^io.netty/" ] }, { "groupName": "Error Prone dependencies", - "matchFileNames": ["/.*\/pom\\.xml/", "/^.*\/dependencies\\.properties$/"], + "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.errorprone/" ] From ba696ec705cf4602f77f83f5b9d1f2d8ae5a60c2 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 00:11:20 -0400 Subject: [PATCH 16/29] chore: Move dependencies.txt config to the end --- renovate.json | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/renovate.json b/renovate.json index af999c8815..b3e1fd310b 100644 --- a/renovate.json +++ b/renovate.json @@ -88,20 +88,10 @@ } ], "packageRules": [ - { - "matchManagers": [ - "regex" - ], - "matchFileNames": ["/^dependencies\\.txt$/"], - "matchDatasources": ["maven"], - "groupName": "Upper Bound Dependencies File", - "description": "Group all dependencies from the Upper Bound Dependencies File" - }, { "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" ], - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$", "^\\.cloudbuild/graalvm/.*\\.yaml$"], "registryUrls": [ "https://repo.maven.apache.org/maven2/", "https://repo1.maven.org/maven2" @@ -132,7 +122,6 @@ { "semanticCommitType": "deps", "semanticCommitScope": null, - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$", "^\\.cloudbuild/library_generation/library_generation.*\\.Dockerfile$", "^\\.cloudbuild/graalvm/.*\\.yaml$"], "matchPackageNames": [ "*" ] @@ -141,7 +130,6 @@ "semanticCommitType": "build", "semanticCommitScope": "deps", "enabled": true, - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", @@ -153,7 +141,6 @@ { "semanticCommitType": "chore", "semanticCommitScope": "deps", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^{{metadata['repo']['distribution_name']}}/", "/^com.google.cloud:libraries-bom/", @@ -163,7 +150,6 @@ { "semanticCommitType": "test", "semanticCommitScope": "deps", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^junit:junit/", "/^com.google.truth:truth/", @@ -174,21 +160,18 @@ }, { "ignoreUnstable": false, - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.cloud:google-cloud-/" ] }, { "groupName": "jackson dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.fasterxml.jackson.core/" ] }, { "groupName": "gRPC dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$", "^\\.cloudbuild/library_generation/library_generation.*\\.Dockerfile$"], "matchPackageNames": [ "/^io.grpc/" ], @@ -196,14 +179,12 @@ }, { "groupName": "Google Auth Library dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.auth/" ] }, { "groupName": "Google API dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", "/com.google.api.grpc:grpc-google-iam-v1/", @@ -214,31 +195,36 @@ }, { "groupName": "Google HTTP Client dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.http-client/" ] }, { "groupName": "OpenCensus dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^io.opencensus/" ] }, { "groupName": "Netty dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^io.netty/" ] }, { "groupName": "Error Prone dependencies", - "matchFileNames": ["**/pom.xml", "^gax-java/dependencies\\.properties$"], "matchPackageNames": [ "/^com.google.errorprone/" ] + }, + { + "matchManagers": [ + "regex" + ], + "matchFileNames": ["dependencies.txt"], + "matchDatasources": ["maven"], + "groupName": "Upper Bound Dependencies File", + "description": "Group all dependencies from the Upper Bound Dependencies File" } ] } From 381fbe1db26da2022331d30783f5c79b1676e136 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 00:24:09 -0400 Subject: [PATCH 17/29] chore: Remove regex for custom manager --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index b3e1fd310b..d2b21a583a 100644 --- a/renovate.json +++ b/renovate.json @@ -12,7 +12,7 @@ "customManagers": [ { "customType": "regex", - "fileMatch": ["/^dependencies\\.txt$/"], + "fileMatch": ["dependencies.txt"], "matchStrings": ["(?.*),(.*)=(?.*)"], "datasourceTemplate": "maven" }, From 757c13e54b36851513253af08e610766e647a2a8 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 10:07:01 -0400 Subject: [PATCH 18/29] Update renovate.json --- renovate.json | 1 + 1 file changed, 1 insertion(+) diff --git a/renovate.json b/renovate.json index d2b21a583a..71c7e8400d 100644 --- a/renovate.json +++ b/renovate.json @@ -2,6 +2,7 @@ "extends": [ "config:recommended" ], + "enabled": false, "dependencyDashboard": true, "ignoreDeps": [ "rules_pkg" From f98ec472aa452e8241ce6f29482eed4c4d4975c8 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 18:23:26 -0400 Subject: [PATCH 19/29] chore: Disable all renovate PRs from pom.xml --- renovate.json | 70 ++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/renovate.json b/renovate.json index d2b21a583a..2f4449b190 100644 --- a/renovate.json +++ b/renovate.json @@ -89,47 +89,50 @@ ], "packageRules": [ { + "enabled": false, + "matchUpdateTypes": [ + "major" + ], "matchPackageNames": [ - "com.google.cloud:google-cloud-shared-config" + "*" ], - "registryUrls": [ - "https://repo.maven.apache.org/maven2/", - "https://repo1.maven.org/maven2" - ] + "description": "Disable all major version bumps" }, { - "matchUpdateTypes": [ - "major" - ], - "enabled": false, + "semanticCommitType": "deps", + "semanticCommitScope": null, "matchPackageNames": [ "*" - ] + ], + "description": "Prefix version bumps with `deps:` Conventional Commit" }, { - "enabled": false, + "ignoreUnstable": false, "matchPackageNames": [ - "/^com.google.protobuf:/" + "/^com.google.cloud:google-cloud-/" ] }, { - "versioning": "docker", + "enabled": false, "matchPackageNames": [ - "/^com.google.guava:/" + "/^com.google.protobuf:/", + "/^com.google.guava:/", + "/^io.grpc/" ], - "enabled": false + "description": "Disabled automatic version bumps" }, { - "semanticCommitType": "deps", - "semanticCommitScope": null, "matchPackageNames": [ - "*" + "com.google.cloud:google-cloud-shared-config" + ], + "registryUrls": [ + "https://repo.maven.apache.org/maven2/", + "https://repo1.maven.org/maven2" ] }, { "semanticCommitType": "build", "semanticCommitScope": "deps", - "enabled": true, "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", @@ -159,24 +162,11 @@ ] }, { - "ignoreUnstable": false, - "matchPackageNames": [ - "/^com.google.cloud:google-cloud-/" - ] - }, - { - "groupName": "jackson dependencies", + "groupName": "Jackson Dependencies", "matchPackageNames": [ "/^com.fasterxml.jackson.core/" ] }, - { - "groupName": "gRPC dependencies", - "matchPackageNames": [ - "/^io.grpc/" - ], - "enabled": false - }, { "groupName": "Google Auth Library dependencies", "matchPackageNames": [ @@ -199,12 +189,6 @@ "/^com.google.http-client/" ] }, - { - "groupName": "OpenCensus dependencies", - "matchPackageNames": [ - "/^io.opencensus/" - ] - }, { "groupName": "Netty dependencies", "matchPackageNames": [ @@ -217,14 +201,20 @@ "/^com.google.errorprone/" ] }, + { + "enabled": false, + "matchFileNames": ["**/pom.xml"], + "description": "Disable all Dependency PRs from pom.xml" + }, { "matchManagers": [ "regex" ], + "semanticCommitType": "chore", "matchFileNames": ["dependencies.txt"], "matchDatasources": ["maven"], "groupName": "Upper Bound Dependencies File", - "description": "Group all dependencies from the Upper Bound Dependencies File" + "description": "Dependencies from the Upper Bound Dependencies File" } ] } From 34e5daf687f6062707cf8afe994bcd6132f0d20e Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 18:24:31 -0400 Subject: [PATCH 20/29] Update renovate.json --- renovate.json | 1 - 1 file changed, 1 deletion(-) diff --git a/renovate.json b/renovate.json index 9414c0fb8e..2f4449b190 100644 --- a/renovate.json +++ b/renovate.json @@ -2,7 +2,6 @@ "extends": [ "config:recommended" ], - "enabled": false, "dependencyDashboard": true, "ignoreDeps": [ "rules_pkg" From b4d7d336f29454aa14a5b7d80ccb93965d55cc73 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 18:32:29 -0400 Subject: [PATCH 21/29] chore: Group dependencies.properties files together --- renovate.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/renovate.json b/renovate.json index 2f4449b190..17f5e6f64e 100644 --- a/renovate.json +++ b/renovate.json @@ -203,8 +203,15 @@ }, { "enabled": false, - "matchFileNames": ["**/pom.xml"], - "description": "Disable all Dependency PRs from pom.xml" + "matchFileNames": ["**/pom.xml", "gax-java/dependencies.properties"], + "description": "Disable all Java Dependency PRs" + }, + { + "matchFileNames": ["hermetic_build/library_generation/requirements.txt"], + "groupName": "Hermetic Build Library Generation", + "matchPackageNames": [ + "*" + ] }, { "matchManagers": [ From c69558ab1dd0e51f3ae1835dca2226d077587db0 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 18:39:40 -0400 Subject: [PATCH 22/29] chore: Combine hermetic build deps --- renovate.json | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/renovate.json b/renovate.json index 17f5e6f64e..f09697616c 100644 --- a/renovate.json +++ b/renovate.json @@ -112,15 +112,6 @@ "/^com.google.cloud:google-cloud-/" ] }, - { - "enabled": false, - "matchPackageNames": [ - "/^com.google.protobuf:/", - "/^com.google.guava:/", - "/^io.grpc/" - ], - "description": "Disabled automatic version bumps" - }, { "matchPackageNames": [ "com.google.cloud:google-cloud-shared-config" @@ -207,8 +198,8 @@ "description": "Disable all Java Dependency PRs" }, { - "matchFileNames": ["hermetic_build/library_generation/requirements.txt"], - "groupName": "Hermetic Build Library Generation", + "matchFileNames": ["hermetic_build/**"], + "groupName": "Hermetic Build Library Generation Dependencies", "matchPackageNames": [ "*" ] From 0880f8647ab98b136d5c572ac15d42cbc7451604 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 19:08:36 -0400 Subject: [PATCH 23/29] chore: Group Cloud Build library generation PRs --- renovate.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/renovate.json b/renovate.json index f09697616c..686ba16f51 100644 --- a/renovate.json +++ b/renovate.json @@ -204,6 +204,20 @@ "*" ] }, + { + "matchFileNames": [ + ".cloudbuild/library_generation/**" + ], + "groupName": "Cloud Build Library Generation Dependencies" + }, + { + "enabled": false, + "fileMatch": [ + "^\\.cloudbuild/library_generation/library_generation.*\\.Dockerfile$" + ], + "matchPackageNames": ["/^io.grpc:grpc-core/"], + "datasourceTemplate": "maven" + }, { "matchManagers": [ "regex" From 7d7f62a7060163be8ac2e29398d9329c9fb265a2 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 19:21:16 -0400 Subject: [PATCH 24/29] chore: Enable for google deps --- renovate.json | 41 +++++++++++++---------------------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/renovate.json b/renovate.json index 686ba16f51..89e69533d9 100644 --- a/renovate.json +++ b/renovate.json @@ -113,26 +113,23 @@ ] }, { - "matchPackageNames": [ - "com.google.cloud:google-cloud-shared-config" - ], - "registryUrls": [ - "https://repo.maven.apache.org/maven2/", - "https://repo1.maven.org/maven2" - ] + "enabled": false, + "matchFileNames": ["**/pom.xml", "gax-java/dependencies.properties"], + "description": "Disable all Java Dependency PRs" }, { + "enabled": true, "semanticCommitType": "build", "semanticCommitScope": "deps", "matchPackageNames": [ "/^org.apache.maven/", "/^org.jacoco:/", "/^org.codehaus.mojo:/", - "/^org.sonatype.plugins:/", - "/^com.google.cloud:google-cloud-shared-config/" + "/^org.sonatype.plugins:/" ] }, { + "enabled": true, "semanticCommitType": "chore", "semanticCommitScope": "deps", "matchPackageNames": [ @@ -142,6 +139,7 @@ ] }, { + "enabled": true, "semanticCommitType": "test", "semanticCommitScope": "deps", "matchPackageNames": [ @@ -153,18 +151,21 @@ ] }, { - "groupName": "Jackson Dependencies", + "enabled": true, + "groupName": "Google Java Shared Configs", "matchPackageNames": [ - "/^com.fasterxml.jackson.core/" + "/^com.google.cloud:google-cloud-shared-config/" ] }, { + "enabled": true, "groupName": "Google Auth Library dependencies", "matchPackageNames": [ "/^com.google.auth/" ] }, { + "enabled": true, "groupName": "Google API dependencies", "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", @@ -175,28 +176,12 @@ ] }, { + "enabled": true, "groupName": "Google HTTP Client dependencies", "matchPackageNames": [ "/^com.google.http-client/" ] }, - { - "groupName": "Netty dependencies", - "matchPackageNames": [ - "/^io.netty/" - ] - }, - { - "groupName": "Error Prone dependencies", - "matchPackageNames": [ - "/^com.google.errorprone/" - ] - }, - { - "enabled": false, - "matchFileNames": ["**/pom.xml", "gax-java/dependencies.properties"], - "description": "Disable all Java Dependency PRs" - }, { "matchFileNames": ["hermetic_build/**"], "groupName": "Hermetic Build Library Generation Dependencies", From 516e10817d7aacf96b29331a9be1847d117b25da Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 19:36:48 -0400 Subject: [PATCH 25/29] chore: Match with all upgrade policies in dependencies.txt --- renovate.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/renovate.json b/renovate.json index 89e69533d9..cb302511a5 100644 --- a/renovate.json +++ b/renovate.json @@ -207,8 +207,10 @@ "matchManagers": [ "regex" ], + "matchUpdateTypes": ["major", "minor", "patch"], "semanticCommitType": "chore", "matchFileNames": ["dependencies.txt"], + "matchPackageNames": ["*"], "matchDatasources": ["maven"], "groupName": "Upper Bound Dependencies File", "description": "Dependencies from the Upper Bound Dependencies File" From 7c6f1c51e48ea6fce2d845aa39d5e948c6dbffcc Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 19:47:46 -0400 Subject: [PATCH 26/29] chore: Try group maven build and test deps --- renovate.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/renovate.json b/renovate.json index cb302511a5..9919babe76 100644 --- a/renovate.json +++ b/renovate.json @@ -119,6 +119,7 @@ }, { "enabled": true, + "groupName": "Maven build plugins", "semanticCommitType": "build", "semanticCommitScope": "deps", "matchPackageNames": [ @@ -140,6 +141,7 @@ }, { "enabled": true, + "groupName": "Test dependencies", "semanticCommitType": "test", "semanticCommitScope": "deps", "matchPackageNames": [ From 407c74a76d57e7a6bb5480a5c0de4ec8832c6a43 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 20:08:38 -0400 Subject: [PATCH 27/29] chore: Rearrage order for package rules --- renovate.json | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/renovate.json b/renovate.json index 9919babe76..56c1b7e650 100644 --- a/renovate.json +++ b/renovate.json @@ -90,13 +90,8 @@ "packageRules": [ { "enabled": false, - "matchUpdateTypes": [ - "major" - ], - "matchPackageNames": [ - "*" - ], - "description": "Disable all major version bumps" + "matchFileNames": ["**/pom.xml", "gax-java/dependencies.properties"], + "description": "Disable all Java dependency bumps" }, { "semanticCommitType": "deps", @@ -112,11 +107,6 @@ "/^com.google.cloud:google-cloud-/" ] }, - { - "enabled": false, - "matchFileNames": ["**/pom.xml", "gax-java/dependencies.properties"], - "description": "Disable all Java Dependency PRs" - }, { "enabled": true, "groupName": "Maven build plugins", @@ -187,9 +177,7 @@ { "matchFileNames": ["hermetic_build/**"], "groupName": "Hermetic Build Library Generation Dependencies", - "matchPackageNames": [ - "*" - ] + "matchPackageNames": ["*"] }, { "matchFileNames": [ @@ -205,6 +193,16 @@ "matchPackageNames": ["/^io.grpc:grpc-core/"], "datasourceTemplate": "maven" }, + { + "enabled": false, + "matchUpdateTypes": [ + "major" + ], + "matchPackageNames": [ + "*" + ], + "description": "Disable all major version bumps everywhere" + }, { "matchManagers": [ "regex" From 4ffb299b908a3adb1709e37ed3ab2fe9c66570d7 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 15 Oct 2025 20:20:36 -0400 Subject: [PATCH 28/29] chore: Explicitly enable to dependencies.txt file --- renovate.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/renovate.json b/renovate.json index 56c1b7e650..ace7276a47 100644 --- a/renovate.json +++ b/renovate.json @@ -109,7 +109,6 @@ }, { "enabled": true, - "groupName": "Maven build plugins", "semanticCommitType": "build", "semanticCommitScope": "deps", "matchPackageNames": [ @@ -131,7 +130,6 @@ }, { "enabled": true, - "groupName": "Test dependencies", "semanticCommitType": "test", "semanticCommitScope": "deps", "matchPackageNames": [ @@ -143,21 +141,18 @@ ] }, { - "enabled": true, - "groupName": "Google Java Shared Configs", + "groupName": "Google Java Shared Config", "matchPackageNames": [ "/^com.google.cloud:google-cloud-shared-config/" ] }, { - "enabled": true, "groupName": "Google Auth Library dependencies", "matchPackageNames": [ "/^com.google.auth/" ] }, { - "enabled": true, "groupName": "Google API dependencies", "matchPackageNames": [ "/com.google.api.grpc:grpc-google-common-protos/", @@ -168,7 +163,6 @@ ] }, { - "enabled": true, "groupName": "Google HTTP Client dependencies", "matchPackageNames": [ "/^com.google.http-client/" @@ -204,6 +198,7 @@ "description": "Disable all major version bumps everywhere" }, { + "enabled": true, "matchManagers": [ "regex" ], From a91ea48fb8b1a95337502a85841c5725425443db Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 4 Mar 2026 12:09:58 -0500 Subject: [PATCH 29/29] chore: Remove migrated repos --- .github/scripts/check_pr_status.sh | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/scripts/check_pr_status.sh b/.github/scripts/check_pr_status.sh index c158274964..2e4810b8d5 100755 --- a/.github/scripts/check_pr_status.sh +++ b/.github/scripts/check_pr_status.sh @@ -7,26 +7,9 @@ # Hardcoded list of downstream Protobuf testing PRs to check the status of PULL_REQUESTS=( - "https://github.com/googleapis/java-bigtable/pull/2614" - "https://github.com/googleapis/java-bigquery/pull/3867" - "https://github.com/googleapis/java-bigquerystorage/pull/3030" - "https://github.com/googleapis/java-datastore/pull/1900" - "https://github.com/googleapis/java-firestore/pull/2165" - "https://github.com/googleapis/java-logging/pull/1825" - "https://github.com/googleapis/java-logging-logback/pull/1492" - "https://github.com/googleapis/java-pubsub/pull/2470" - "https://github.com/googleapis/java-pubsublite/pull/1889" - "https://github.com/googleapis/java-spanner/pull/3928" - "https://github.com/googleapis/java-spanner-jdbc/pull/2113" - "https://github.com/googleapis/java-storage/pull/3178" - "https://github.com/googleapis/java-storage-nio/pull/1612" "https://github.com/googleapis/java-bigtable/pull/2663" "https://github.com/googleapis/java-bigquery/pull/3942" - "https://github.com/googleapis/java-bigquerystorage/pull/3083" - "https://github.com/googleapis/java-datastore/pull/1954" "https://github.com/googleapis/java-firestore/pull/2227" - "https://github.com/googleapis/java-logging/pull/1851" - "https://github.com/googleapis/java-logging-logback/pull/1512" "https://github.com/googleapis/java-pubsub/pull/2537" "https://github.com/googleapis/java-pubsublite/pull/1917" "https://github.com/googleapis/java-spanner/pull/4026"