Only what a capable agent would get wrong from this repo alone. Layout, dev shells, build/test commands and dependency lists are discoverable and deliberately absent (rainlanguage/rainix#298).
The deploy half of rain.math.float: the concrete DecimalFloat, its
generated deploy records and the deploy scripts + tests. The pure math
(LibDecimalFloat*, LibLogTable, the errors) is NOT here — it arrives as the
rain-math-float Soldeer package.
- Optimizer 1,000,000 runs, NOT the 100,000 sibling deploy repos use.
Deterministic (Zoltu) deploy: the address is a pure function of the creation
bytecode, so this, solc
=0.8.25,evm_version = "cancun", no CBOR metadata, and the pinnedrain-math-floatsources all move the pins if changed. - Pragma: concretes, scripts and tests pin
=0.8.25; shipped libs and generated files float^0.8.25. - All source files carry SPDX headers (LicenseRef-DCL-1.0).
- No skipped tests. Comments describe current behaviour only.
recursive_depsis off: every package an import resolves through is declared infoundry.toml, including ones reached only viarain-math-float.
src/generated/candidate/is the rolling record, rewritten byscript/Build.soland currency-checked by CI;src/lib/deploy/LibDecimalFloatDeploy.solaliases it and adds hand-written helpers.src/generated/<tag>/snapshots are frozen: a release only ADDS one. Never hand-edit generated files (src/generated/,src/lib/Lib*Released*.sol).[external.package].versionmoves only in a release cut, in lockstep with the frozensrc/generated/<tag>/snapshot; a normal PR never bumps it.DecimalFloat's constructor reverts unless the log tables are at their Zoltu address: tables deploy/build/broadcast FIRST, always.src/generated/LogTables.pointers.solis table BYTES (a pure function ofLibLogTable), not a deploy record — it stays at the generated root, never in a tag dir.
- The on-chain deploy is a human-dispatched
Manual sol artifactsrun, BEFORE tagging, never on merge:log-tablesthendecimal-float. - A manual
sol-v*tag is the sole Soldeer release trigger (rainix-tag-release); the Rust crate + npm wrapper publish on merge instead (crate-npm-release.yaml). See README.md.