Repository navigation
chore(release): prepare same-base 0.9.3 release candidate - #164
Open
yia-mw-agent wants to merge 3 commits into
Open
yia-mw-agent wants to merge 3 commits into
yia-mw-agent wants to merge 3 commits into
Conversation
Adds the narrowly tested Release-Channel: rc-same-base updater case (metadata only, stable baseline, no base increment), the synchronized 0.9.3rc1 mirrors it wrote, and a base-vs-candidate wheel/sdist identity check. Refs #163
This branch has not been deployed
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
Prepares FAVA Trails 0.9.3rc1 as a same-base, metadata-only release candidate of main commit ed59cd4. Stable baseline is 0.9.3, bumped in #156 and never published; PyPI latest is 0.9.2 and no
v0.9.3*tag exists. This PR does not repeat that bump, does not go to 0.9.4, and does not touchrelease.yml.Why a tooling change was needed: the updater's only RC entry (
Release-Channel: rc) increments the base (0.9.3becomes0.9.4rc1), and a version-only edit to0.9.3rc1failscheck(expected 0.9.3).release.ymlrequires tag == package version and tag == current main tip, sov0.9.3rc1cannot be cut on source0.9.3.What changes:
scripts/mw-version.py: new exact-line markerRelease-Channel: rc-same-base(also in the embedded guidance).0.9.3becomes0.9.3-rc.1(0.9.3rc1) with no increment. After stripping configured version values, any remaining release-path difference from the base is rejected. Needs a stable baseline, is mutually exclusive withRelease-Channel: rc, and is ignored by the promotion title. The updater never tags or publishes.pyproject.toml,uv.lock,src/fava_trails/__init__.py: the three synchronized mirrors, written bymw-version.py update(not by hand), 3 lines changed in total.scripts/check-rc-artifact-identity.py(new, non-product path): builds the base and the candidate withuv buildfromgit archivetrees and fails unless the wheel and sdist have the same members and identical bytes after rewriting0.9.3rc1to0.9.3(wheelRECORDignored).docs/version-policy.md: documents both RC markers and the artifact check.tests/test_release_channels.py: 21 new tests.CHANGELOG.md/README.mdare deliberately untouched, because the sdist ships them and the candidate must keep the base's bytes.Evidence (head = this PR's head, base = ed59cd4)
python3 scripts/mw-version.py check --base origin/main --title '<this title>' --body-file <this body>:repo: 0.9.3 -> 0.9.3-rc.1, Version policy passed.uv run pytestexcludingtests/test_packaged_mcp.py: 1251 passed.tests/test_release_channels.py: 56 passed (35 existing, 21 new).0.9.4rc1,0.9.3rc2,0.9.4) failcheck; no-marker RC relabel rejected; prerelease baseline rejected; marker exclusivity and exact-line matching; promotion title ignores the marker; later promotion (0.9.3rc1to0.9.3) and a later product change (0.9.4rc1) keep their semantics; artifact comparison accepts a version-only candidate and rejects changed bytes, an adjacent changed line, added/removed files, sdist changes, no version change, and a wrong artifact name.check-rc-artifact-identity.py --base-ref ed59cd47...): no problems.fava_trails-0.9.3-py3-none-any.whlsha2565b022ca188d029c51332f2a243577f7ae570a8497410d414ff2db2150dedf01dfava_trails-0.9.3.tar.gzsha256aed3d5a8989e4b4930b53eee0ab651ca05289ae436e7404be8f6d0997b5bb2a8fava_trails-0.9.3rc1-py3-none-any.whlsha256e5cdc675c3e55b2c0c069ba7360ad166b623666029814674c35bcf6cc8c7509bfava_trails-0.9.3rc1.tar.gzsha25663a2b2717772ad6252bc7e18d321615324d59214a0354e30ab778778e01d9c25FAVA_CANDIDATE_WHEEL/FAVA_CANDIDATE_SDIST,FAVA_EXPECT_WHEEL=1, as inrelease.yml):tests/test_packaged_mcp.py3 passed (wheel serves MCP, governed recall isolation, fresh install and upgrade from 0.6.0). Hashes were identical before and after.Not done here (separate publication step)
No tag, GitHub Release, PyPI upload, install, runtime restart, or provider/model/data/config change. These local sha256 values are build-environment evidence; the Release workflow rebuilds once from the tag and records its own
candidate-SHA256SUMS.Handoff for the First Officer
checkafter any main change).v0.9.3rc1(release.ymlrequires tag == main tip and tag ==pyproject.tomlversion) and dispatch the Release workflow;release-tag.pyclassifies it asrc(prerelease, not latest).chore(release): promote version(0.9.3rc1to0.9.3, no base increment). The CHANGELOG has no 0.9.3 section yet; add notes in a separate change (editing it changes the sdist).Rollback: revert the merge commit. Nothing is published by this PR, so reverting restores
0.9.3in all mirrors; if av0.9.3rc1tag was already cut, it is immutable and0.9.4rc1/promotion would follow normal policy.Known gaps: open Dependabot #162 (pyasn1) will need
0.9.4rc1if it merges after this PR (the baseline is then a prerelease) and does not change this candidate; merge order is the First Officer's call.scripts/mw-version.pyis a toolkit-distributed file, so the marker should be upstreamed towise-agents-toolkit; this repo's copy now differs from the toolkit's.Release-Channel: rc-same-base
Refs #163