Modernize rain.cli: rainix bump, drop submodule, DCL + REUSE, rainix reusables, Cachix publish#19
Conversation
Brings in everything since 2026-05-13, notably the rainix-sol / copy-artifacts / manual-sol-artifacts reusables and the new build-meta.sh hook. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review WalkthroughThis PR modernizes the project's CI/CD infrastructure, simplifies the Nix build configuration, updates dependencies, and establishes licensing compliance. The changes migrate GitHub Actions workflows to rainix reusable templates, remove custom metadata handling from the flake, convert rain-metadata to a published crate, add DecentraLicense compliance metadata, and fix source code to support async dispatch. ChangesBuild and Licensing Modernization
🎯 3 (Moderate) | ⏱️ ~25 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
- Use rain-metadata 0.1.1 from crates.io (rain.cli's path dep was being fed by a fetchgit + buildPhase copy into ./lib/rain.metadata). - Bump tokio to 1.x — pinning 1.28.0 broke transitive tokio-stream 0.1.18 which needs Receiver::capacity / max_capacity added in tokio 1.41. - Await the now-async rain_metadata::cli::dispatch. - Drop unused `use clap::command;`. - flake.nix loses the fetchgit-of-rain.metadata + the buildPhase that staged it into lib/; buildRustPackage handles the rust build cleanly. - License: CAL-1.0 -> LicenseRef-DCL-1.0 via license-file = "LICENSE" with LICENSE -> LICENSES/LicenseRef-DCL-1.0.txt symlink. REUSE.toml covers tracked files in bulk; `reuse lint` passes. - gitignore the git-hooks.nix-generated .pre-commit-config.yaml. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- rs-test / rs-static / legal / package-release: thin wrappers over the rainix reusables (rainix-rs-test, rainix-rs-static, rainix-sol-legal, rainix-autopublish). package-release passes crate=rain_cli and level=alpha to keep the existing alpha pre-release cadence. - nix-build: builds `.#rain` with cachix-action wired to the rainlanguage cache so the published derivation lands there and downstream consumers (e.g. raindex's build-meta.sh nix-shelling github:rainlanguage/rain.cli) hit the cache instead of recompiling. - Drop the legacy DeterminateSystems-based test-build.yaml and the bespoke manual-rs-release.yml. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The modernized rs-static reusable runs `pre-commit run --all-files` which the legacy CI never did, so the bundled prettier hook now catches README.md's pre-existing line-wrap + missing final newline. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Summary
End-to-end modernization of rain.cli, in three commits:
a64ce65Bump rainix to latest (998bd91d->ae2b77d2) — pulls in the reusables, slim shells, and the newbuild-meta.shhook.a64fb64Drop rain.metadata submodule; switch to published crate; DCL + REUSE:rain-metadata0.1.1 from crates.io (was apathdep fed by afetchgit+buildPhasecopy into./lib/rain.metadata).tokio1.x (pinning 1.28.0 broke transitivetokio-stream0.1.18, which needsReceiver::capacity/max_capacityadded in 1.41).awaitthe now-asyncrain_metadata::cli::dispatch.buildRustPackagehandles the rust build cleanly.inheritcleanup. Drop unusedself.CAL-1.0->LicenseRef-DCL-1.0vialicense-file = "LICENSE"withLICENSE->LICENSES/LicenseRef-DCL-1.0.txtsymlink;REUSE.tomlcovers tracked files;reuse lintpasses (11/11)..pre-commit-config.yaml.2c88098Modernize CI: rainix reusables + Cachix-publish nix-build:rs-test/rs-static/legal/package-release: thin wrappers over the rainix reusables (rainix-rs-test,rainix-rs-static,rainix-sol-legal,rainix-autopublish).package-releasepassescrate=rain_cli+level=alpha.nix-build: builds.#rainand wirescachix-actionto push to therainlanguagecache, so downstreamnix shell github:rainlanguage/rain.clihits cache instead of recompiling.test-build.yaml+manual-rs-release.yml.Test plan
cachix.org/rainlanguageand a downstreamnix shell github:rainlanguage/rain.cliresolves from cache.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Chores