Watch
1
0
Fork
You've already forked SouveraineOS
0

distribution: gate producers by declared artifacts

This commit is contained in:
Fimeg 2026-08-13 13:53:30 -04:00
commit a3ff22531f
3 changed files with 60 additions and 4 deletions

View file

@ -19,8 +19,10 @@ its release lands. Those decisions live here, once.
- The signed `edge` archive is one multi-producer archive. Its implementation
currently lives in `souveraine/packaging/arch/publish-edge.sh`; this manifest
names it so consumers do not grow their own publisher.
- `../tools/validate-distribution.py` checks graph integrity without requiring
a runner, a device, or a secret.
- `../tools/validate-distribution.py` checks graph integrity and can verify a
producer's complete emitted package/architecture set without requiring a
device or a signing secret. A producer must fail rather than publish a
package absent from this graph.
- `.gitea/workflows/distribution.yml` makes that check a gate in the OS repo.
The manifest is deliberately honest about maturity. A profile marked `blocked`

View file

@ -46,11 +46,12 @@ souveraine-q6voiced = { producer = "pixel3arch", architectures = ["aarch64"], st
hexagonrpc-blueline = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
tqftpserv-blueline = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
blueline-edge-sense = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
souveraine-stevia = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
souveraine-squeekboard = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
souveraine-stt = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
blueline-camera = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
blueline-usb-gadget = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
blueline-fingerprintd = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
blueline-boot-promote = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
hyprgrass = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
smoo = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
usb-signaller = { producer = "pixel3arch", architectures = ["aarch64"], state = "managed" }
@ -67,7 +68,7 @@ blockers = ["generic ARM provisioning has no completed installer"]
[profiles.blueline]
status = "blocked"
architectures = ["aarch64"]
packages = ["souveraine", "upower-souveraine", "souveraine-updater", "souveraine-viewtop", "linux-blueline", "souveraine-callaudio", "souveraine-callaudiod", "souveraine-ucm-blueline", "souveraine-q6voiced", "hexagonrpc-blueline", "tqftpserv-blueline", "blueline-edge-sense", "souveraine-stevia", "souveraine-squeekboard", "souveraine-stt", "blueline-camera", "blueline-usb-gadget", "hyprgrass", "smoo", "usb-signaller"]
packages = ["souveraine", "upower-souveraine", "souveraine-updater", "souveraine-viewtop", "linux-blueline", "souveraine-callaudio", "souveraine-callaudiod", "souveraine-ucm-blueline", "souveraine-q6voiced", "hexagonrpc-blueline", "tqftpserv-blueline", "blueline-edge-sense", "souveraine-squeekboard", "souveraine-stt", "blueline-camera", "blueline-usb-gadget", "blueline-fingerprintd", "blueline-boot-promote", "hyprgrass", "smoo", "usb-signaller"]
blockers = ["linux-blueline is not published to the shared archive", "rootfs overlay content still needs package ownership"]
[profiles.x86-laptop]