Skip to content

Absorb rain-verify-interface back into rain.verify (rainix#296) #13

Description

@thedavidmeister

Part of the org-wide repo refactor tracked in rainlanguage/rainix#296 — phase 2, interface absorption.

What

Fold this interface repo back into rain.verify, and retire it.

Why

With deployment moving out to .deploy repos and everything resolved through Soldeer rather than git submodules, a separate interface repo stops earning its keep. It costs every consumer that needs both an extra pin and an extra set of versioned import prefixes to keep in step, and it lengthens every republish cascade.

rain.verify's own dependency on this package disappears outright on absorption.

Note this repo separately carries the startup_failure misconfiguration described in rainix#296 — its Package Release run never creates a job because it declares no caller permissions: block while the repo default is read. That is worth fixing regardless of whether this absorption goes ahead, since it currently cannot publish at all.

Compile cost of a fatter package is close to zero: Foundry compiles only what src/test/script transitively import, so unreached source is never parsed. This was confirmed during the rain-math-binary 0.1.3 campaign on 2026-08-13, where rain.verify bumped green while its siblings failed precisely because it never reaches the offending file.

Cost, stated honestly

Under the versioned-import convention, absorption couples interface-only consumers to the implementation's release cadence — they re-pin and rewrite import prefixes on every implementation release, not just on interface changes. Interfaces are stable and implementations churn, so this is a real cost borne by:

  • rain.vats
  • rain.vats.flare

Ordering — hard prerequisite, not a preference

Do not start this until rain.verify has completed its deploy/library split and its release lane publishes cleanly.

Today this interface repo is protecting its consumers from the core repo's release problems. Folding an interface into a core whose lane is wedged propagates the failure instead of escaping it.

Done when

  • rain.verify has completed phase 1 and its lane publishes cleanly
  • Interfaces moved into rain.verify, imports rewritten
  • Interface-only consumers migrated to the rain.verify package
  • rain.verify publishes a revision containing the interfaces
  • This repo archived

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