Decide a stability discipline for the public library surface consumed by downstream projects #296
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
The workspace's library crates have at least one real external consumer: the first downstream research project consumes the engine as a cargo git dependency (surveyed in #295). The shell-boundary work (#295) deliberately enlarges the public library surface — the member-run recipe, its decomposed building blocks, and a public default
MemberRunnerimplementation become documented library API that downstream World programs are invited to build against.Problem
The project's working discipline to date is "behaviour-preserving refactor, everything still movable" — crate rosters, module homes, and signatures have been reshaped freely cycle over cycle (the C28 stratification alone relocated whole rosters twice). That freedom and an invited external consumer are in tension, and the design ledger currently addresses it nowhere: there is no stated compatibility contract for the public library surface (what may break per commit, what a downstream pin should look like, whether/when versions are bumped, what — if anything — is stable API vs internal seam).
Needed: a deliberate, recorded decision on the stability discipline for the public library surface — even if the decision is "no stability promised before 1.0; downstream pins a commit" — so the expectation is explicit rather than accidental.
refs #295