Compare commits

..
Author SHA1 Message Date
koka e38f6cbdbe Record beta.110 publication and verified Prism synchronization
Build Sanctuary / build (push) Canceled after 0s
2026-09-17 03:15:20 +02:00
koka 2090380712 Allow the indexed pack icon in packwiz channel publication
Build Sanctuary / build (push) Canceled after 0s
2026-09-17 03:12:24 +02:00
7 changed files with 63 additions and 15 deletions
+5 -3
View File
@@ -22,7 +22,8 @@ L’économie, les claims et les dimensions décrits dans la vision restent
La version **beta.110** réunit les développements jusqu’à latelier dargile,
aux œufs et à la neige saisonnière. Le [suivi de livraison](docs/clay-workshop-integration-beta110.md)
précise les vérifications, la publication et la synchronisation de linstance.
précise les vérifications et confirme la publication ainsi que la mise à jour
de linstance **Sanctuary Beta**, en conservant ses sauvegardes et réglages.
Les [synchronisations antérieures](docs/git-sync-beta092.md) restent documentées.
Les [archives pour le site](archives/web/README.md) conservent la maquette
@@ -36,8 +37,9 @@ l’étude de Xaero et des alternatives libres.
Le Clay Workshop / atelier dargile, les statuaires et les modèles 3D rejoignent
les œufs, laccumulation et la fonte saisonnière dans un seul pack.
[Contrat et vérifications](docs/clay-workshop-integration-beta110.md).
[Pack normal](build/Sanctuary-beta.110.mrpack) ·
[Pack de test](build/Sanctuary-Test-beta.110.mrpack).
[Pack normal](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.110/Sanctuary-beta.110.mrpack) ·
[Pack de test](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.110/Sanctuary-Test-beta.110.mrpack) ·
[Release et installation Prism](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.110).
## beta.109 — Fonte saisonnière
+2 -1
View File
@@ -1847,4 +1847,5 @@ Branche `codex/clay-workshop-integration-beta110`.
[Ticket](clay-workshop-integration-beta110.md) : assemblage commun de
beta.106 et beta.109, avec tous les systèmes intermédiaires. Essais natifs de
latelier, des œufs et de la neige, build et archives réussis. Publication
et synchronisation de linstance demandées ensuite, en cours.
et synchronisation de linstance Sanctuary Beta terminées ; 923 fichiers
personnels et réglages suivis conservés, aucun monde ouvert.
-1
View File
@@ -38,4 +38,3 @@ Reçu : `build/beta104-artifact.json`.
Les GameTests dédiés restent exclus. Aucun monde, canal ou installation
personnelle modifié ; archives locales uniquement.
+32 -1
View File
@@ -2,7 +2,7 @@
Demande du 17 septembre 2026 : inclure le Clay Workshop dans la version avec
la fonte saisonnière. Branche `codex/clay-workshop-integration-beta110`.
État : assemblage commun vérifié, publication et synchronisation en cours.
État : version commune vérifiée, publiée et synchronisée dans Sanctuary Beta.
## Périmètre et compatibilité
@@ -95,3 +95,34 @@ Reçu : `build/integration110-artifact.json`, manifeste des sources :
Les essais natifs sont macOS avec serveur intégré ; pas de test Windows ni
connexion depuis un second ordinateur. La neige antérieure non suivie garde
la limite de fonte documentée dans beta.109.
Le script de publication a été corrigé pour autoriser uniquement `icon.png`
en plus des manifestes TOML, après contrôle de l'index et comparaison à l'icône
source. Les JAR restent exclusivement des pièces jointes de release. Cette
correction de distribution ne change aucun binaire ni le tag source beta.110.
## Publication et installation terminées
[Release beta.110](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.110),
tag source `468743bfe75087ecb0160b85a0864fa81bcdded5`. Les sources cumulatives
depuis beta.092 sont enregistrées ; les anciens tags et artefacts sont conservés.
Les corrections du script de distribution et ce reçu complètent la branche
source sans déplacer ce tag ni remplacer les binaires.
Canal packwiz : `828353a6e2bd747f4f473ae9fb9e965d38032419`. Chaque manifeste et
l'icône publiés correspondent aux fichiers validés localement. JAR, archives
normale/Test et ZIP d'amorçage Prism sont disponibles dans la release.
Deux synchronisations de l'installateur packwiz dans un dossier neuf, puis deux
dans la même instance **Sanctuary Beta**, ont réussi. Le second passage ne
change aucun fichier géré. Un seul JAR Sanctuary beta.110 est actif, Fabric API
0.160.5+26.3 est installé, Minecraft est réglé sur 26.3 et Loader sur 0.19.5.
L'icône déclarée dans le pack est ajoutée. `instance.cfg` et les **923 fichiers
personnels et réglages suivis** conservent leurs empreintes. Aucun monde ouvert,
converti ou régénéré ; aucune autre instance ni serveur personnel modifié.
Sauvegarde ciblée dans l'instance : `sanctuary-backups/before-beta.110/`.
Reçus ignorés : `build/integration110-publication.json`,
`build/integration110-isolated.json`, `build/integration110-prism.json`.
Les journaux de chaque synchronisation et les listes d'empreintes avant/après
sont conservés dans le dossier de développement et dans la sauvegarde ciblée.
-1
View File
@@ -31,4 +31,3 @@ de débogage changent). Reçu : `build/beta103-artifact.json`.
Les GameTests du serveur dédié restent exclus. Aucun monde personnel,
aucune installation ni aucun canal de distribution modifié.
+8 -3
View File
@@ -8,7 +8,8 @@ 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
contient les manifestes de distribution produits par le build et licône
`icon.png` déclarée dans leur index ; 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.
@@ -17,8 +18,12 @@ de l'ancien pack 26.2.
Clay Workshop, Statuaire et import GLB intégrés aux œufs et à la neige saisonnière.
[Contrat, vérifications et suivi de mise à jour](clay-workshop-integration-beta110.md).
Archives normal/Test vérifiées. Publication du canal et synchronisation de
linstance Sanctuary Beta demandées ; leur résultat est consigné dans le ticket.
[Release beta.110](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.110)
publiée ; canal `828353a6e2bd747f4f473ae9fb9e965d38032419`. Deux synchronisations
isolées puis deux dans la même instance **Sanctuary Beta** réussies. Minecraft
26.3 finale, Loader 0.19.5, Fabric API 0.160.5+26.3. Les 923 fichiers personnels
et réglages suivis sont inchangés ; sauvegardes restées fermées. Copie préalable
des fichiers remplacés : `sanctuary-backups/before-beta.110/`.
## beta.105 — archives locales
+16 -5
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Publish a verified build to Gitea and advance the metadata-only packwiz branch.
"""Publish a verified build to Gitea and advance the packwiz manifests and indexed icon.
This command publishes externally. Run check/build/assemblePack, commit, and push
the source branch first. Git's configured credential helper supplies credentials
@@ -115,12 +115,21 @@ def remote_tag_commit(tag):
return found.get('refs/tags/' + tag + '^{}') or found.get('refs/tags/' + tag)
def channel_file(relative):
"""The indexed pack icon is the only non-TOML file allowed on the channel."""
path = Path(relative)
return path.suffix == '.toml' or path.as_posix() == 'icon.png'
def publish_channel(origin, version, source_head):
staged = ROOT / 'build/packwiz-release'
pack.check_index(staged)
files = [path for path in staged.rglob('*') if path.is_file()]
pack.require(all(path.suffix == '.toml' for path in files),
'Distribution branch must contain only generated TOML metadata')
pack.require(all(channel_file(path.relative_to(staged)) for path in files),
'Distribution branch must contain only generated TOML metadata and the pack icon')
if (staged / 'icon.png').exists():
pack.require((staged / 'icon.png').read_bytes() == (ROOT / 'packwiz/icon.png').read_bytes(),
'Distribution icon differs from the verified source icon')
remote = git('ls-remote', '--heads', 'origin', 'refs/heads/' + CHANNEL)
with tempfile.TemporaryDirectory(prefix='sanctuary-pack-channel-') as temp:
directory = Path(temp)
@@ -134,7 +143,7 @@ def publish_channel(origin, version, source_head):
git('fetch', '--quiet', 'origin', CHANNEL, cwd=directory)
git('checkout', '--quiet', '-b', CHANNEL, 'FETCH_HEAD', cwd=directory)
tracked = git('ls-files', cwd=directory).splitlines()
pack.require(all(name.endswith('.toml') for name in tracked),
pack.require(all(channel_file(name) for name in tracked),
'Existing distribution branch contains unexpected files')
for name in tracked:
(directory / name).unlink()
@@ -204,7 +213,9 @@ def main():
remote_manifest = response.read()
pack.require(remote_manifest == (ROOT / 'build/packwiz-release/pack.toml').read_bytes(),
'Published manifest differs from this build; inspect the distribution channel')
for path in (ROOT / 'build/packwiz-release').rglob('*.toml'):
for path in (ROOT / 'build/packwiz-release').rglob('*'):
if not path.is_file():
continue
relative = path.relative_to(ROOT / 'build/packwiz-release').as_posix()
with urlopen(stable_url.removesuffix('pack.toml') + quote(relative), timeout=60) as response:
published = response.read()