Skip to content

docs: correct the build commands, CI description and release model - #2

Merged
thedavidmeister merged 1 commit into
mainfrom
2026-07-25-docs-accuracy-post-split
Jul 25, 2026
Merged

docs: correct the build commands, CI description and release model#2
thedavidmeister merged 1 commit into
mainfrom
2026-07-25-docs-accuracy-post-split

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

Second pass over the genesis split (rainlanguage/rain.factory#46), after #1. Every prose claim in README.md and CLAUDE.md was checked against what this repo and the rainix reusables it calls actually contain. Docs only — no source, config or CI behaviour changes (those are in a separate PR).

What was false

CLAUDE.md — the entire "Build & Test Commands" block named commands that do not exist. It told readers to run nix develop -c rainix-sol-test, rainix-sol-static, rainix-sol-legal and rainix-sol-prelude. rainix defines no such tasks: at the rev this repo's flake.lock pins (f22d4dc) sol-tasks = [ rainix-sol-artifacts ], and on rainix main it is [ rainix-sol-artifacts, rainix-sol-single-contract ]. The shell puts forge, slither and reuse on PATH directly, which is what CI invokes. Verified in this repo: nix develop .#sol-shell -c which forge slither reuse resolves all three.

Replaced with the commands CI actually runs, plus the forge soldeer install step (dependencies/ is gitignored, so a fresh clone cannot build without it) and the pin-regeneration command.

README.md — "Tagging runs rainix-tag-release, which deploys the clone-factory suite". It does not, and deliberately: rainix-tag-release "does not broadcast; it ATTESTS that the broadcast already landed", and this repo's own package-release.yaml dropped deploy-suites in 685bb2b ("deploy is manual now"). The deploy is a workflow_dispatch of manual-sol-artifacts.yaml, run before the tag. The README now says so, and says which order.

README.md — "the generated DEPLOY_TAG". There is no DEPLOY_TAG anywhere in this repo (BuildPointers.sol has a deployTag() helper, but generates no such constant — that is st0x.deploy's shape). Replaced with what actually moves in lockstep with [package].version: the frozen src/generated/<tag>/ snapshot.

What was added

  • CLAUDE.md "Releases and versioning" — the deploy-repo lifecycle was documented nowhere, and it is the repo's defining rule: [package].version is the last released version, a normal PR must not bump it, the tag moves it, and src/generated/<tag>/ is append-only. Without this an agent working here treats it like a library repo and bumps the version on merge, which is exactly the drift #46 split the repo to remove.
  • CLAUDE.md "CI" — the old two-line description named the three jobs but nothing they do. Now lists the actual gates in each (slither, forge fmt --check, rainix-sol-single-contract, no-ignored-tests, no-submodules, no-custom-natspec, frozen-snapshots-append-only, reuse lint), and notes that the other two workflows never fire on push.

Verified accurate, left alone

script/Deploy.sol's five networks (LibRainDeploy.supportedNetworks() in rain-deploy 0.1.3 returns exactly Arbitrum One, Base, Base Sepolia, Flare, Polygon); the pragma convention claim (=0.8.25 for concrete/script/test, ^0.8.25 for lib/generated — matches every file); the dependency list; the architecture section's file-by-file description; the ICloneableV2 / ICloneableFactoryV3 references (both exist in the rain-factory Soldeer dep and are imported).

Verification

nix develop github:rainlanguage/rainix/53e96a7d0a97d7c7c75c3b2412521324776fdac6#sol-shell -c bash -c 'forge soldeer install && forge build && forge test' — build clean, 15/20 tests pass; the 5 failures are LibCloneFactoryDeployProdTest fork tests with no local *_RPC_URL env. forge fmt --check passes, reuse lint passes (28/28 files), deno fmt (the repo's pre-commit md formatter) applied.

Known CI red, not caused by this PR: rainix-sol/test fails on testProdDeployArbitrum with vm.createSelectFork ... lb.drpc.live ... error code -32001: You've reached the usage limit for your current plan. The org secret RPC_URL_ARBITRUM_FORK points at an exhausted drpc endpoint; it needs a human RPC swap and is red on other org repos today. 19/20 pass. static and legal are green.

The rainix-sol-{test,static,legal,prelude} tasks CLAUDE.md told readers to run
do not exist in rainix, at the pinned flake rev or on main; the sol shell
exposes forge, slither and reuse directly. Document the real commands, the real
gates each CI job runs, and the deploy-repo release model (version tracks the
last released snapshot, tag triggers the release, deploy is a separate manual
dispatch). The README claimed the tag release deploys the clone-factory suite
and pins a generated DEPLOY_TAG; it broadcasts nothing and there is no
DEPLOY_TAG in this repo.
@thedavidmeister thedavidmeister self-assigned this Jul 25, 2026
@coderabbitai

coderabbitai Bot commented Jul 25, 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: 27 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 02dbf649-80f1-462d-b150-311f1b1e6fb4

📥 Commits

Reviewing files that changed from the base of the PR and between 2045df6 and 4ab44b0.

📒 Files selected for processing (2)
  • CLAUDE.md
  • README.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-07-25-docs-accuracy-post-split

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
Contributor Author

Reviewed 4ab44b0: approve

Docs-only, correcting claims the genesis split carried over from rain.factory that were false in THIS repo:

  • CLAUDE.md's entire Build & Test Commands block named four commands that do not exist — rainix defines no rainix-sol-test/-static/-legal/-prelude (at the rev flake.lock pins, sol-tasks is just rainix-sol-artifacts; on rainix main it adds rainix-sol-single-contract). Replaced with what CI actually runs, verified by resolving forge/slither/reuse in .#sol-shell, plus the forge soldeer install a fresh clone needs.
  • README claimed tagging 'deploys the clone-factory suite'. It does not and deliberately cannot: rainix-tag-release attests and never broadcasts, and this repo's own 685bb2b dropped deploy-suites. Deploy is a workflow_dispatch run BEFORE the tag.
  • README referenced a generated DEPLOY_TAG constant — that is st0x.deploy's shape; here the release artifact is the src/generated// snapshot.
  • Adds the releases/versioning rule ([package].version is the LAST released version; a normal PR must not bump it), which was documented nowhere and is exactly the drift #46 split this repo to remove.

Red check verified and NOT caused by this diff (it touches only two markdown files): rainix-sol/test fails on the single test testProdDeployArbitrum with 'lb.drpc.live … error code -32001: You've reached the usage limit for your current plan', 19/20 passing — the exhausted drpc quota on RPC_URL_ARBITRUM_FORK that is blocking several repos today and needs a human RPC swap. Not rerun, not chased. static + legal green; no unresolved threads.

@thedavidmeister
thedavidmeister merged commit d5c62f9 into main Jul 25, 2026
3 of 4 checks passed
Sign up for free to 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