From 477469ddf6a6157c92d47c704f74416ba539083b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20ROBERT?= Date: Wed, 30 Sep 2026 19:19:50 +0200 Subject: [PATCH] chore(release): 0.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le jalon compte huit issues, et un fil commun qui vaut d'être nommé : **ce qui ne peut pas être vérifié ne doit pas conclure**. Il court de la politique d'URL — une valeur de catalogue est une donnée, jamais une instruction — jusqu'au job qui provisionne une vraie VM, en passant par le socle dont le marqueur ne s'écrit qu'après un succès. Ce que la version apporte : - une politique d'URL centrale pour les valeurs venant d'un catalogue non fiable, et un affichage qui ne lui obéit plus (#273) ; - `learning.portal_url` : chaque catalogue déclare son portail, le moteur n'en connaît aucun (#269) ; - `dsoxlab export --lab` et `--out` : une preuve unitaire, en fichier ou en copier-coller (#271) ; - un lien de remise après `submit`, la preuve dans un fragment d'URL, et rien d'envoyé (#270) ; - `infra.bootstrap` : le socle d'un catalogue, joué une fois après le provisionnement (#213) ; - les invariants du projet écrits, chacun avec le bug qui l'a révélé (#200) ; - un job de CI qui provisionne et détruit une vraie VM KVM (#243) ; - `lab_type: validation` et `prerequisites`, arrivés en début de jalon. Deux corrections qui concernent directement les utilisateurs : - l'appliance s'importe enfin sous VMware. L'empreinte du manifeste n'était pas celle que son lecteur calcule — 64 512 octets d'écart, mesurés sur le fichier publié — et l'identifiant d'OS la ramenait à un profil 32 bits (#279) ; - une coupure réseau n'est plus rendue comme un défaut de lab (#224). La documentation a été relue en entier avant ce tag. La relecture a trouvé onze points bloquants, dont deux défauts de code introduits pendant ce même jalon : un `destroy` qui laissait le socle « posé » alors que ses machines n'existaient plus, et une variable de sécurité qui s'activait sur `0`. Les deux sont corrigés, et chacun porte son test. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.fr.md | 5 +++-- CHANGELOG.md | 5 +++-- pyproject.toml | 2 +- uv.lock | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.fr.md b/CHANGELOG.fr.md index 8cab2e7..412dacd 100644 --- a/CHANGELOG.fr.md +++ b/CHANGELOG.fr.md @@ -7,7 +7,7 @@ Toutes les modifications notables du projet sont documentées dans ce fichier. Le format s'appuie sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/), et le projet suit le [versionnage sémantique](https://semver.org/lang/fr/). -## [Non publié] +## [0.3.0] - 2026-09-30 ### Ajouté @@ -4367,7 +4367,8 @@ Première version publique. - Diagnostics de l'environnement (`dsoxlab doctor [--fix]`). - Interface utilisateur bilingue (anglais/français) pilotée par `DSOXLAB_LANG`. -[Unreleased]: https://github.com/stephrobert/dsoxlab/compare/v0.1.20...HEAD +[Unreleased]: https://github.com/stephrobert/dsoxlab/compare/v0.3.0...HEAD +[0.3.0]: https://github.com/stephrobert/dsoxlab/compare/v0.2.5...v0.3.0 [0.1.20]: https://github.com/stephrobert/dsoxlab/compare/v0.1.19...v0.1.20 [0.1.19]: https://github.com/stephrobert/dsoxlab/compare/v0.1.18...v0.1.19 [0.1.18]: https://github.com/stephrobert/dsoxlab/compare/v0.1.16...v0.1.18 diff --git a/CHANGELOG.md b/CHANGELOG.md index 254f863..e473973 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.3.0] - 2026-09-30 ### Added @@ -4129,7 +4129,8 @@ Initial public release. - Environment diagnostics (`dsoxlab doctor [--fix]`). - Bilingual (English/French) user interface driven by `DSOXLAB_LANG`. -[Unreleased]: https://github.com/stephrobert/dsoxlab/compare/v0.1.20...HEAD +[Unreleased]: https://github.com/stephrobert/dsoxlab/compare/v0.3.0...HEAD +[0.3.0]: https://github.com/stephrobert/dsoxlab/compare/v0.2.5...v0.3.0 [0.1.20]: https://github.com/stephrobert/dsoxlab/compare/v0.1.19...v0.1.20 [0.1.19]: https://github.com/stephrobert/dsoxlab/compare/v0.1.18...v0.1.19 [0.1.18]: https://github.com/stephrobert/dsoxlab/compare/v0.1.16...v0.1.18 diff --git a/pyproject.toml b/pyproject.toml index 0903dfa..92fbfd1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "dsoxlab" -version = "0.2.5" +version = "0.3.0" description = "Turn declarative exercises into reproducible, runnable and verifiable lab environments" readme = "README.md" requires-python = ">=3.11" diff --git a/uv.lock b/uv.lock index a9856c4..36c9bda 100644 --- a/uv.lock +++ b/uv.lock @@ -290,7 +290,7 @@ wheels = [ [[package]] name = "dsoxlab" -version = "0.2.5" +version = "0.3.0" source = { editable = "." } dependencies = [ { name = "ansible-core" },