Files
sanctuary-beta/docs/packwiz.md
T
2026-09-08 23:11:51 +02:00

7.5 KiB
Raw Blame History

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 :

  1. Modifier ensemble les versions de gradle.properties et packwiz/pack.toml.

  2. Exécuter ./gradlew check build assemblePack et les vérifications du ticket.

  3. 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
    
  4. 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.

  5. Publier le contenu de build/packwiz-release/ à la racine de la branche packwiz dans 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 dossier build/packwiz/, qui contient le JAR de développement.

  6. Tester une installation puis une seconde synchronisation avec le véritable packwiz-installer dans 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 :

  1. Sauvegarder instance.cfg et les anciens JAR Sanctuary dans un dossier de sauvegarde hors de mods/. Vérifier que l'instance utilise Minecraft 26.3-pre-2 et Fabric 0.19.5 ; ne pas convertir une instance 26.2.
  2. Mettre le bootstrap issu du ZIP dans son dossier minecraft/ (ou .minecraft/ selon l'installation).
  3. Dans Modifier → Paramètres → Commandes personnalisées, activer les commandes et renseigner la commande avant lancement ci-dessous.
  4. 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.
  5. Vérifier qu'il reste un seul mod Sanctuary actif et que packwiz.json est 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. Lhydrologie de lalpha.4 nécessite elle aussi un nouveau monde Sanctuary ; la mise à jour de linstance najoute pas deau aux sauvegardes existantes. Les nouvelles plages, cascades, biomes et petits filons de lalpha.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.

Lalpha.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.

Lalpha.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 nest effectuée.

Références officielles : installation packwiz, commandes Prism, bootstrap v0.0.3.