fix(appliance): purger les anciens noyaux au lieu de refuser l'image - #292
Merged
Merged
Conversation
Le build de la 0.3.0 est mort sur notre propre garde-fou :
plus d'un noyau installé : l'image serait inutilement lourde
Il avait raison sur le poids — deux noyaux pèsent 170 Mio bruts — et tort sur le
geste : le correctif est mécanique, et refuser laisse la release sans appliance.
La cause : Debian a publié un noyau entre la gravure de l'ISO et ce build.
L'installateur pose le sien EXPLICITEMENT, donc l'`apt-get autoremove --purge`
du début de script ne le retire pas (il ne touche qu'aux paquets marqués
automatiques), et le `full-upgrade` en installe un plus récent à côté.
Le script garde maintenant le noyau le plus récent — celui qui bootera — et purge
les autres, y compris celui en cours d'exécution : il est en mémoire, et cette
machine va s'éteindre. Le garde-fou reste, déplacé APRÈS le nettoyage : il porte
sur le résultat et non sur l'intention, et nomme les fichiers restants quand il
parle.
La sélection est éprouvée hors de la VM, sur le piège qui compte : un tri
alphabétique choisirait 6.12.9 contre 6.12.10. `sort -V` choisit le bon.
L'entrée va dans la section 0.3.0 et non dans une 0.3.1 : l'appliance de cette
release n'a jamais été publiée, donc il n'y a rien à corriger d'un point de vue
utilisateur — il y a une image à livrer.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Le build de l'appliance de la 0.3.0 a échoué, sur notre propre garde-fou :
Il avait raison sur le poids — deux noyaux pèsent 170 Mio bruts — et tort sur le geste : le correctif est mécanique, et refuser laisse une release sans appliance.
La cause
Debian a publié un noyau entre la gravure de l'ISO et ce build. Trois faits se combinent :
apt-get autoremove --purge, au début du script, ne retire que les paquets automatiques : il ne le voit pas ;full-upgradeen installe un plus récent à côté.Le script garde maintenant le noyau le plus récent — celui qui bootera — et purge les autres, y compris celui en cours d'exécution : il est en mémoire, et cette machine va s'éteindre juste après.
Le garde-fou reste, déplacé après le nettoyage : il porte désormais sur le résultat et non sur l'intention, et il nomme les fichiers restants quand il parle. C'est l'invariant du projet appliqué à lui-même — un contrôle vérifie ce qui est, pas ce qu'on a voulu faire.
Éprouvé hors de la VM, sur le piège qui compte
sort -Vet nonsort: c'est exactement le genre de détail qui ne se voit qu'au build suivant.Type of change
Checklist
Always
uv run ruff check …passes — aucun code Python touchéuv run mypy src/dsoxlabpasses (strict)uv run pytestpassesuv run pytest tests_e2epassesbash -nsur le script, et la sélection du noyau jouée sur un/bootfactice à deux entrées, dont le cas où le tri de version décideWhen behavior changes
CHANGELOG.mdandCHANGELOG.fr.mdupdated — dans la section 0.3.0, et non dans une 0.3.1 : l'appliance de cette release n'a jamais été publiée, donc il n'y a rien à corriger du point de vue d'un utilisateur ; il y a une image à livrerAppliancesera relancé parworkflow_dispatchavectag: v0.3.0, ce que le workflow prévoit explicitement pour ce casWhen a command or option is added, removed or changed
When
.github/workflows/is touchedpacker/scripts/90-nettoyage.shchange, pas le workflow.When the declarative contract changes
Ce qui se passe après le merge
Je relance
Applianceavectag: v0.3.0: les images s'attacheront à la Release existante, sans nouveau tag. Puis je vérifie l'OVA publiée comme je l'ai fait pour la 0.2.5 — téléchargement, extraction, et confirmation que l'empreinte du manifeste est bien celle du flux, avec zéro octet après le marqueur de fin.🤖 Generated with Claude Code