ADR 0020: Ubuntu lives in its own repository
Status: accepted (2026-10-18)
Context
ADR 0004 requires a vendor's official bootc base, and ADR 0014 allows one exception: an organization-owned base
with a named owner and a declared support tier. Ubuntu 26.04 is that exception, because Canonical publishes
container images, not an installable and updatable operating system, so Project DeskOS builds and maintains the
base in deskosproject/deskos-ubuntu-base. Keeping it in Core cost more than a platform normally does: a base
without curl produced the downloads fact (ADR 0019), no /etc/dconf/profile/user produced
gnome.keepsVendorDefaults and the deskos-gnome split (ADR 0016), and Flatpak 1.16.6 a failure path.
Decision
- The Ubuntu workstation lives in
deskosproject/deskos-ubuntu: itsPlatformresource, workstations, profiles and assets, example, vendored test harness, checks and publishing. Its base keeps a repository of its own, renameddeskosproject/deskos-ubuntu-bootc. - Core keeps the language and the backend.
deb, the apt rendering and theAptRepositorykind (ADR 0015) stay: Core can still express a Debian-family platform, and an organization can declare one from its own root. What leaves is an implementation, not a capability. - Core stops building, booting and publishing Ubuntu. The VMs, the publish leg, the goldens, the example and
the platform resource move;
docs/keeps the platform table's row only to say where it went. - Core says only what it still verifies. It composes and renders a Debian-family workstation, which is tested here, and does not claim to build or boot one; the validation matrix states exactly that.
- The claim lives where the work is.
deskos-ubunturuns its full path (build, boot, session check, first-boot check) on its own pull requests and when it adopts a Core release, and a scheduled run against Core'smainopens an issue here when Core breaks it. Core keeps the APT unit tests and a synthetic Debian golden. - The platform's facts travel with it.
ubuntu-2604.yamldeclares what its base does and does not do, with the measurements, and moves unchanged.
Consequences
- Ubuntu's cadence stops holding back Core's, and Core's release stops carrying experimental platform media.
- Core becomes slightly less exercised in one direction: the apt path keeps its unit tests and synthetic golden
but loses a machine that boots it before merge, which is why the scheduled run against
mainexists. - Ubuntu's base is no longer pinned by a Core release: a new point release is a pull request in
deskos-ubuntu. - The published images move to new names: the reference a machine updates from is a deliberate change on that machine, and old repositories keep the digests published in them.
- The signature identity changes with the repository: images published by
deskos-ubuntuare signed by its workflow, so anything verifying againstdeskos-core's identity has to be told the new one. - "Experimental" becomes visible in the right place: the repository that owns the base says so on its front page, rather than Core's README carrying a caveat about a platform most users never build.