Files
sanctuary-beta/docs/minecraft-26-3-beta090.md
2026-09-16 11:41:27 +02:00

103 lines
6.1 KiB
Markdown

# beta.090 — Passage à Minecraft Java 26.3
Ticket de migration du projet, branche `codex/minecraft-26-3-beta090`.
## Cible et contrat avant modification
Passage de `26.3-pre-2` à la version finale **26.3**, publiée le 15 septembre
2026. Cible Java 25, Fabric Loader 0.19.5 et Fabric API 0.160.5+26.3.
Sanctuary, Demeure, le profil Test et le fork JEI sont compilés pour la même
version exacte. Le fork JEI devient `30.32.0-sanctuary.3`, avec sa provenance
et son patch reproductible ; aucune substitution du catalogue Sanctuary par
le JEI standard.
Cette livraison change les binaires du projet et les archives locales. Aucun
monde existant ni instance personnelle n'est ouvert ou modifié. Pas de
régénération, d'expansion activée ni de migration des schémas Sanctuary.
Les identifiants restent stables. Les essais utilisent des mondes neufs et
les graines documentées des parcours ; les algorithmes de génération
Sanctuary ne sont pas modifiés. Les résultats de génération sur la nouvelle
version sont validés par les contrôles existants, sans garantir l'identité
binaire de tous les chunks générés par deux versions de Minecraft.
Le pack de textures reçoit une édition beta.090 pour déclarer la cible 26.3.
Le format reste 97.1 et les images existantes sont conservées ; le manifeste
et l'archive beta.070 restent immuables. Les anciens packs beta.089 restent
également immuables.
## Sources vérifiées
- [Sortie officielle de Minecraft Java 26.3](https://www.minecraft.net/en-us/article/minecraft-java-edition-26-3) : Java 25, données 121.0 et ressources 97.1.
- [Manifeste Minecraft officiel](https://piston-meta.mojang.com/mc/game/version_manifest_v2.json) : entrée release 26.3, métadonnées et empreintes Mojang.
- [Fabric Loader pour 26.3](https://meta.fabricmc.net/v2/versions/loader/26.3) : 0.19.5 stable.
- [Fabric API 0.160.5+26.3](https://modrinth.com/mod/fabric-api/version/0.160.5+26.3) : version déclarée pour 26.3, JAR et empreinte épinglés dans packwiz.
## Adaptations
- Les cibles Minecraft/Fabric sont communes à Sanctuary, Demeure, Sanctuary Test
et au fork JEI. Les métadonnées des JAR et les deux distributions reprennent
ces versions ; Fabric API est épinglé par URL et empreinte.
- Le bouton d'ouverture du dossier des plans utilise `Blaze3D.openPath` :
l'ancien `Util.getPlatform().openPath` n'existe plus dans la version finale.
- Le scénario client du catalogue utilise la règle actuelle « Allow Commands »
pour activer puis révoquer le mode opérateur. Sa vieille attente d'un second
bouton d'inspection est retirée ; aucune permission de production n'est changée.
- Le rapport TerrainAtlas récupère la version Minecraft réellement exécutée.
- Minecraft passe du DataVersion 5018 (pre-2) à 5023 (finale), protocole 777.
Les schémas Sanctuary restent inchangés. Les caches de plans dérivés incluent
déjà les versions des mods et de Minecraft dans leur identité : la nouvelle
version recalcule ses plans sans réutiliser un cache de l'ancien moteur.
## Vérifications
Les essais clients utilisent Minecraft **26.3** natif et des mondes de
développement neufs, graine **42**. Aucun serveur dédié n'est lancé et aucune
EULA n'est acceptée ; `:sanctuary:runGameTest` est explicitement exclu.
- Super pistons : états de collision client/serveur, six directions, versions
normale/gluante, course, charge 108/109, obstacles, transport, sauvegarde et
rechargement. Le correctif de collision beta.089 est conservé et retesté.
- Multiblocs : navigation du Fût et recherche avec souris immobile, onglets du
Fourneau, fermeture normale, stockage, cuisson et persistance. Le correctif
beta.088 ne réintroduit pas de paquet de fermeture entre deux pages.
- Catalogue JEI : découverte, familles de recettes débloquées par advancements,
permissions opérateur et révocation, transfert réel depuis la sixième rangée,
ressources FR/EN, prestige, mort puis rechargement du monde.
- Monde Sanctuary : génération neuve, graine 42, introduction complète, cache
écrit puis relu sans recalcul, corruption volontaire d'un cache de développement
puis reconstruction. Les 217 053 écritures de blocs contrôlées, plans, géométries
des fluides, butins et zones protégées restent identiques après les deux reprises.
Le parcours natif passe en 3 min 35 s. À titre d'observation locale, la création
avec introduction dure 147,4 s, la reprise avec cache 2,7 s et la reprise après
corruption 40,5 s ; ces parcours ne constituent pas un benchmark comparable.
Les journaux locaux des quatre parcours sont
`build/migration090-{piston,multiblocks,recipes,world}-client.log`.
## Assemblage vérifié
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
passe sous Java 25 : **124 tâches**, en 2 min 53 s. Les quatre parcours clients
séparés passent également. Les deux exports packwiz sont vérifiés après écriture.
- [Pack normal](../build/Sanctuary-beta.090.mrpack) — SHA-256
`4cbb9c06126874ce4c767b5fb6b3bf61c2903784e908f030ebbfbc662aac4dfc`.
- [Pack Test](../build/Sanctuary-Test-beta.090.mrpack) — SHA-256
`ffe9f70ec0f17d567d0c108478ed90915eb5d8cdc407be9ba39860dd87adfc05`.
- [Textures seules](../build/Sanctuary-Resource-Pack-beta.090.zip).
- [Reçu de vérification local](../build/migration090-artifact.json).
Les JAR imbriqués, leurs cibles Minecraft, les archives de sources et les versions
packwiz concordent. L'empreinte du JAR Fabric API téléchargé par Gradle correspond
à celle de la dépendance packwiz. Les images, modèles, données et identifiants du
JAR Sanctuary sont identiques à beta.089 ; seul le `pack.mcmeta` graphique change.
La seule classe de production Sanctuary différente est `PlansScreen`. Les archives
normal/Test beta.089 et les sources du manifeste graphique beta.070 sont conservées.
## Limites et distribution
Les clients testés sont natifs sur macOS, avec serveur intégré. Pas de validation
Windows/Linux ou LAN à deux clients pour cette migration, ni de conversion d'une
sauvegarde personnelle. Les archives locales n'avancent pas le canal packwiz et
ne mettent pas à jour une instance Prism existante.