Uh oh!
There was an error while loading. Please reload this page.
ci: drop snapshot-generate-cmd from package-release - #2
Conversation
BLOCKED on rainlanguage/rainix#343 — must not merge before it. rainlanguage/rainix#343 removes the `snapshot-generate-cmd` input from `rainix-tag-release` entirely, so this line has to go. Unlike the other four callers, this repo does NOT pass the input's current default: it passes the non-freezing `forge script ./script/Build.sol && forge fmt`, while the default on rainix `main` today is the freezing `--sig "cutRelease()"` form. So dropping the line BEFORE #343 merges does not fall through to an equivalent command — it selects a different one. `script/Build.sol` here is a plain `Script` exposing only `run()`; it has no `cutRelease()`, so the freezing default cannot even resolve against it. After #343 the workflow runs the non-freezing form itself and this line is redundant rather than load-bearing, which is when this becomes safe. Refs rainlanguage/rainix#344 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Warning Review limit reached
Next review available in:37 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
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 |
thedavidmeister
commented
Aug 21, 2026
CI red here is pre-existing on This PR touches exactly one file —
Passing on this PR: Flagging rather than fixing — the 🤖 Generated with Claude Code |
thedavidmeister
commented
Aug 21, 2026
Out of draftrainlanguage/rainix#343 merged 2026-08-21T07:33:34Z, so the block this was The change is now required, not merely tidy: The checks shown are from the last push and are red for causes elsewhere: |
Uh oh!
There was an error while loading. Please reload this page.
Note
Unblocked.rainlanguage/rainix#343 merged 2026-08-21T07:33:34Z. This is
out of draft and the reasoning below has been updated to say why it is now
required rather than merely tidy.
snapshot-generate-cmdno longer exists as an input onrainix-tag-release.yamlat rainixmain— zero occurrences in the file. Acaller that passes an undeclared input to a reusable workflow errors, so
package-release.yamlcannot start a run at all while this line is present.Deleting it is what lets a
sol-v*tag reach the release job.Why this one was held back
rainlanguage/rainix#343 removed the
snapshot-generate-cmdinput fromrainix-tag-releaseentirely, so this line has to go — the same asthe other four callers tracked by rainlanguage/rainix#344. The ordering is what
differs.
The other four pass a value byte-identical to the input's default as it stood
before #343, so for them the line was already dead weight and dropping it
changes nothing. This repo does not:
forge script ./script/Build.sol && forge fmt(non-freezing)forge script ./script/Build.sol --sig "cutRelease()" && forge fmt(freezing)Merging this before #343 would have silently swapped the release onto the
freezing default. Worse than a behaviour change, that default cannot work
here at all:
script/Build.solin this repo is a plaincontract Build is Scriptexposing only
run(). It does not extendBuildScriptand has nocutRelease()function, so
--sig "cutRelease()"has nothing to call.#343 has now landed, and the reusable hardcodes the non-freezing form —
forge script ./script/Build.sol && forge fmt, verified atrainix-tag-release.yaml:287onmain, byte-identical to what this repopasses today. So the line is both redundant and fatal: redundant because the
behaviour it selected is now the only behaviour, fatal because the input it
names is gone. Dropping it changes nothing about what the release does and
everything about whether the release can start.
QA
workflow. The behaviour it selects lives in
rainix-tag-release, not here,and is unit-tested there by #343. What is checkable in this repo is the
ordering hazard itself, evidenced under Oracle.
nix run github:rainlanguage/adversarial-mutation-test#mutation-probe -- mutants.toml,which reports
error: cannot read mutants.toml. This repo has nomutants.tomland the diff touches no Solidity or Rust source, so there isnothing to mutate.
.on.workflow_call.inputs["snapshot-generate-cmd"].defaultin.github/workflows/rainix-tag-release.yamlatrainlanguage/rainix@main,read from upstream rather than restated from the issue. Both it and this
repo's passed value were parsed with
yq(not eyeballed, so YAML quotingcannot fool the comparison): they were different strings, which is why
this PR was held as a draft while the other four were not. Re-checked now that
#343 is merged: the input is absent from
workflow_call.inputsentirely (zerooccurrences of
snapshot-generate-cmdin the file atmain) and the commandis hardcoded at
rainix-tag-release.yaml:287. The absence ofcutRelease()was confirmed by reading this repo's
script/Build.soldirectly.actionlinton the edited file is clean, and the only remainingwith:key,soldeer-package, stays a declared and required input after #343.#343; #343 has merged, so it is now unblocked and out of draft. Refs, not
Closes — #344 also tracks the other four callers and the
RAINIX_SHAbump.Not run
a caller workflow and touches no Solidity, Rust or JS. CI runs them on this
PR.
sol-v*tag push.Separate finding, not addressed here
While verifying the above I found something that this PR does not cause, does
not fix, and that reviewers of #344 should know about: this repo looks unable
to satisfy #343's new
release-guardat all. The guard requires a frozensrc/generated/<version>/record and a rollingsrc/generated/candidate/tocompare it against. This repo's
src/generated/contains exactly one flat file,LogTables.pointers.sol— no per-tag directories and nocandidate/, so theguard's "was never cut/frozen" check has nothing to match.
This is pre-existing, not a regression from #343 — the guard's prior
tag-presence check was equally unsatisfiable here. It means dropping this line
is necessary but not sufficient for this repo to release under the new
workflow. Flagging it rather than fixing it, since it is outside the scope of
#344 and needs a decision about what a release even means for a repo with this
generated-file shape.
Part of rainlanguage/rainix#344 - this PR is one of the five callers and does
not close it.
🤖 Generated with Claude Code