Slim to the library half: the deploy half moves to rainlang.deploy (#552 step 2) - #576
Conversation
Second step of the library / deploy split (#552, rainix#296), on top of the BaseRainlang* abstracts. The concretes, their generated tables and deploy records, LibInterpreterDeploy, the released-suites libs, the deploy scripts and tests, the Rust crates and the deploy workflows leave this repo; rainlang.deploy carries them over this package. The 0_1_9 frozen record is a library-tagged pin and is deleted, not relocated: the deploy repo freezes its own first release. script/Build.sol now generates only the reference extern's pointers; BuildAuthoringMeta and the prelude build only its meta. The concretes' logic tests bind test/concrete/Test*.sol, the BaseRainlang* built from current source. package-release.yaml is rainix-autopublish on push to main; this removal is breaking, so next-v0.2.0 ships it as rainlang 0.2.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QyCCzi9WZPhuXcU1hwr2bq
|
Important Review skippedToo many files! This PR contains 108 files, which is 8 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (11)
📒 Files selected for processing (108)
You can disable this status message by setting the 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 |
…brary # Conflicts: # crates/bindings/abi/Rainlang.json # crates/test_fixtures/abi/Rainlang.json # crates/test_fixtures/abi/RainlangExpressionDeployer.json # crates/test_fixtures/abi/RainlangInterpreter.json
rainix's frozen-snapshots-append-only gate rejects deleting a tag dir. Nothing in the library reads src/generated/0_1_9/ any more; it stays as the record of the last release cut while this repo carried the deploy half. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QyCCzi9WZPhuXcU1hwr2bq
The BaseRainlang* contracts are the library's product: their binding hooks are implemented by rainlang.deploy's concretes and by the test concretes, neither of which slither's src-only build sees, so every base is a leaf with unimplemented functions by design. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QyCCzi9WZPhuXcU1hwr2bq
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QyCCzi9WZPhuXcU1hwr2bq
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
Second step of the library / deploy split (#552, rainix#296), on top of #575: the deploy half leaves this repo, which becomes the pure library the
rainlangSoldeer package publishes on merge. The deploy half now lives in rainlang.deploy, seeded from this tree and consuming this package.Removed
src/concrete/{Rainlang,RainlangParser,RainlangStore,RainlangInterpreter,RainlangExpressionDeployer}.sol,src/abstract/{RainlangDeploySuites,RainDeploySuitesBase}.sol,src/lib/deploy/LibInterpreterDeploy.sol,src/lib/Lib*Released.sol,src/lib/LibReleasedSuites.sol.src/generated/candidate/and the four concretes'*Pointers.sol.src/generated/0_1_9/stays: it is the frozen record of the last release this repo cut as a hybrid, nothing here reads it any more, and rainix'sfrozen-snapshots-append-onlygate forbids deleting a tag dir. The deploy repo freezes its own first release, a different artifact.script/{Deploy,CopyArtifacts}.sol,script/lib/,test/src/script/, the deploy-only tests (*.pointers,*.meta,describedByMetaV1,deployCheck,extrospect,Rainlang.t,BuildHarness, the deploy chain / snapshot / suites tests).crates/,Cargo.*,.cargo/, the Rust workflows andcrates-release.yaml;manual-sol-artifacts.yaml; the deployer and standard-ops meta undermeta/.foundry.toml:[external.package],[rpc_endpoints],[etherscan], the crates anddeployments/fs permissions.Kept / changed
script/Build.solnow generates onlysrc/generated/RainlangReferenceExternPointers.sol;script/BuildAuthoringMeta.soland therainlang-preludetask build only the reference extern's meta.RainlangReferenceExternis a reference implementation, never a deploy candidate, so it stays with its tests; its bytecode tests move totest/src/concrete/RainlangReferenceExtern.bytecode.t.sol.unsafeParse, expression deployerparse2/parsePragma1, ERC165) runs againsttest/concrete/Test*.sol, theBaseRainlang*built from current source.package-release.yamlisrainix-autopublishon push to main. This removal is breaking, sonext-v0.2.0is pushed at merge and the package ships asrainlang0.2.0; consumers stay pinned to 0.1.x until they move.CLAUDE.mdrewritten for the library shape;README.mddrops the Rust docs line;REUSE.toml,.soldeerignore,slither.config.jsonlose their deploy / crates entries./teststays shipped in the package:rainlang.deployand the word repos extendtest/abstract/OpTest.solthrough it.QA
ARBITRUM_RPC_URL, the same set that fails locally onmain. The store, interpreter, parser and expression deployer logic tests are the discriminating cases for the test concretes: they now bindTest*and would not compile against anything else in this repo.forge script ./script/Build.solregeneratesRainlangReferenceExternPointers.solbyte-identically.BaseRainlang*equivalence is pinned by the deploy repo's*.pointerstests, which now live there.🤖 Generated with Claude Code
https://claude.ai/code/session_01QyCCzi9WZPhuXcU1hwr2bq