Skip to content

Land the rain.math.float.deploy split: fix npm publish, green CI, library-strip, Soldeer tag #1

Description

@thedavidmeister

Tracking issue for landing the rain.math.float → rain.math.float.deploy split. This repo was created and pushed on 2026-08-20; several steps are done, some are broken, some remain. Any session can pick this up from here.

Done (verified)

  • Repo created + initial push. Local forge build (97 files) and cargo check (float + float-wasm) were green before push.
  • rain-math-float v0.1.11 published to crates.io by this repo's autopublish (crate-npm-release.yaml → rainix-autopublish, which runs on every push to main). This is the intended end state of the split (the crate now publishes from the deploy half), but it fired on the initial push rather than a deliberate release.
  • Autopublish bumped versions and pushed a Package Release npm-v0.0.14 commit + tags rain-math-float-v0.1.11 and npm-v0.0.14 to main.
  • Staged source: /home/gildlab/artifacts/mathfloat-deploy-staged/ (pristine); work clone /home/gildlab/code/mathfloat-deploy-land.

Broken / in progress

  • npm publish FAILED. @rainlanguage/float did NOT publish (still 0.0.0-alpha.40); the Publish to NPM step in the autopublish run errored while Publish to crates.io succeeded. Exact error not yet isolated from the CI log — diagnose the NPM step (candidates: NPM_TOKEN missing/insufficient via org secrets: inherit, a version/dist-tag conflict, or package config). The npm-v0.0.14 tag was created despite the failure.
  • rs-static FAILED on a vm.skip(true) in test/src/lib/deploy/LibDecimalFloatDeployTaggedConstants.t.sol (org no-skips gate rejects it textually). Fixed on branch fix-vmskip-tagged-constants (assertion accepts OK or SKIP, no skip) — NOT merged, because merging re-triggers autopublish.

Remaining

  1. Fix the npm publish (above), get rs-static + all CI green.
  2. Merge fix-vmskip-tagged-constants (note: every merge to main re-bumps + republishes the crate — this is the design, expect a new rain-math-float version per merge).
  3. Library-strip on rain.math.float — remove the deploy surface (concrete, src/generated, deploy scripts/tests) AND the Rust/npm surface (crates/**, Cargo.*, package*.json, test_js/**, scripts/*.js, CopyArtifacts bridge, copy-artifacts.yaml, rainix-rs-*.yaml, crate-npm-release), leaving pure Solidity that publishes only the rain-math-float Soldeer package. This STOPS the library from also publishing the rain-math-float crate/npm (right now BOTH repos publish it). Plan is in the handoffs + rain.math.float#262. Must not land until this deploy repo has published its Soldeer package (below) so consumers can repoint. Keep the Hard-Case-C etch helper for the transcendental tests.
  4. Tag sol-v* on this repo to publish rain-math-float-deploy to Soldeer (package-release.yaml → rainix-tag-release; regenerates the pointers snapshot, verifies live chains against the pins, publishes). The deploy pins already reproduce the live Zoltu deployment (optimizer_runs = 1_000_000), so no new on-chain broadcast is required.

Hazards / notes

  • Autopublish on every merge to main publishes the crate/npm — work via PRs, and expect a crate version bump per merge.
  • Do NOT change optimizer_runs = 1_000_000 — it reproduces the live pins.
  • Naming was ruled keep-as-is (rain-math-float crate / @rainlanguage/float npm) to avoid a consumer break.
  • Source ruling + plan: rain.math.float#262 and its comments. Handoffs: /home/gildlab/code/amt-datacontract-2026-08-19/handoff-mathfloat-*.md.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions