Publish it to the registry
Materialize an exact release, publish it as a candidate, and follow it through review.
A package reaches people through the registry. Publishing is three separate steps with a human gate between them: publish a candidate, approve it, promote it.
Materialize the release
Before publishing, build the exact release into a directory and look at it:
yarn fruitful plugin release feed-packages/hacker-news --out /tmp/hn-releaseThe directory has three parts:
runtime/is what users' devices download: the manifest, the bundled transform, the surfaces.review/is what reviewers see: fixtures, expectations, evidence. It never ships to users.attestation.jsonbinds both by digest.
The command refuses a stale bundle or stale generated types, so run plugin generate --write and lexicon generate --write first if you changed anything.
Publish a candidate
Sign in if you have not:
yarn fruitful auth loginPublishing is a dry run until you pass --apply:
yarn fruitful registry publish-first-party --package com.ycombinator.news
yarn fruitful registry publish-first-party --package com.ycombinator.news --applyThis creates an exact candidate evaluation: the resolution digest, the runtime digest, and the review digest are all recorded. Nothing resolves to it yet.
Today the registry publishes the maintained first-party inventory in the repository, so a new package lands through a pull request to feed-packages/. Publishing from outside the repository is being built on the same commands.
Follow it through review
yarn fruitful registry status --package com.ycombinator.newsStatus is read-only and shows releases, evaluations, and which tag each resolves to. Approval and promotion are operator commands that name every digest they cover, and are dry runs until --apply --confirm-stage <stage>:
yarn fruitful registry approve --package com.ycombinator.news --evaluation <id> \
--resolution <digest> --runtime <digest> --review <digest>
yarn fruitful registry promote --package com.ycombinator.news --evaluation <id> \
--resolution <digest> --runtime <digest> --review <digest>Once promoted, Explore offers the feed and new installs resolve to that exact release. Existing installs keep the resolution they have until they update; a resolution never changes under a device.