1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""Cross-platform test matrix.
Each entry is a (distro, version, shell, package_manager, tier) row.
The tier says what a row is for, not how often it runs: `run.py`
defaults to the *gate* set, which is tiers 1 and 3.
`tier=1` rows are the supported set. `tier=2` rows are accepted by host
detection but not gated: run them locally with ``--tier all`` to
spot-check that an older or newer release still works. `tier=3` rows
test distros zenops *hasn't* manually wired into the supported set:
detection must not crash, file management and shell init must still
work, and missing install-hint entries are graceful no-ops. That's a
claim worth gating, so tier 3 runs alongside tier 1.
These tiers are a test-harness bucket, not a public support promise.
The README states what we support in plain prose and does not mirror
this split. Keeping the tier-1 and tier-2 rows current is a release
chore: before a release, check the Ubuntu and Fedora end-of-life dates
on endoflife.date, add any release that has newly shipped, and drop any
row whose release has reached end of life. That stops the matrix
drifting between releases.
The Dockerfiles are version-parameterized via the ``VERSION`` build arg
so a single ``fedora.Dockerfile`` covers every Fedora row; the
``archlinux`` Dockerfile ignores the version (rolling distro).
"""
: # Dockerfile stem: "fedora", "ubuntu", "archlinux", "debian"
: | None # Build-arg value; None for rolling distros.
: # "bash" or "zsh"
: # "dnf", "apt", "pacman" — implied by distro today.
: # 1 = supported set, 2 = opt-in extended run, 3 = unsupported-but-detected.
: =
=
=