Skip to content

ci: drop snapshot-generate-cmd from package-release - #2

Merged
thedavidmeister merged 1 commit into
mainfrom
2026-08-21-drop-snapshot-generate-cmd
Aug 21, 2026
Merged

ci: drop snapshot-generate-cmd from package-release#2
thedavidmeister merged 1 commit into
mainfrom
2026-08-21-drop-snapshot-generate-cmd

Conversation

@thedavidmeister

@thedavidmeisterthedavidmeister commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

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-cmd no longer exists as an input on
rainix-tag-release.yaml at rainix main — zero occurrences in the file. A
caller that passes an undeclared input to a reusable workflow errors, so
package-release.yaml cannot 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-cmd input from
rainix-tag-release entirely, so this line has to go — the same as
the 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:

value
passed hereforge script ./script/Build.sol && forge fmt (non-freezing)
pre-#343 defaultforge 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.sol in this repo is a plain contract Build is Script
exposing only run(). It does not extend BuildScript and has no cutRelease()
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 at
rainix-tag-release.yaml:287 on main, byte-identical to what this repo
passes 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

  • Discriminating tests: n/a - the diff deletes one YAML line from a caller
    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.
  • Mutations applied: n/a - ran
    nix run github:rainlanguage/adversarial-mutation-test#mutation-probe -- mutants.toml,
    which reports error: cannot read mutants.toml. This repo has no
    mutants.toml and the diff touches no Solidity or Rust source, so there is
    nothing to mutate.
  • Oracle: .on.workflow_call.inputs["snapshot-generate-cmd"].default in
    .github/workflows/rainix-tag-release.yaml at rainlanguage/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 quoting
    cannot 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.inputs entirely (zero
    occurrences of snapshot-generate-cmd in the file at main) and the command
    is hardcoded at rainix-tag-release.yaml:287. The absence of cutRelease()
    was confirmed by reading this repo's script/Build.sol directly.
    actionlint on the edited file is clean, and the only remaining with: key,
    soldeer-package, stays a declared and required input after #343.
  • Category check: #344 asks this repo to drop the line, explicitly after
    #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_SHA bump.

Not run

  • The repo's own suites were not run for this diff: it changes one YAML line in
    a caller workflow and touches no Solidity, Rust or JS. CI runs them on this
    PR.
  • The release path is not exercisable outside a real 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-guard at all.
The guard requires a frozen
src/generated/<version>/ record and a rolling src/generated/candidate/ to
compare it against. This repo's src/generated/ contains exactly one flat file,
LogTables.pointers.sol — no per-tag directories and no candidate/, so the
guard'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

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>
@coderabbitai

coderabbitaiBot commented Aug 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@thedavidmeister, you've reached your PR review limit, so we couldn't start this review.

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 @coderabbitai review or push new commits to the PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b150f352-b665-4ae0-9df7-30df2c56d40d

📥 Commits

Reviewing files that changed from the base of the PR and between f724824 and 4be2214.

📒 Files selected for processing (1)
  • .github/workflows/package-release.yaml

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thedavidmeister

Copy link
Copy Markdown
ContributorAuthor

CI red here is pre-existing on main, not from this diff. Recording the
check so the red is not misread as this PR's.

This PR touches exactly one file — .github/workflows/package-release.yaml
(git diff --name-only f724824 HEAD), a on: push: tags: sol-v* workflow that
does not run on pull requests at all. It cannot affect the suites below.

  • rs-static — fails on the "no ignored tests" gate:
    vm.skip found (no skips allowed, conditional or otherwise): ./test/src/lib/deploy/LibDecimalFloatDeployTaggedConstants.t.sol:24.
    That vm.skip(true) is present at the base commit f724824, which this PR
    does not modify.
  • rainix-sol (static, test) — also failing on main: the last full
    push-triggered run on main, at 03edf4f7, records rainix-sol and
    rainix-rs-static as failure before this branch existed.

Passing on this PR: copy-artifacts, rainix-sol / legal, rs-test
(ubuntu + macos), rs-wasm.

Flagging rather than fixing — the vm.skip gate failure is a separate defect
from rainlanguage/rainix#344 and is not this PR's to resolve.

🤖 Generated with Claude Code

@thedavidmeisterthedavidmeister changed the title ci: drop snapshot-generate-cmd from package-release [BLOCKED on rainix#343 — do not merge]ci: drop snapshot-generate-cmd from package-releaseAug 21, 2026
@thedavidmeister
thedavidmeister marked this pull request as ready for review August 21, 2026 18:43
@thedavidmeister

Copy link
Copy Markdown
ContributorAuthor

Out of draft

rainlanguage/rainix#343 merged 2026-08-21T07:33:34Z, so the block this was
parked behind is gone and the reasoning in the body has been updated. Retitled
from the [BLOCKED ... do not merge] form.

The change is now required, not merely tidy: snapshot-generate-cmd has
zero occurrences in rainix-tag-release.yaml at rainix main, and a caller
that passes an undeclared input to a reusable workflow errors before the job
starts. While this line is here, package-release.yaml cannot run at all — so
a sol-v* tag would not reach the release job.

The checks shown are from the last push and are red for causes elsewhere:
rainix-sol / static and rs-static on the vm.skip gate (#3), and
rainix-sol / test on DecimalFloat not being deployed on any chain, which no
PR can fix.

@thedavidmeister
thedavidmeister merged commit 633eef2 into mainAug 21, 2026
6 of 9 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@thedavidmeister