ci: add release-please for versioned contract releases#321
Merged
Conversation
7206698 to
69d49bb
Compare
NiteshDhanpal
approved these changes
Jun 17, 2026
scale-agentex has no version axis of its own — it floats at head, and the only version concept comes from SGP's platform release. That leaves no way to name an "oldest supported server contract" for downstream consumers. Add release-please (release-type: python; conventional-commit PR titles already enforced) so merges to main cut versioned releases: a vX.Y.Z git tag + GitHub release + CHANGELOG. Make the contract self-describe its version so the tag and spec never drift: - src/_version.py is the single source; the FastAPI app reads it (version=__version__), so generate_openapi_spec.py emits it as info.version. - release-please bumps src/_version.py, agentex/openapi.yaml (info.version), agentex/pyproject.toml, and the root pyproject together with the tag. Each tag is thus an immutable, self-describing snapshot of agentex/openapi.yaml the SDK's cross-version compat suite can pin as min-supported (scaleapi/scale-agentex-python#407), replacing the placeholder commit SHA today. Contract checkpoints, not a deploy gate: the server still floats at head for deploys. Seeded at 0.1.0 with bootstrap-sha at current main HEAD so the changelog starts fresh; the first feat/fix merge (or workflow_dispatch) cuts the first release. Verified gen-openapi emits info.version from _version.py with no spec drift. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
69d49bb to
4fd3813
Compare
This was referenced Jun 17, 2026
max-parke-scale
added a commit
that referenced
this pull request
Jun 17, 2026
The googleapis/release-please-action isn't on the org Actions allow-list, so the release-please workflow added in #321 failed at startup (no release PR cut). Run the release-please CLI under actions/setup-node (allow-listed) instead — same manifest-mode behavior (release-pr + github-release), no third-party action. Verified the CLI commands/flags against release-please@16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
max-parke-scale
added a commit
that referenced
this pull request
Jun 17, 2026
The googleapis/release-please-action isn't on the org Actions allow-list, so the release-please workflow added in #321 failed at startup (no release PR cut). Run the release-please CLI under actions/setup-node (allow-listed) instead — same manifest-mode behavior (release-pr + github-release), no third-party action. Verified the CLI commands/flags against release-please@16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds release-please so merges to
maincut versioned releases — avX.Y.Zgit tag + GitHub release + CHANGELOG — from the conventional commits already enforced here.release-please-config.json—release-type: simple,vX.Y.Ztags (no component), pre-1.0 bump rules, changelog sections..release-please-manifest.json— seeds the version at0.1.0(matchespyproject.toml)..github/workflows/release-please.yml— runs onmain+workflow_dispatch.Why
scale-agentex has no version axis of its own: it floats at head, and the only version concept comes from SGP's platform release. So there's no way to name an "oldest supported server contract" that downstream consumers can target.
This gives scale-agentex its own contract version axis — each release tag is an immutable snapshot of
agentex/openapi.yaml. The SDK's cross-version compatibility suite (scale-agentex-python#407) can then pinmin-supportedto a real release tag instead of the placeholder commit SHA it uses today.These are contract checkpoints, not a deploy gate — the server still floats at head for deploys. The release version is a separate axis from SGP's platform version; don't read them as the same.
Bootstrap
Seeded at
0.1.0withbootstrap-shaat the currentmainHEAD, so the changelog starts fresh (no history backfill). After merge, the firstfeat/fixPR (or a manual workflow_dispatch) opens the first release PR; merging it cuts the first tag. The release PR title ischore: release …, which passes the PR-title check.Next (the SGP hookup — separate)
build-agentex.yml(today it's:sha/:latest) so deploys get a version handle.GITHUB_TOKENdon't trigger other workflows, so the image-on-release build (1) will need a PAT orrepository_dispatch.Decision to confirm
Seed version
0.1.0(matchespyproject.toml). Bump to1.0.0instead if you want the first tag to signal contract stability.🧑💻🤖 — posted via Claude Code
Greptile Summary
Adds Release Please automation for versioned Agentex contract releases on
mainand manual dispatch.Seeds the release manifest at
0.1.0.Introduces a shared Agentex version source and wires FastAPI/OpenAPI versioning to it.
Configures coordinated version bumps for Python package metadata, backend metadata, OpenAPI
info.version, and the shared version file.Confidence Score: 5/5
The changes are limited to release automation and version metadata wiring, with no blocking code issues identified.
The workflow, manifest, configuration, and shared version source align with the described release process and appear safe to merge.
What T-Rex did
Comments Outside Diff (1)
General comment
release-please-config.json, the root package is configured withrelease-type: "python"andpackage-name: "agentex"instead of the claimedrelease-type: "simple"andpackage-name: "contract-checkpoints". The same config also setsbump-patch-for-minor-pre-majortofalse, while the validation objective expected the pre-1.0 bump boolean to be enabled. The executed after artifact reports these exact failed checks while the before artifact shows the config was absent on base.release-please-config.jsonimplement package metadata and bump behavior that target the Python package (agentex) rather than the claimed simple contract-checkpoint release package, and disable patch bumps for minor pre-major changes.release-please-config.jsonso the root package uses"release-type": "simple","package-name": "contract-checkpoints", and set"bump-patch-for-minor-pre-major": trueif the intended contract is the one described in the PR/validation objective. If the actual intended release is the Python package release, update the PR description and release contract accordingly.Reviews (4): Last reviewed commit: "ci: add release-please for versioned, se..." | Re-trigger Greptile