Cut release 0.1.10: version bump + frozen snapshot in lockstep - #26
Conversation
…ckstep Same two-field release-guard contract PR #24 established: the tagged commit must carry `[external.package].version` == the tag version AND the frozen `src/generated/<tag>/` snapshot it names. Both move here, cut in one `cutRelease()` + `forge fmt` run, with the released-suites lib regenerated alongside. No content change. `src/generated/0_1_10/CloneFactory.sol` is byte-identical to `0_1_9/` and to the rolling `candidate/` (sha256 c71e54c84144abe41487a72a549c8bc8bfe88f13fe56d5c2139789523714d819), so the already-deployed contracts satisfy the chain attestation and no new broadcast is needed. 0.1.9 was never published: its release run (32399215966) died in the determinism check, the crash rainlanguage/rainix#343 fixed. sol-v0.1.6/0.1.7/0.1.8/0.1.9 stay as dead markers. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe Soldeer release version changes from 0.1.9 to 0.1.10. ChangesCloneFactory release registration
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The PR updates the release version and adds the matching frozen generated snapshot and release index; no concrete correctness or runtime risk is identified at this head, so no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Cuts release 0.1.10 on the same two-field contract PR #24 established for 0.1.9: the tagged commit must carry
[external.package].version== the tag version AND the frozensrc/generated/<tag>/snapshot it names. Both move here, in onecutRelease()+forge fmtrun, with the released-suites lib regenerated alongside.Why 0.1.10 and not a retag of 0.1.9
sol-v0.1.9was tagged yesterday and its Package Release run (32399215966) died at Regenerate the release snapshot (read-only determinism check) — the crash rainlanguage/rainix#343 fixed (that step used torm -rf src/generated/<version>/first, and this repo'sLibCloneFactoryReleased.solimports every frozen record, so removing the directory made the tree uncompilable). Nothing published: Soldeer has zero revisions forrain-factory-deploy, so 0.1.10 is the first.sol-v0.1.6/0.1.7/0.1.8/0.1.9all stay as dead markers; no tag is deleted.No content change, so no new broadcast
src/generated/0_1_10/CloneFactory.solis byte-identical to0_1_9/and to the rollingcandidate/— all three sha256c71e54c84144abe41487a72a549c8bc8bfe88f13fe56d5c2139789523714d819. Same creation code, sameBYTECODE_HASH, sameDEPLOYED_ADDRESS0xAb9741E6f843452D649FCa35899d8F9A36e7DcA8. The address is a pure function of the bytecode under the deterministic Zoltu deployer, so the contracts deployed for 0.1.9 already satisfy the chain attestation and noManual sol artifactsdispatch is needed for this release.QA
Discriminating tests:
testSuitesLiveOnEverySupportedNetworknow carries two released subjects instead of one and fork-verifies both against all seven live networks in CI (locally env-gated: the only failure in 28 is its missingARBITRUM_RPC_URL).testEveryFrozenSnapshotIsReleasedis the one that fails on a freeze landing without itsreleasedSuites()entry, or the reverse — it is why the generated lib is regenerated in this same commit rather than after.Mutations applied: n/a - generated freeze plus one version line, no hand-written logic to mutate. The standing gates already discriminate: a hand edit inside
src/generated/0_1_9/fails the frozen-snapshots-append-only gate, and drift between the freeze and source failsCloneFactoryDeploySnapshotTest.Oracle: the release path's own two gates, run locally against this commit at the
RAINIX_SHAthe release will use (3d1c85e), not restated from the workflow:forge script ./script/Build.sol && forge fmt(the non-freezingrun(), post-#343) leavesgit status --porcelainempty;rainix-static release-guard --version 0.1.10reportsclean — foundry.toml version, src/generated/0_1_10/ present and newest, tree regenerates unchanged, frozen release matches src/generated/candidate/.That is the exact step pair that rejected 0.1.9, passing here.
Category check: completes the ruled "release"; covered: version bump + snapshot freeze + released-suites regeneration, the fields the guard names.
Blocker this PR does not resolve
Merging this is necessary but not sufficient to release.
.github/workflows/package-release.yamlstill passessnapshot-generate-cmd:torainix-tag-release@main, and rainlanguage/rainix#343 deleted that input — so asol-v0.1.10push today fails at workflow load withInvalid input, snapshot-generate-cmd is not defined in the referenced workflow, before the guard job starts, and burns the tag for nothing. #25 removes that line and is the prerequisite; see rainlanguage/rainix#344. The tag must go on a commit that carries both this snapshot and that deletion.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Maintenance