headroom/.github/workflows
Tejas Chopra a8e3ae52e9 fix(release): sync generated version metadata on the release branch
The 0.33.0 release PR (#2339) has been blocked since 2026-07-17 in
changes-requested, because release-please only rewrites `pyproject.toml` and its
configured `extra-files`. `server.json` is asserted byte-for-byte against
`render_server_json()`, which reads the version from `pyproject.toml`, so the
bump alone fails `test_root_server_json_matches_builder` on the release PR —
the `test (2)` shard. Nothing in the repo regenerated `server.json` at all.

`release.yml` already runs `version-sync.py` before its own `verify-versions.py`
gate (lines 145/278), which is why `build` and `build-wheels` pass on the release
PR despite the drift — it syncs in the workspace, uncommitted. The regular CI test
job does not sync, so the fix has to be committed to the branch.

- `scripts/version-sync.py`: also write `server.json`. It was the one
  version-carrying file with no writer anywhere, so it fell behind every release.
  Values are rewritten in place so key order and formatting keep matching the
  builder's byte-for-byte output.
- `.github/workflows/release-metadata-sync.yml` (new): on a push to
  `release-please--branches--**`, run version-sync, gate on verify-versions, and
  commit if anything changed. Keyed off the branch push because release-please
  force-regenerates that branch on every merge to main — that is what repeatedly
  wiped the hand-pushed metadata fixes on #2339. Uses the same PAT as
  release-please.yml, since a GITHUB_TOKEN push would not re-trigger the release
  PR's checks. Idempotent, so the self-triggered rerun no-ops instead of looping.
- Corrected the pre-existing drift on main: the agent-hooks plugin manifests,
  both marketplace manifests, and `.releasemetadata` were stranded at 0.31.0 and
  were never bumped for 0.32.0 either. `verify-versions.py` now passes on main.

Chose running the script over adding ~13 `extra-files` jsonpath entries: the
script is the single place that knows these locations, and a jsonpath that fails
to match is silent — the same class of failure this removes. There is also no
precedent for nested jsonpath in the config today.

Tests: `test_server_json_version_is_synchronized`,
`test_release_metadata_sync_runs_on_release_please_branch`, and
`test_version_sync_covers_every_file_the_verifier_gates` (guards the two scripts
against drifting apart again).

Not addressed: PyPI is at 9.69GB of its 10GB project cap; the 0.21.x series alone
holds 6.58GB across 31 releases. Roughly 4 more releases fit before that blocks.
2026-07-29 14:57:39 -07:00
..
changelog-guard.yml ci(changelog): stop the CHANGELOG cascade — release-please owns it (#2329) 2026-07-16 14:28:57 -07:00
ci.yml fix(ci): align Ruff tooling versions (#2406) 2026-07-18 20:55:20 -07:00
devcontainers.yml ci: bump actions/checkout from 4 to 7 (#1414) 2026-07-09 11:09:14 -05:00
docker.yml ci: concurrency-cancel Docker + Merge Conflicts to stop merge-spree pileups (#2138) 2026-07-13 13:47:59 -04:00
docs.yml fix: add Vercel deploy config and workflow for docs site (#1739) 2026-07-14 13:25:18 -04:00
eval.yml feat(evals): weekly HotpotQA answer-recall report on the prose path (#1188) 2026-07-15 21:40:55 +00:00
init-e2e.yml ci: scope native/wheel/dashboard jobs to relevant paths (unstarve the queue) (#2155) 2026-07-13 23:50:26 -04:00
init-native-e2e.yml ci: bump actions/checkout from 4 to 7 (#1414) 2026-07-09 11:09:14 -05:00
install-native-e2e.yml ci: bump actions/checkout from 4 to 7 (#1414) 2026-07-09 11:09:14 -05:00
merge-conflicts.yml ci: concurrency-cancel Docker + Merge Conflicts to stop merge-spree pileups (#2138) 2026-07-13 13:47:59 -04:00
network-diff-capture.yml ci: require ONNX Runtime >= 1.24 and fail fast when it is missing or too old (#2591) 2026-07-27 08:04:53 -07:00
opencode-plugin.yml feat(opencode): ship the transport plugin in pip installs (#2601) 2026-07-27 06:40:43 -07:00
pr-health.yml ci: preserve merge labels while state is unknown 2026-07-09 19:51:41 -05:00
publish.yml ci: bump actions/checkout from 4 to 7 (#1414) 2026-07-09 11:09:14 -05:00
release-metadata-sync.yml fix(release): sync generated version metadata on the release branch 2026-07-29 14:57:39 -07:00
release-please.yml ci(release-please): use a PAT so releases trigger the publish workflows (#1920) 2026-07-09 09:07:19 -07:00
release.yml fix(release): publish Windows wheel + sdist (disable PyPI attestations, #112) (#2405) 2026-07-18 20:56:31 -07:00
rust.yml ci: require ONNX Runtime >= 1.24 and fail fast when it is missing or too old (#2591) 2026-07-27 08:04:53 -07:00
security.yml ci: bump actions/checkout from 4 to 7 (#1414) 2026-07-09 11:09:14 -05:00
stale.yml ci: bump actions/stale from 9 to 10 (#850) 2026-06-11 12:53:46 -05:00
wrap-e2e.yml ci: scope native/wheel/dashboard jobs to relevant paths (unstarve the queue) (#2155) 2026-07-13 23:50:26 -04:00
wrap-native-e2e.yml ci: bump actions/checkout from 4 to 7 (#1414) 2026-07-09 11:09:14 -05:00