chore(release): adopt next-version Soldeer lifecycle (closes #27)#28
chore(release): adopt next-version Soldeer lifecycle (closes #27)#28thedavidmeister wants to merge 3 commits into
Conversation
Bump [package].version 0.1.0 -> 0.1.1 so it is strictly ahead of the published rain-pyth revision (0.1.0), as the next-version autopublish lifecycle requires. Wire soldeer-generate-cmd into the package-release reusable so the post-publish bump regenerates src/generated/PythWords.pointers.sol born-green, and grant the reusable the contents/id-token write scopes it needs. Co-Authored-By: Claude <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 Run ID: 📒 Files selected for processing (2)
WalkthroughThe release job now explicitly grants permissions required by the reusable autopublish workflow, and ChangesSoldeer release lifecycle
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
🚥 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 |
|
🤖 ai:vetter |
|
Rework note (human): rejecting for rework — the release-lifecycle regeneration diverges from the repo's canonical build. The wired So the release regeneration and
Also sanity-check |
The rainix reusable deprecated soldeer-generate-cmd as a no-op: the version bump no longer regenerates per-release artifacts. Every committed artifact (pointers via BuildPointers, authoring meta via script/build.sh in the default devshell where rain lives) is built and committed by the PR that defines the version's content and diff-checked by copy-artifacts on main, so there is no release-time regeneration path to diverge from script/build.sh. The soldeer package is src/-only (.github and foundry.toml are both soldeerignored) and the content gate blanks the version line, so merging this PR does not itself publish 0.1.1; the next src content change does. Co-Authored-By: Claude <noreply@anthropic.com>
|
🤖 ai:producer
QA
|
|
🤖 ai:vetter |
copy-artifacts requires the codegen script at script/Build.sol; main renamed BuildPointers.sol in #31 after this branch was cut. Regeneration verified byte-for-byte clean at the bumped version. Co-Authored-By: Claude <noreply@anthropic.com>
|
🤖 ai:vetter |
|
🤖 ai:producer |
Closes #27
What
Adopt the next-version Soldeer release lifecycle in
rain-pyth(the sharedrainix-autopublishreusable, pinned@main, switched to it in rainlanguage/rainix#264):foundry.toml— bump[package].version0.1.0→0.1.1so the declared version is strictly ahead of the latest publishedrain-pythrevision. Without this, the next Solidity-content merge fails the autopublish gate (version (0.1.0) is not ahead of the published revision (0.1.0))..github/workflows/package-release.yaml— wiresoldeer-generate-cmdso the reusable regenerates the version-keyedsrc/generated/PythWords.pointers.solsnapshot in the post-publish bump commit (born-green), and grant the reusable thecontents: write/id-token: writescopes it needs to push that commit + tag (the repo default token is read-only).This mirrors the merged reference wiring in S01-Issuer/st0x.deploy#243.
QA evidence (config/CI-only change — no executable/behavioral surface)
This diff changes a TOML version string and a workflow YAML; there is no Solidity/Rust/TS logic in the change, so adversarial mutation testing is category-N/A (nothing to mutate). Verification is instead the concrete, independently-checkable facts the change depends on:
api.soldeer.xyz) reports exactly one publishedrain-pythrevision,0.1.0(created 2026-06-04); the git tagsol-v0.1.0agrees.foundry.tomlwas0.1.0— equal, not ahead — so0.1.1is the correct next unpublished patch. A mismatched bump (e.g. leaving0.1.0, or jumping to0.2.0) is discriminated by this check.forge soldeer install && forge script ./script/BuildPointers.sol && forge fmt— thengit status --porcelain src/generated: empty (no diff). So the generated pointer snapshot the reusable will re-freeze on the post-publish bump is identical to what is committed; the command is correct and does not introduce drift.BuildPointers.solis pure-forge (writes via vm cheatcodes, norainshell-out), so it runs in the reusable's sol-shell.permissionsblock andsoldeer-generate-cmdmirror the merged, working reference (st0x.deploy#243);secrets: inheritis unchanged (already functional for this repo's publish).REQUIRES redeploy at land
No. This changes no deployed bytecode — the committed pointer snapshot is unchanged (born-green verified above); only the CI lifecycle and the in-dev version string move.
Summary by CodeRabbit