Task: Compose release spec + ADR amending 0004 #42

Closed
opened 2026-09-02 18:31:25 +00:00 by xavierk · 1 comment
Owner

Parent map: Fenris deb + rpm release plan

Question

Assemble the destination artifacts from all closed tickets: the release spec (compat matrix, channel, toolchain, signing, CI, upgrade semantics, migration) and the ADR amending ADR 0004. Commit on a review branch.

Parent map: [Fenris deb + rpm release plan](https://git.bongbetic.com/xavierk/Fenris/issues/33) ## Question Assemble the destination artifacts from all closed tickets: the release spec (compat matrix, channel, toolchain, signing, CI, upgrade semantics, migration) and the ADR amending ADR 0004. Commit on a review branch.
xavierk added this to the Wayfinder: Fenris deb + rpm release plan milestone 2026-09-02 18:31:25 +00:00
xavierk added the wayfinder:task label 2026-09-02 18:31:25 +00:00
xavierk added a new dependency 2026-09-02 18:34:09 +00:00
xavierk added a new dependency 2026-09-02 18:34:10 +00:00
xavierk added a new dependency 2026-09-02 18:34:10 +00:00
xavierk added a new dependency 2026-09-02 18:34:11 +00:00
xavierk added a new dependency 2026-09-02 19:46:26 +00:00
xavierk self-assigned this 2026-09-02 20:11:09 +00:00
Author
Owner

Resolution

Destination artifacts assembled and committed on review branch task/release-spec-adr (commit b005049):

Release spec — docs/spec/release-packaging.md (105 lines, decision-complete, normative for the follow-up execution effort):

  1. Compat matrix — Debian 12 / Ubuntu 22.04 / Ubuntu 24.04 / Fedora 40+, x86_64, vendored venv everywhere, depends exactly python3 (>= 3.10), smartmontools, systemd.
  2. Channel — Gitea 1.27.1 registry, single channel, deb → codename pools (bookworm/jammy/noble), rpm → group fenris; consumer setup with pinned instance-key fingerprint (apt) and Fenris-owned fenris.repo (dnf; Gitea auto-.repo never in docs).
  3. Toolchain — nfpm, single packaging/nfpm.yaml, staging-script file lists, make package, version <pyproject>-1 + revision bump.
  4. Signing — rpm payload signed (required), deb unsigned, clearsigned SHA256SUMS, RSA-3072 dedicated key, import→sign→delete per release, rotation outline.
  5. Release mechanics — Release = tag + packages + release entry + SHA256SUMS; bare tags forbidden; on-demand cadence, plain semver, rollback = snapshot restore + old release, downgrade unsupported.
  6. Package layout/ownership table + maintainer-script contracts (preinst abort on make-install remnants, dormant postinst, upgrade snapshot+migration, prerm sanctioned-disable with upgrade guards, removal mapping).
  7. Initial configuration — device selector hand-edited by root; no new verb on fenris-monitor.
  8. Migration runbook — remove-then-install, no-move continuity, reset-to-dormant, mutual exclusion.

ADR 0007 — docs/adr/0007-package-delivery-amends-0004.md: amends ADR 0004 on delivery/ownership only (sections 1–10 per the #40 outline); runtime semantics inherited verbatim. ADR 0004 status line now points at the amendment.

Research assets — the three map research docs (toolchain #34, gitea-registry #35, obs #36) merged onto the branch at docs/research/ so the spec's citations resolve in one review.

Open item from #40 resolved: the conffile initial-write mechanism — nothing writes the device selector in any delivery; make install never wrote fenris.conf either, hand-editing (root) has been the model since ADR 0003. Spec §8 records this; no change to the polkit surface.

Also landed: CONTEXT.md Release + Rollback glossary terms (from #43, previously uncommitted) ride this commit.

Map is now decision-complete — no open tickets remain.

## Resolution Destination artifacts assembled and committed on review branch `task/release-spec-adr` (commit b005049): **Release spec** — `docs/spec/release-packaging.md` (105 lines, decision-complete, normative for the follow-up execution effort): 1. Compat matrix — Debian 12 / Ubuntu 22.04 / Ubuntu 24.04 / Fedora 40+, x86_64, vendored venv everywhere, depends exactly `python3 (>= 3.10)`, `smartmontools`, `systemd`. 2. Channel — Gitea 1.27.1 registry, single channel, deb → codename pools (bookworm/jammy/noble), rpm → group `fenris`; consumer setup with pinned instance-key fingerprint (apt) and Fenris-owned `fenris.repo` (dnf; Gitea auto-`.repo` never in docs). 3. Toolchain — nfpm, single `packaging/nfpm.yaml`, staging-script file lists, `make package`, version `<pyproject>-1` + revision bump. 4. Signing — rpm payload signed (required), deb unsigned, clearsigned SHA256SUMS, RSA-3072 dedicated key, import→sign→delete per release, rotation outline. 5. Release mechanics — Release = tag + packages + release entry + SHA256SUMS; bare tags forbidden; on-demand cadence, plain semver, rollback = snapshot restore + old release, downgrade unsupported. 6. Package layout/ownership table + maintainer-script contracts (preinst abort on make-install remnants, dormant postinst, upgrade snapshot+migration, prerm sanctioned-disable with upgrade guards, removal mapping). 7. Initial configuration — device selector hand-edited by root; no new verb on `fenris-monitor`. 8. Migration runbook — remove-then-install, no-move continuity, reset-to-dormant, mutual exclusion. **ADR 0007** — `docs/adr/0007-package-delivery-amends-0004.md`: amends ADR 0004 on delivery/ownership only (sections 1–10 per the #40 outline); runtime semantics inherited verbatim. ADR 0004 status line now points at the amendment. **Research assets** — the three map research docs (toolchain #34, gitea-registry #35, obs #36) merged onto the branch at `docs/research/` so the spec's citations resolve in one review. **Open item from #40 resolved:** the conffile initial-write mechanism — nothing writes the device selector in any delivery; `make install` never wrote `fenris.conf` either, hand-editing (root) has been the model since ADR 0003. Spec §8 records this; no change to the polkit surface. **Also landed:** CONTEXT.md Release + Rollback glossary terms (from #43, previously uncommitted) ride this commit. Map is now decision-complete — no open tickets remain.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: xavierk/Fenris#42