zenops 0.18.0

Declarative system configuration management for shell config and dotfiles.
Documentation
"""Cross-platform test matrix.

Each tuple is ``(distro, shell, package_manager)``. Linux only — macOS is
out of scope for now. The package_manager slot is implied by ``distro``
today; once zenops grows native support for more distros, the matrix
already discriminates.

Today only Fedora 42 is in zenops' supported-host matrix — `Os::current()`
hard-errors on Ubuntu and Arch. The Ubuntu / Arch Dockerfiles stay in
the repo as scaffolding for when those distros land; their matrix rows
return as soon as the host type recognizes them.
"""

MATRIX = [
    ("fedora",    "bash", "dnf"),
    ("fedora",    "zsh",  "dnf"),
    ("ubuntu",    "bash", "apt"),
    ("ubuntu",    "zsh",  "apt"),
    ("archlinux", "bash", "pacman"),
    ("archlinux", "zsh",  "pacman"),
]

DISTROS = sorted({d for d, _, _ in MATRIX})
SHELLS = sorted({s for _, s, _ in MATRIX})