Supersedes 0025. The
npm.figentra.com registry
is kept until the migration in decision 3 is done.Context
0025 (Accepted) published packages to a private registry. The owner’s registry answers PK1–PK7 (mem L455–473, L396, 2026-10-20) moved the free packages to npmjs with provenance and the Pro packages to Keygen Cloud. Railway is no longer used (ops L31), and the Railway registry trial was dropped.Decision
- Free packages (PK1).
@stackra/*publishes openly to npmjs with provenance, from CI with the bot token through OIDC. The changesetsaccesssetting ispublic. - Pro packages (PK2 and PK3). Keygen Cloud serves the
@stackra-propackages and images. The Cloudflare Workernpm-registryis retired after@figentra/cliand vellum have migrated.npm.figentra.comstays up until then. - Migration. Delete
npm.figentra.comonly after Academorix and the release job have switched, and after the tarballs have migrated. - Release checks (PK4). A full verify,
publint,attw, and a packed-tarball smoke test in Node, Vite and Metro. A changeset is required. The owner merges the version pull request. - Versions (PK5 and PK7). One fixed version for all
@stackra/*. Pro follows the same major and minor, and ships within a week. - Deprecation (PK6). A deprecation lasts one minor before 1.0 and one major after. LTS starts at the first on-prem contract.
- Canaries (DX7). Canary snapshot releases are published.
- Carried forward from 0025. Decision 3 (
distand the@stackra/sourcecondition) and decision 4 stay.
Consequences
- A free package is installable from npmjs with no account, and the provenance shows where it was built.
- Pro packages need a Keygen token, so their distribution follows the licence (ADR 0178).
Enforcement
planned — the release workflow publishes with provenance, andpublint and attw run in the release job.
Open questions
- The day
npm.figentra.comis switched off. The owner decides after the migration in decision 3.
Alternatives
- One private registry for everything: superseded; free packages go to npmjs.
- Verdaccio on Railway: dropped; Railway is gone (ops L31).
Supersedes and sources
Supersedes: 0025. Sources: owner answers PK1–PK7, DX7 (stackra-decisions-2026-10-19.md L455–473, L396, 2026-10-20); ops L31.
Contradiction C-08 is closed by this ADR. Contradiction C-37 is closed by decision 1.