ADR-001 — Two flakes, one direction of dependency
Status: Accepted
Context
The OS needs a stable, project-owned core and a mutable, user-owned package
layer. Mixing them in a single flake forces the core to know about every
package and makes glix write into the same surface a distro maintainer
owns.
Decision
Ship a glixos-core flake (project-owned) and a separate user-packages
flake (user-owned, generated by glix init). The user flake imports the
core flake; the core flake never imports the user flake.
Consequences
- glix only writes to the user flake. Core updates flow through
nix flake update glixos-core(orglix update glixos-core). - Distro upgrades are atomic and reversible via the user flake's
flake.lock. - Slight extra friction at install time (two repos in play), accepted.