Beryl::Bootstrap::MfsBSDRelease
Détection de la dernière release mfsBSD disponible sur https://github.com/mmatuska/mfsbsd/releases (source officielle actuelle, miroirée sur mfsbsd.vx.sk seulement pour les anciennes majors).
Pourquoi dynamique : mfsBSD évolue dans son coin côté Martin Matuska, au fil des releases FreeBSD. Figer une version en dur dans beryl (ex: « 14.2 ») condamne l'outil à devoir être rebuildé à chaque nouvelle release. La détection au runtime évite ça et garantit qu'un bootstrap utilise la dernière version disponible au moment du lancement.
mfsBSD SE contient les dists FreeBSD (base.txz + kernel.txz +
MANIFEST) de la MÊME version : installer FreeBSD X.Y via mfsBSD SE
X.Y évite le téléchargement et le mismatch pkg. C'est pour ça que
freebsd_version et mfsbsd_version sont synchronisés dans beryl.
Pas de défaut silencieux (règle Aloli) : si la détection échoue
(réseau HS, API GitHub en panne, JSON malformé), on lève
DetectionFailed — pas de fallback sur une valeur arbitraire.
L'opérateur peut forcer une version avec
beryl bootstrap --freebsd-version=X.Y.
Constants
Pattern extrayant la version FreeBSD d'un nom d'asset mfsBSD SE.
Accepte .iso (format actuel GitHub) et .img (ancien format vx.sk).
Class methods
Fetcher par défaut : HTTP::Client.get avec User-Agent (GitHub API
refuse les requêtes sans User-Agent).
Détecte la dernière mfsBSD SE disponible sur GitHub releases.
Étapes :
- GET l'API GitHub → JSON de la dernière release
- Parcourt
assets[]et filtre ceux dont le nom matchemfsbsd-se-<X>.<Y>-RELEASE-amd64.<iso|img>$ - Retourne l'Info de la plus haute version (par (major, minor))
fetcher est injectable pour les tests.