docs(installer): record Phase 0.3 — the bundle CI and where bundles live #85
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/installer-phase-0.3"
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?
Documentation half of installer Phase 0.3. Code PRs: RunicGateway/installer#3, RunicGateway/link#25, RunicGateway/servuo-plugins#9.
Phase 0 item 3 asked for three things — "Compose job (read both repos' latest releases → run the two gates → publish
bundle.json), the nightly cron, and the dispatch step appended to each component's release workflow." All three landed, and building them settled questions §7 had left open, so those sections are corrected rather than appended to.Status
Phase 0 is now all but complete. 0.2 is merged and released as
linkv1.1.0; 0.3 is in review; 0.4 (INSTALL.md) is the remaining item, and the shape it was waiting on has settled. Every prerequisite in another repo has landed, so what the installer will install is already released and composed — ahead of the binary that installs it.installer/PLAN.mdPhase 0 item 2 → merged, with the release it produced. Item 3 gains an "As built" subsection matching the ones items 1 and 2 already have, recording what was chosen rather than inherited:
--print-config(Phase 0.2) would answer authoritatively, but only for releases fromv1.1.0onward, and--bundle <tag>has to be able to recompose a bundle from an older pair. It also avoids executing a downloaded artifact and provisioning a throwaway config whose auth token would then be sitting in a CI log. A constant that has moved is a hard failure — treating "could not read" as "matches" is how a mismatched pair ships.SHA256SUMS—sha256sum -cpasses right over a file the sums file does not mention.§7.1 is corrected in two places.
The manifest shape now shows
link.assetsas a map keyed by platform. The singlesha256this section sketched could only ever have described one of the two binarieslinkpublishes, and the installer runs on both — this is the one place the design as written was simply wrong. Also addsschema/generatedand theservuoblock, and states thatschema,protocol, and the component release versions all move independently.It also gains a subsection naming where bundles are published: committed under
bundles/in the installer repo, reachable as anonymous raw URLs, with every bundle kept forever so--bundlestays reproducible and same-day bundles disambiguated as2026.08.04.2. Explicitly not one Gitea release per bundle — that repo's own releases are the installer binaries and/releases/latestreturns whichever release is newest regardless of kind, so interleaving would make "latest" intermittently resolve to a release carrying no installer binary.§7.2 records that the dispatch steps now exist (the servuo-plugins TODO is discharged), and that a failed dispatch is a warning rather than a failed release — which is what keeps write access on the installer repo out of the components' hard credential requirements.
§7.3 records that the releasable-commit rule must also exclude merge commits, whose subject is
Merge pull request '<the real subject>'. Without that, merging adocs:branch whose title happens to quote afix:would re-dispatch a correctly-declining release workflow every night — the exact failure mode this section exists to prevent.AI-assisted contribution
Co-Authored-Bytrailer.