mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
A role states which package it needs; the registry owns every distribution mapping and every acquisition path. Declarations live in the repository-root meta/packages.yml when more than one consumer installs them, and in a role's own meta/packages.yml otherwise. schema.py owns the declaration shape, registry.py finds and indexes the declarations, plan.py turns a resolved spec into ordered module calls, and the package_install action plugin only executes them. Keeping the plan pure makes every acquisition path unit-testable without an Ansible connection: distribution repositories, the AUR with its unprivileged build user, COPR, PPA, an EPEL bootstrap package, the pacman multilib section and source builds. The data is guarded by lints: a package id and a concrete distribution package name each belong to exactly one declaration, a role installs only its own or shared ids, every id resolves for all five default distributions with an empty mapping justified by a nocheck, declarations read in ascending order, every plan builds and names only whitelisted modules, and an external test queries the real package indexes of all five distributions. This commit adds the mechanism and the shared collection; no consumer uses it yet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 lines
0 B
Python
0 lines
0 B
Python
The file is empty.