ci: adopt release-please for versioning and PyPI publishing (#684)#694
Open
Brad-Edwards wants to merge 3 commits into
Open
ci: adopt release-please for versioning and PyPI publishing (#684)#694Brad-Edwards wants to merge 3 commits into
Brad-Edwards wants to merge 3 commits into
Conversation
|
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.



Summary
Adopts release-please for versioning + PyPI publishing (#684), replacing the committed-literal/
tools/release.pymachinery from #689. release-please ownsCHANGELOG.mdand the version, derived from the Conventional Commit history onmain— feature PRs never touchCHANGELOG.md(no fragment collisions).What changed
towncrier.toml,changelog.d/(192 fragments — collated one last time intoCHANGELOG.md§0.18.0 so nothing is lost),tools/release.py+ its test, and the committed-literalrelease.yml. Reverted the compat-wrapper policy relaxation (no longer needed).release-please-config.json+.release-please-manifest.json— version source of truth{".": "0.18.0"}..github/workflows/release-please.yml— release-please job maintains the release PR; a gatedpublishjob builds the corpus-bundled wheel/sdist, verifies the corpus ([FEATURE] Ship the contract corpus as package data and cut versioned releases so conformance + validation work from an installed wheel #537), publishes to PyPI via OIDC, attaches dists. Actions SHA-pinned.pyproject.toml— static[project] version = "0.18.0"(release-please bumps it); removed hatch-vcs/[tool.hatch.version].src/aces/__init__.py—__version__derives from installed dist metadata viapackage_version(kept the compat wrapper)..gc/plan-rules.md,docs/explain/releasing.md,CHANGELOG.mdpreamble.aces-specific adaptations (deviations from the generic spec, all deliberate)
__init__.pyusespackage_version(fromaces._compat), notfrom importlib.metadata import version— the compat-wrapper policy only permits imports fromaces._compat. Same effect (derives from the dist version release-please bumps)..(soCHANGELOG.mdstays at root, where README/docs link it); the real version literal inimplementations/python/pyproject.tomlis bumped viaextra-files($.project.version).CHANGELOG.md§0.18.0 before deletingchangelog.d/.Verified locally
aces_sdl-0.18.0(static[project] version), 232 corpus files.check_repo_policy.pygreen; 168 policy/manifest tests pass.changelog-requiredrule and authority-boundary checks are not CI-wired, so removingchangelog.ddoesn't break verify.Requires (maintainer)
release.yml→release-please.yml(or add a second) — else only the publish step 403s.GITHUB_TOKEN): admin-merge it, or give release-please a PAT.Residual (optional, not CI-enforced)
The dormant rego
changelog-requiredrule +adr_policy.yaml: changelog_fragment_dirstill referencechangelog.d; harmless (not run in CI) but can be cleaned up separately.Supersedes the committed-literal model (#689). The corpus-bundled wheel (#537) is retained.