From 575834f7dd42502576a58299b3eafbc46e3df093 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Tue, 9 Jun 2026 21:35:26 +0000 Subject: [PATCH 1/5] docs: add release-procedure.md --- packages/bigframes/release-procedure.md | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 packages/bigframes/release-procedure.md diff --git a/packages/bigframes/release-procedure.md b/packages/bigframes/release-procedure.md new file mode 100644 index 000000000000..b28d6763111a --- /dev/null +++ b/packages/bigframes/release-procedure.md @@ -0,0 +1,36 @@ +# BigQuery DataFrames (bigframes) release procedure + +* Obtain GitHub token: + + export LIBRARIAN_GITHUB_TOKEN=$(gh auth token) + +* Stash changes (repo must be clean): + + git stash -u + +* Fetch and checkout base: + + git fetch origin main + git fetch origin --tags + git checkout origin/main + +* Check image updates: + + legacylibrarian update-image -push + +* Create release PR: + + # Option A: Push directly + legacylibrarian release stage --repo=https://github.com/googleapis/google-cloud-python --library=bigframes --library-version=X.X.X --push + + # Option B: Manual edit first (omit -push, edit files in /tmp/librarian-*, commit/push from there) + legacylibrarian release stage --repo=https://github.com/googleapis/google-cloud-python --library=bigframes --library-version=X.X.X + # In /tmp repository: + git commit -a -m "chore: create release" --no-verify # keep librarian config pristine + # Push branch & create PR on GitHub with release:pending label + +* Post-release restore: + + # Move back any stashed/relocated files (like .vscode) + git checkout main + git stash pop From 1fe38bec9fdbc2bfdc9413f76bafd7ed8b4ec8d3 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Thu, 11 Jun 2026 21:29:11 +0000 Subject: [PATCH 2/5] docs: add RELEASING.md onboarding guide --- packages/bigframes/RELEASING.md | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 packages/bigframes/RELEASING.md diff --git a/packages/bigframes/RELEASING.md b/packages/bigframes/RELEASING.md new file mode 100644 index 000000000000..c2931b9c451b --- /dev/null +++ b/packages/bigframes/RELEASING.md @@ -0,0 +1,63 @@ +# Releasing BigQuery DataFrames (BigFrames) on GitHub + +This onboarding documentation describes how to release a new version of the `bigframes` package. + +--- + +## Why is this a manual step? +By default in this monorepo, BigQuery DataFrames releases are marked with `skip_release: true`. This prevents automatic release pipelines from triggering on every commit. Instead, a library maintainer must explicitly trigger the release staging process using the `legacylibrarian` tool. + +--- + +## Quick Onboarding Checklist (First Time Only) + +1. **Install the legacylibrarian CLI tool**: + ```bash + go install github.com/googleapis/librarian/cmd/legacylibrarian@latest + ``` + *(Ensure `~/go/bin` is in your system `PATH`)*. + +2. **Authenticate with GitHub CLI**: + Ensure the `gh` tool is installed and logged in: + ```bash + gh auth login + ``` + +--- + +## How to Trigger a Release + +Follow these general steps to release a new version (e.g., `X.X.X`): + +1. **Set your GitHub Auth Token**: + ```bash + export LIBRARIAN_GITHUB_TOKEN=$(gh auth token) + ``` + +2. **Checkout the main branch**: + ```bash + git fetch origin main && git checkout origin/main + ``` + +3. **Run the staging command with push**: + ```bash + legacylibrarian release stage \ + --repo=https://github.com/googleapis/google-cloud-python \ + --library=bigframes \ + --library-version=X.X.X \ + --push + ``` + * This automatically clones the repo in a temp folder, updates version references, creates a commit, pushes the release branch, and generates a Pull Request on GitHub. + * Review the generated PR on GitHub, verify the `release:pending` label, and squash-merge it once tests pass. + +--- + +## Detailed Step-by-Step & Troubleshooting + +For the detailed step-by-step cheatsheet, including troubleshooting common errors like: +* Context-Aware Access (CAA) credential blocks +* Git `insteadOf` redirection errors in `~/.gitconfig` +* `go-git` cleanliness errors caused by local `.vscode/` or `venv` directories + +Refer to the cheat-sheet document: +👉 **[packages/bigframes/release-procedure.md](file:///usr/local/google/home/shuowei/src/google-cloud-python/google-cloud-python/packages/bigframes/release-procedure.md)** From d5ff8ffc90ed3b4ad91d472226dc53323c6ba064 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Thu, 11 Jun 2026 21:31:29 +0000 Subject: [PATCH 3/5] docs: merge onboarding guide into release-procedure.md --- packages/bigframes/RELEASING.md | 63 ------------------------- packages/bigframes/release-procedure.md | 14 ++++++ 2 files changed, 14 insertions(+), 63 deletions(-) delete mode 100644 packages/bigframes/RELEASING.md diff --git a/packages/bigframes/RELEASING.md b/packages/bigframes/RELEASING.md deleted file mode 100644 index c2931b9c451b..000000000000 --- a/packages/bigframes/RELEASING.md +++ /dev/null @@ -1,63 +0,0 @@ -# Releasing BigQuery DataFrames (BigFrames) on GitHub - -This onboarding documentation describes how to release a new version of the `bigframes` package. - ---- - -## Why is this a manual step? -By default in this monorepo, BigQuery DataFrames releases are marked with `skip_release: true`. This prevents automatic release pipelines from triggering on every commit. Instead, a library maintainer must explicitly trigger the release staging process using the `legacylibrarian` tool. - ---- - -## Quick Onboarding Checklist (First Time Only) - -1. **Install the legacylibrarian CLI tool**: - ```bash - go install github.com/googleapis/librarian/cmd/legacylibrarian@latest - ``` - *(Ensure `~/go/bin` is in your system `PATH`)*. - -2. **Authenticate with GitHub CLI**: - Ensure the `gh` tool is installed and logged in: - ```bash - gh auth login - ``` - ---- - -## How to Trigger a Release - -Follow these general steps to release a new version (e.g., `X.X.X`): - -1. **Set your GitHub Auth Token**: - ```bash - export LIBRARIAN_GITHUB_TOKEN=$(gh auth token) - ``` - -2. **Checkout the main branch**: - ```bash - git fetch origin main && git checkout origin/main - ``` - -3. **Run the staging command with push**: - ```bash - legacylibrarian release stage \ - --repo=https://github.com/googleapis/google-cloud-python \ - --library=bigframes \ - --library-version=X.X.X \ - --push - ``` - * This automatically clones the repo in a temp folder, updates version references, creates a commit, pushes the release branch, and generates a Pull Request on GitHub. - * Review the generated PR on GitHub, verify the `release:pending` label, and squash-merge it once tests pass. - ---- - -## Detailed Step-by-Step & Troubleshooting - -For the detailed step-by-step cheatsheet, including troubleshooting common errors like: -* Context-Aware Access (CAA) credential blocks -* Git `insteadOf` redirection errors in `~/.gitconfig` -* `go-git` cleanliness errors caused by local `.vscode/` or `venv` directories - -Refer to the cheat-sheet document: -👉 **[packages/bigframes/release-procedure.md](file:///usr/local/google/home/shuowei/src/google-cloud-python/google-cloud-python/packages/bigframes/release-procedure.md)** diff --git a/packages/bigframes/release-procedure.md b/packages/bigframes/release-procedure.md index b28d6763111a..522732d5c46c 100644 --- a/packages/bigframes/release-procedure.md +++ b/packages/bigframes/release-procedure.md @@ -1,5 +1,19 @@ # BigQuery DataFrames (bigframes) release procedure +*(Note: bigframes releases are marked with `skip_release: true` in `librarian.yaml` and must be kicked off manually using legacylibrarian.)* + +## Setup (First Time Only) + +* Install `legacylibrarian`: + + go install github.com/googleapis/librarian/cmd/legacylibrarian@latest + +* Authenticate with GitHub CLI: + + gh auth login + +## Release Steps + * Obtain GitHub token: export LIBRARIAN_GITHUB_TOKEN=$(gh auth token) From 6db96f408e3c046bf4e0b294712fefe084c03830 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Thu, 11 Jun 2026 14:45:47 -0700 Subject: [PATCH 4/5] Update packages/bigframes/release-procedure.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- packages/bigframes/release-procedure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bigframes/release-procedure.md b/packages/bigframes/release-procedure.md index 522732d5c46c..ffde94f7a672 100644 --- a/packages/bigframes/release-procedure.md +++ b/packages/bigframes/release-procedure.md @@ -30,7 +30,7 @@ * Check image updates: - legacylibrarian update-image -push + legacylibrarian update-image --push * Create release PR: From 33e19125d5826d2034419858225ca9ba4e61772f Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Thu, 11 Jun 2026 14:46:15 -0700 Subject: [PATCH 5/5] Update packages/bigframes/release-procedure.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- packages/bigframes/release-procedure.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/bigframes/release-procedure.md b/packages/bigframes/release-procedure.md index ffde94f7a672..aeb87862fe64 100644 --- a/packages/bigframes/release-procedure.md +++ b/packages/bigframes/release-procedure.md @@ -37,11 +37,12 @@ # Option A: Push directly legacylibrarian release stage --repo=https://github.com/googleapis/google-cloud-python --library=bigframes --library-version=X.X.X --push - # Option B: Manual edit first (omit -push, edit files in /tmp/librarian-*, commit/push from there) + # Option B: Manual edit first (omit --push, edit files in /tmp/librarian-*, commit/push from there) legacylibrarian release stage --repo=https://github.com/googleapis/google-cloud-python --library=bigframes --library-version=X.X.X # In /tmp repository: git commit -a -m "chore: create release" --no-verify # keep librarian config pristine - # Push branch & create PR on GitHub with release:pending label + git push origin HEAD + gh pr create --fill --label "release:pending" * Post-release restore: