Files
sanctuary-beta/docs/versioning.md
T
2026-09-15 09:29:11 +02:00

105 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Versionnement Sanctuary
Convention adoptée le 12 septembre 2026, ticket local **BETA-01**, branche
`codex/versioning-beta`. Le dernier socle alpha est `0.1.0-alpha.30.7` ;
la première version du nouveau cycle est **`beta.001`**.
Le nom du produit reste **Sanctuary** ; la version contient seulement
`beta.xxx`, pour obtenir `Sanctuary-beta.001.mrpack` et
`sanctuary-beta.001.jar` sans répéter le nom dans les métadonnées.
La préparation BETA-01 na pas été publiée séparément. À la demande du créateur,
la même version inclut ensuite [EXP-01, les quatre anciennes expéditions](expeditions-beta001.md),
sur `codex/ancient-expeditions-beta001`. Les observations BETA-01 ci-dessous
concernent la première étape, avant ce changement de jeu ; les essais finaux
dEXP-01 sont consignés dans son propre document.
## Compteur de livraison
- Format exact en minuscules : `beta.xxx`, avec trois chiffres.
- Première livraison `001`, puis `002`, `003`, … jusqu’à `999` ; décider dune
nouvelle convention avant d’épuiser le compteur, sans retour à zéro.
- Chaque livraison du mod consomme le numéro suivant, correctifs compris.
Aucun suffixe `.1`, `-hotfix` ou numéro lié à un chantier worldgen.
- Une modification documentaire seule nincrémente pas les binaires.
- Une version publiée désigne un commit et des artefacts immuables. Ne pas
renommer les tags alpha ni remplacer leurs pièces jointes.
| Emplacement | Valeur pour cette transition |
| --- | --- |
| `gradle.properties``mod_version` et `pack_version` | `beta.001` |
| `packwiz/pack.toml``version` | `beta.001` |
| Métadonnées Fabric du JAR, issues de Gradle | `beta.001` |
| Futur tag Git / Gitea, sans préfixe `v` | `beta.001` |
| JAR, convention Gradle `sanctuary-<version>.jar` | `sanctuary-beta.001.jar` |
| Export MRpack | `Sanctuary-beta.001.mrpack` |
`scripts/pack.py check`, également exécuté par `verifyPack`, refuse un format
différent ou un désalignement entre le mod et les manifestes du pack.
`scripts/publish_pack.py` utilise la version exacte pour les nouveaux tags.
Le canal packwiz et le chemin `mods/sanctuary.pw.toml` restent stables.
Ce nom est une version textuelle personnalisée, pas une version SemVer.
Fabric Loader 0.19.5 charge le mod avec sa valeur exacte, mais écrit un
avertissement `isn't compatible with Loader's extended semantic version format`.
Pour les futures dépendances à Sanctuary, ne pas supposer quune plage SemVer
compare ce compteur ; les GameTests actuels déclarent `"sanctuary": "*"` dans
leurs dépendances. Les mises à jour du pack suivent les manifestes et hashes
du canal packwiz.
## Génération, sauvegardes et suite
Ce compteur désigne une livraison, pas une version de génération ou de format
de sauvegarde. La première étape BETA-01 reprenait le code de jeu de lalpha.30.7, notamment le
codec `sanctuary:island_v24`, sans modifier les identifiants `sanctuary:*`, les
journaux, les paramètres ou les chunks. Ce renommage nimpose pas à lui seul
un nouveau monde ; les contraintes des anciennes générations restent celles
de leurs notes de version. Aucune migration de sauvegarde nest livrée ici.
Le créateur clôt le chantier worldgen sur ce socle. Le [backlog](backlog.md)
prévoit une passe courte sur les expansions, puis la progression en jeu.
Les systèmes de progression décrits dans la vision restent à implémenter.
## Validation et distribution
La transition est préparée localement. La publication des artefacts, lavancement
du canal et la synchronisation de linstance Prism suivent une demande de
livraison et la [procédure packwiz](packwiz.md). Aucune de ces opérations nest
effectuée par le seul changement de version des sources.
Vérifications de la première étape BETA-01 sur macOS, Java 25, Minecraft 26.3-pre-2.
Elles précèdent les expéditions et la simplification finale du nom interne ;
les anciens logs gardent leur libellé temporaire :
- Les 13 cas de versionnement passent : compteurs admis, formats refusés et
désalignements mod/pack/manifeste. Les scripts Python compilent.
- `./gradlew check build assemblePack` échoue après 6 min 56 s : **30 GameTests
réussissent sur 32**. Les contrôles purs précédant les GameTests passent.
`populationTerrainAndNaturalSpawnRemainPresent` attend encore une hauteur de
384 blocs, alors que le monde courant mesure 640 blocs.
`retainedHydrologySurvivesNativeDecoration` refuse le support naturel dune
cellule de sédiment en `x=-141, z=-86, bedY=238`, sur Moyen 724, graine `0`.
Ces deux assertions figurent déjà dans lalpha.30.7 ; aucune nest corrigée
ou désactivée dans les sources de BETA-01. Leur remise en cohérence reste ouverte.
- `./gradlew build assemblePack -x :sanctuary:check` réussit ensuite en 2 s,
pour construire les artefacts séparément. Cette exclusion ponctuelle ne
constitue pas une réussite du contrôle complet ci-dessus.
- Le JAR alpha.30.7 local correspond au SHA-256 publié dans le dépôt. La
comparaison des archives montre **1 116 entrées strictement identiques** ;
seul `fabric.mod.json` change, et seule sa valeur `version` diffère.
- Le packwiz assemblé et lexport MRpack sont vérifiés : version, dépendances
exactes, index et empreintes, intégrité ZIP, un seul JAR Sanctuary.
Les reçus et logs restent ignorés dans `build/beta001-validation.json`,
`build/beta001-check-build-pack.log` et `build/beta001-assemble.log`.
Artefacts locaux : `mods/sanctuary/build/libs/sanctuary-beta.001.jar`
et `build/Sanctuary-beta.001.mrpack`. Aucun essai client graphique,
Windows ou rechargement de sauvegarde personnelle nest revendiqué.
La simplification finale vers `beta.001` est également vérifiée : 12 cas
de format et dalignement, construction et assemblage réussis, nom/version
du MRpack et version Fabric alignés. Comparé au JAR des expéditions ayant
passé les essais natifs, seul le champ `version` de `fabric.mod.json` change.
Le [reçu final des expéditions](expeditions-beta001.md#vérifications) remplace
les empreintes des artefacts de préparation.