You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A1. Create GitHub environment testpypi in repo Settings → Environments. No protection rules needed.
A2. Create GitHub environment pypi with Required reviewers (at least one maintainer) so every PyPI publish needs a human OK. Recommended: also restrict to selected tags: tracing-v*.
A5. Re-run failed jobs on the existing release workflow — the wheel/sdist artifact is already built and uploaded, no new tag needed. Caveat: this only works while the release-tracing-dist workflow artifact is still retained (default 90 days, or whatever repo settings dictate). If retention has expired, run the full workflow against the existing tag — gh workflow run release-tracing.yml --ref tracing-v0.1.0 — to rebuild + re-upload the artifact before the publish jobs can pull it.
A7. Verify PyPI install (after the pypi environment approval is granted): pip install bigquery-agent-analytics-tracing==0.1.0. python -c \"from bigquery_agent_analytics_tracing import __version__; print(__version__)\" should print 0.1.0.
Track 2 — Claude Code marketplace
Correction from earlier guidance: The Claude Code marketplace docs at https://code.claude.com/docs/en/plugin-marketplaces list supported plugin source types as relative path, github, url, git-subdir, and npm. There is no github-release source type pointing at a release asset tarball. Do not point marketplace.json directly at the GitHub release tarball — that won't resolve.
Two shapes work. Recommended order: ship B0 (the in-repo fallback) now to unblock the install path, then move to B1–B4 (separate distribution repo) once someone with GoogleCloudPlatform/* repo-creation rights can set them up.
B0 — In-repo marketplace catalog (immediate, no new repos needed) — IMPLEMENTED IN #252
Adds the catalog + an expanded dist folder to this repo:
Critical constraint: the marketplace MUST be added via the Git source form (<owner>/<repo>), not by passing a direct URL to marketplace.json. Relative source paths only resolve when Claude Code has a local checkout of the surrounding repo to walk into. A direct-URL add fetches only the catalog JSON; the install would then fail to resolve ./plugins/claude_code_dist/....
Status:
B0.1. PR #252 opened with the catalog + dist folder + README install-path swap.
B1.2. Populate it with the built plugin tarball contents (not source — vendor/ is generated and gitignored in source, and the source plugin.json has the 0.0.0+local placeholder):
Source: extract bigquery-agent-analytics-tracing-claude-code-0.1.0.tar.gz from the GitHub release.
B1.3. Tag the repo:
git tag -a v0.1.0 -m "bqaa tracing claude code plugin 0.1.0"
git push origin v0.1.0
B1.4. Add release automation to this repo so future tracing-vX.Y.Z cuts on the SDK repo automatically PR the new tarball contents over and tag here. Can be a separate follow-up — manual sync is fine for v0.1.0.
Verify the exact field naming (source.type vs source.source, ref vs tag) against the current Claude Code docs and the version of claude CLI you're running. Some doc versions use \"source\": \"github\" shorthand for simple entries.
B3 — Validate locally before going public
B3.1. From a clone of bqaa-tracing-marketplace:
claude plugin validate .
Resolve any schema errors. Iterate on the manifest shape until validation passes.
B3.2. Load the local marketplace in a fresh Claude Code session:
Ongoing release routine (after both tracks are live)
Once Trusted Publishing + marketplace catalog are wired up, the steady-state release process is:
Bump producers/pyproject.toml version → PR → merge.
git tag -a tracing-vX.Y.Z → git push origin tracing-vX.Y.Z on this repo.
release-tracing.yml does the rest (verify → build → github-release → publish-testpypi → publish-pypi).
Download bigquery-agent-analytics-tracing-claude-code-X.Y.Z.tar.gz from the new GitHub release. Extract into bqaa-tracing-claude-code-plugin repo, commit, tag vX.Y.Z, push.
Open PR on bqaa-tracing-marketplace bumping marketplace.json's version and source.ref. Merge.
Smoke test: fresh Claude Code session → /plugin install → confirm BigQuery rows tag with the new version.
Step 4 can be automated as a follow-up (cross-repo workflow trigger from this repo on tracing-v* tags).
Tracking the remaining publish work after the
tracing-v0.1.0GitHub release cut. Maps to the end of #234 step 4 (PyPI) and #234 step 5 (marketplace).State
✅ Done:
tracing-v0.1.0cut; GitHub release has wheel, sdist, and Claude Code plugin tarball attached.release-tracing.ymlworkflow ran:verify/build/github-releaseall green.❌ Pending:
publish-testpypiandpublish-pypijobs failed on the first run because Trusted Publishers aren't configured yet (expected — see run #26481268141)./plugin installpath.Track 1 — PyPI Trusted Publishing (maintainer action)
Trusted Publisher values (from the OIDC claim set the failed run logged):
bigquery-agent-analytics-tracingGoogleCloudPlatformBigQuery-Agent-Analytics-SDKrelease-tracing.ymltestpypi(TestPyPI) /pypi(PyPI)Docs: https://docs.pypi.org/trusted-publishers/adding-a-publisher/, https://docs.pypi.org/trusted-publishers/using-a-publisher/.
testpypiin repo Settings → Environments. No protection rules needed.pypiwith Required reviewers (at least one maintainer) so every PyPI publish needs a human OK. Recommended: also restrict to selected tags:tracing-v*.testpypi.pypi.release-tracing-distworkflow artifact is still retained (default 90 days, or whatever repo settings dictate). If retention has expired, run the full workflow against the existing tag —gh workflow run release-tracing.yml --ref tracing-v0.1.0— to rebuild + re-upload the artifact before the publish jobs can pull it.pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ bigquery-agent-analytics-tracing==0.1.0.pypienvironment approval is granted):pip install bigquery-agent-analytics-tracing==0.1.0.python -c \"from bigquery_agent_analytics_tracing import __version__; print(__version__)\"should print0.1.0.Track 2 — Claude Code marketplace
Correction from earlier guidance: The Claude Code marketplace docs at https://code.claude.com/docs/en/plugin-marketplaces list supported plugin source types as
relative path,github,url,git-subdir, andnpm. There is nogithub-releasesource type pointing at a release asset tarball. Do not pointmarketplace.jsondirectly at the GitHub release tarball — that won't resolve.Two shapes work. Recommended order: ship B0 (the in-repo fallback) now to unblock the install path, then move to B1–B4 (separate distribution repo) once someone with
GoogleCloudPlatform/*repo-creation rights can set them up.B0 — In-repo marketplace catalog (immediate, no new repos needed) — IMPLEMENTED IN #252
Adds the catalog + an expanded dist folder to this repo:
marketplace.jsonuses a relative plugin source:{ "name": "bqaa-tracing", "owner": { "name": "Google LLC" }, "plugins": [ { "name": "bigquery-agent-analytics-tracing", "source": "./plugins/claude_code_dist/bigquery-agent-analytics-tracing", "description": "Stream Claude Code hook traces to Google BigQuery Agent Analytics agent_events.", "version": "0.1.0", "author": { "name": "Google LLC" }, "license": "Apache-2.0" } ] }Users install with a Git-source
add, optionally sparse to skip the rest of the SDK repo:Critical constraint: the marketplace MUST be added via the Git source form (
<owner>/<repo>), not by passing a direct URL tomarketplace.json. Relativesourcepaths only resolve when Claude Code has a local checkout of the surrounding repo to walk into. A direct-URLaddfetches only the catalog JSON; the install would then fail to resolve./plugins/claude_code_dist/....Status:
claude plugin validate .against the merged catalog (validates the manifest shape against the current Claude CLI schema).attributes.writer.version = '0.1.0'on the resulting rows.B1 — Plugin distribution repo (the resolved plugin artifact, committed and tagged)
GoogleCloudPlatform/bqaa-tracing-claude-code-plugin.vendor/is generated and gitignored in source, and the sourceplugin.jsonhas the0.0.0+localplaceholder):bigquery-agent-analytics-tracing-claude-code-0.1.0.tar.gzfrom the GitHub release.git tag -a v0.1.0 -m "bqaa tracing claude code plugin 0.1.0" git push origin v0.1.0tracing-vX.Y.Zcuts on the SDK repo automatically PR the new tarball contents over and tag here. Can be a separate follow-up — manual sync is fine for v0.1.0.B2 — Marketplace catalog repo
GoogleCloudPlatform/bqaa-tracing-marketplace..claude-plugin/marketplace.jsonwith agithubsource pointing at the distribution repo's tag:{ "name": "bqaa-tracing", "owner": { "name": "Google LLC", "url": "https://github.com/GoogleCloudPlatform/BigQuery-Agent-Analytics-SDK" }, "plugins": [ { "name": "bigquery-agent-analytics-tracing", "description": "Stream Claude Code hook traces to Google BigQuery Agent Analytics agent_events.", "version": "0.1.0", "author": { "name": "Google LLC" }, "source": { "source": "github", "repo": "GoogleCloudPlatform/bqaa-tracing-claude-code-plugin", "ref": "v0.1.0" }, "homepage": "https://github.com/GoogleCloudPlatform/BigQuery-Agent-Analytics-SDK/tree/main/plugins/claude_code", "repository": "https://github.com/GoogleCloudPlatform/BigQuery-Agent-Analytics-SDK", "license": "Apache-2.0", "keywords": ["bigquery", "agent-analytics", "observability", "tracing", "claude-code"] } ] }source.typevssource.source,refvstag) against the current Claude Code docs and the version ofclaudeCLI you're running. Some doc versions use\"source\": \"github\"shorthand for simple entries.B3 — Validate locally before going public
bqaa-tracing-marketplace:claude plugin validate .writer_version = '0.1.0'.B4 — Publish + announce
plugins/claude_code/README.mdin this repo to replace the curl-and-extract recipe with the marketplace install:MARKETPLACE.md.B5 — Submit to Anthropic's official marketplace (after B1–B4 settle)
MARKETPLACE.mdverification checklist (already in this repo).claude-plugin/plugin.jsonOngoing release routine (after both tracks are live)
Once Trusted Publishing + marketplace catalog are wired up, the steady-state release process is:
producers/pyproject.tomlversion → PR → merge.git tag -a tracing-vX.Y.Z→git push origin tracing-vX.Y.Zon this repo.release-tracing.ymldoes the rest (verify → build → github-release → publish-testpypi → publish-pypi).bigquery-agent-analytics-tracing-claude-code-X.Y.Z.tar.gzfrom the new GitHub release. Extract intobqaa-tracing-claude-code-pluginrepo, commit, tagvX.Y.Z, push.bqaa-tracing-marketplacebumpingmarketplace.json'sversionandsource.ref. Merge./plugin install→ confirm BigQuery rows tag with the new version.Step 4 can be automated as a follow-up (cross-repo workflow trigger from this repo on
tracing-v*tags).References