7.5 KiB
Distribution packwiz et Prism
Sanctuary Beta utilise une seule instance Prism, synchronisée avant chaque lancement par packwiz. Le canal reste à l'adresse :
https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/pack.toml
Les sources sont sur la branche de travail du ticket. La branche packwiz
contient uniquement les manifestes de distribution produits par le build ; les
JAR Sanctuary sont des pièces jointes de releases Gitea. Aucun JAR de mod ou
dépendance téléchargée n'entre dans l'historique Git. Le canal Beta est distinct
de l'ancien pack 26.2.
Livrer une mise à jour
Après les vérifications, le commit et le push de la branche du ticket, le script de publication réalise les étapes de release et de canal ci-dessous :
python3 scripts/publish_pack.py --notes-file chemin/vers/notes.md --asset build/Sanctuary-0.1.0-alpha.7.mrpack
Les options sont facultatives. Ce script publie sur le Git configuré dans
origin ; il exige un arbre propre, un HEAD déjà poussé et un JAR dont la version
correspond aux sources. Il utilise les identifiants du gestionnaire Git en
mémoire, refuse de remplacer une release ou un artefact différent portant la
même version, puis vérifie les téléchargements publics et les métadonnées du
canal. Il préserve l'historique de packwiz et n'utilise pas de push forcé. Il
ne lance pas les tests et ne modifie aucune instance de jeu : les vérifications
de livraison restent à exécuter avant cette commande.
La procédure complète, également utilisable manuellement :
-
Modifier ensemble les versions de
gradle.propertiesetpackwiz/pack.toml. -
Exécuter
./gradlew check build assemblePacket les vérifications du ticket. -
Préparer les métadonnées de la livraison, avec l'URL exacte du futur JAR :
python3 scripts/pack.py release https://git.botsu.net/koka/sanctuary-beta/releases/download/v0.1.0-alpha.7/sanctuary-0.1.0-alpha.7.jar -
Pousser le commit source vérifié. Créer une release Gitea correspondant à ce commit et joindre le JAR construit, sans remplacer les artefacts d'une release antérieure. Vérifier que le téléchargement public possède le SHA-256 indiqué dans
build/packwiz-release/mods/sanctuary.pw.toml. -
Publier le contenu de
build/packwiz-release/à la racine de la branchepackwizdans un seul commit, puis vérifier les fichiers et hashes depuis l'URL publique. Préserver l'historique de ce canal et ne jamais y copier le dossierbuild/packwiz/, qui contient le JAR de développement. -
Tester une installation puis une seconde synchronisation avec le véritable
packwiz-installerdans un dossier de développement neuf. Le second passage doit laisser le pack à jour sans dupliquer Sanctuary.
mods/sanctuary.pw.toml conserve le même chemin entre versions ; seul son nom de
JAR, son URL et son hash changent. Packwiz peut ainsi retirer l'ancien JAR qu'il
gère quand il installe le nouveau. Une première installation depuis un .mrpack
n'a pas encore ce suivi : voir la procédure ci-dessous.
Un ZIP d'amorçage Prism se prépare avec :
python3 scripts/pack.py prism https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/pack.toml
Il contient les versions exactes Minecraft/Fabric, la commande de lancement et
packwiz-installer-bootstrap v0.0.3. Le script vérifie le SHA-256 du bootstrap
officiel avant d'écrire build/Sanctuary-Prism-auto-update.zip. Ce ZIP est réservé
aux nouvelles installations ; les instances déjà branchées sur packwiz suivent
le canal sans être réimportées.
Raccorder l'instance Prism existante
Fermer Minecraft avant de modifier ses mods. Fermer également Prism avant de
modifier directement instance.cfg, pour éviter que son état en mémoire écrase
les changements. Dans l'instance Sanctuary Beta :
- Sauvegarder
instance.cfget les anciens JAR Sanctuary dans un dossier de sauvegarde hors demods/. Vérifier que l'instance utilise Minecraft26.3-pre-2et Fabric0.19.5; ne pas convertir une instance 26.2. - Mettre le bootstrap issu du ZIP dans son dossier
minecraft/(ou.minecraft/selon l'installation). - Dans Modifier → Paramètres → Commandes personnalisées, activer les commandes et renseigner la commande avant lancement ci-dessous.
- Pour une instance issue d'un ancien
.mrpack, déplacer seulement l'ancien JAR Sanctuary non géré dans la sauvegarde préparée, puis faire la première synchronisation packwiz. Conserver les autres mods et données personnelles. Si la synchronisation échoue, remettre ce JAR et les réglages sauvegardés. - Vérifier qu'il reste un seul mod Sanctuary actif et que
packwiz.jsonest présent dans le dossier Minecraft. Les prochaines mises à jour sont suivies par ce manifeste local : ne pas le supprimer entre les versions.
Commande à coller dans l'interface Prism :
"$INST_JAVA" -jar "$INST_MC_DIR/packwiz-installer-bootstrap.jar" --bootstrap-main-jar "$INST_MC_DIR/packwiz-installer.jar" --pack-folder "$INST_MC_DIR" --multimc-folder "$INST_DIR" https://git.botsu.net/koka/sanctuary-beta/raw/branch/packwiz/pack.toml
Une modification directe de instance.cfg doit échapper les guillemets au format
Qt INI (\") et activer OverrideCommands=true. Ces clés et
PreLaunchCommand doivent être dans la section [General], jamais ajoutées
après la section [UI]. Le ZIP préparé le fait déjà. Rouvrir les commandes
personnalisées dans Prism pour vérifier que la commande est effectivement lue.
Une instance importée d'un .mrpack peut être marquée ManagedPack=true :
dès que packwiz en assure les mises à jour, utiliser ManagedPack=false pour
éviter deux mécanismes de gestion sur le même pack.
Données locales et mondes
Le pack livré possède uniquement les fichiers déclarés dans son index. Il ne
déclare ni saves/, ni options.txt, servers.dat, screenshots/, ni les packs
graphiques personnels. L'installation de packwiz et une mise à jour des mods
n'autorisent pas à supprimer ou régénérer un monde.
La hauteur de 384 blocs, le dessous sculpté et le ciel de l'alpha.3 se testent dans un nouveau monde avec le preset Sanctuary. Les anciens mondes gardent leurs identifiants de génération et leurs hauteurs. L’hydrologie de l’alpha.4 nécessite elle aussi un nouveau monde Sanctuary ; la mise à jour de l’instance n’ajoute pas d’eau aux sauvegardes existantes. Les nouvelles plages, cascades, biomes et petits filons de l’alpha.5 utilisent à leur tour un identifiant séparé : créer un nouveau monde Sanctuary pour les découvrir. Les détails des versions de génération sont dans Génération. Les changements de version Minecraft ou de format de sauvegarde demandent leur propre ticket et contrat de migration.
L’alpha.6 utilise à son tour sanctuary:sanctuary_layered pour ses biomes par
altitude et sa nouvelle hydrologie. Créer un nouveau monde Sanctuary ; les
sauvegardes alpha.5 conservent notamment leur palette avec Dappled Forest.
L’alpha.7 sélectionne sanctuary:sanctuary_woodland pour ses forêts, ses
roches variées et ses minerais affleurants. Les mondes alpha.6 gardent
sanctuary:sanctuary_layered ; aucune régénération de chunks n’est effectuée.
Références officielles : installation packwiz, commandes Prism, bootstrap v0.0.3.