LifePlay-Revival/Docs/Migration/etat/REL/MAPDL1/MAPDL1-ESSAI-FJ.md
2026-10-22 21:10:39 +02:00

114 lines
7.3 KiB
Markdown

Fiche MAPDL1-ESSAI-FJ — Niveau N2 — Modèle prévu opus medium | utilisé claude-opus-5-5 — Agent session « Medium · MAPDL1 » — Skills sk-protocol, lp-city
# MAPDL1 : essai du téléchargement dans le jeu par les releases du Forgejo de l'utilisateur (fiche préparée, rien publié) (2026-10-22)
Cette fiche remplace `MAPDL1-ESSAI-GH.md`, qui est gardée pour mémoire. Le modèle GitHub reste disponible dans `IndexCartes.ps1`.
Décision de l'utilisateur, citée par Big Boss : « Finalement, utilise les releases de mon Forgejo pour les essais. »
Instance : `forgejo.edujiro5972.fr`. Dépôts connus : `edujiro5972/LifePlay-Revival` (jeu) et `edujiro5972/LifePlay-Sandbox` (addon), d'après `lp-paths`.
**Une release est une publication.** Les étapes F1 à F3 sont **des gestes de l'utilisateur**, ou se font avec son accord explicite, action par action. Aucune n'est faite par cette fiche.
## Questions pour l'utilisateur (posées par Big Boss)
1. Quel dépôt porte les releases d'essai ?
- `edujiro5972/LifePlay-Revival` ;
- `edujiro5972/LifePlay-Sandbox` ;
- ou un dépôt dédié, par exemple `edujiro5972/LifePlay-Cities` (idée de `STM1-SPEC-07` § 3).
2. **Ce dépôt est-il public ?** La visibilité du Forgejo est « à confirmer » (`lp-paths`). Le jeu télécharge **sans authentification** : un dépôt privé ne peut pas servir. Le jeu ne porte aucun jeton, et n'en portera pas.
3. Quel tag ? Proposition : `cartes-test-1`.
4. Accord pour F1 (création de la release), puis pour F2 et F3 (appels au réseau).
## Packs d'essai
| Pack | Archive (`D:\Game\LifePlay_Publication\Mods\`) | Octets | SHA-256 |
|---|---|---:|---|
| Manila 1.0.1 | `lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip` | 22 075 120 | `2BA28C4EDFB98E7B0265BE719E3A42489F0FD79B17268C6EE9F3FBE2DC08B4CF` |
| Shanghai 1.0.1 (facultatif) | `lpm_city_shanghai-1.0.1-for-LifePlay-2026.10.2.2a.zip` | 34 179 497 | `DF9CD279E65842CC7301C84A86415FAD3E00F8FFC72F6441C35E38515C5D8D7B` |
Lien de téléchargement visé :
`https://forgejo.edujiro5972.fr/<owner>/<repo>/releases/download/<tag>/lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip`
## Points à vérifier (aucun n'est établi)
| # | Point | Comment le trancher |
|---|---|---|
| V1 | **Téléchargement anonyme** : il exige un dépôt public (et une instance qui n'oblige pas à se connecter pour lire) | F2 : `curl -I` sans identifiants. Attendu : `200`, et non `401`, `403`, ni une page de connexion |
| V2 | **`Range` et `206`** sur les pièces jointes de release | F2 : `curl -r 0-3`. Attendu : `206` et `Content-Range: bytes 0-3/22075120` (`STM1-SPEC-07` § 3 notait déjà « à vérifier ») |
| V3 | **Redirection éventuelle** (par exemple vers un stockage d'objets si l'instance en utilise un) | F2 : `curl -I -L`. Noter chaque `Location:`. Le client HTTP du jeu doit la suivre (E1) |
| V4 | **Taille maximale des pièces jointes** : réglage `[attachment] MAX_SIZE` de l'instance (`STM1-SPEC-07` § 3) | réglage lu par l'utilisateur sur son serveur, ou constaté à l'envoi. Les plus gros packs actuels font de 68 Mo (MexicoCity 1.0.1) à 98 Mo (Bangalore 1.0.0), voire plus en 1.0.1 avec la 3D classique |
| V5 | **Création de la release** | par l'interface web (geste de l'utilisateur), ou par l'API avec un jeton **gardé par l'utilisateur** : variable d'environnement ou gestionnaire d'identifiants Windows, jamais dans un fichier du projet |
## F1. Création de la release (geste de l'utilisateur, ou avec son accord)
**Interface web** :
1. dépôt `<owner>/<repo>`, puis « Releases », puis « New release » ;
2. tag `cartes-test-1`, titre « City map packs (test) » ;
3. notes : « Test release for in-game download (MAPDL1). Map data (c) OpenStreetMap contributors, ODbL 1.0. » ;
4. pièce jointe : le zip de Manila ;
5. « Publish ».
**Par l'API** (si l'utilisateur le préfère ; jeton dans `$env:FORGEJO_TOKEN`, que l'utilisateur pose lui-même dans sa session) :
```powershell
$h = @{ Authorization = "token $env:FORGEJO_TOKEN" }
$r = Invoke-RestMethod -Method Post -Headers $h -ContentType 'application/json' `
-Uri "https://forgejo.edujiro5972.fr/api/v1/repos/<owner>/<repo>/releases" `
-Body (@{ tag_name = 'cartes-test-1'; name = 'City map packs (test)'; body = 'Test release for in-game download (MAPDL1). Map data (c) OpenStreetMap contributors, ODbL 1.0.' } | ConvertTo-Json)
curl.exe -sS -H "Authorization: token $env:FORGEJO_TOKEN" -F "attachment=@D:\Game\LifePlay_Publication\Mods\lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip" "https://forgejo.edujiro5972.fr/api/v1/repos/<owner>/<repo>/releases/$($r.id)/assets?name=lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip"
```
Les points d'accès `/api/v1/repos/{owner}/{repo}/releases` et `…/releases/{id}/assets` sont **à vérifier** sur la version de Forgejo installée (la 9, d'après `STM1-SPEC-07` § 7 bis), dans sa page d'aide de l'API (`/api/swagger`).
## F2. Tests d'accès anonyme, de redirection et de Range (avec accord)
```powershell
$u = "https://forgejo.edujiro5972.fr/<owner>/<repo>/releases/download/cartes-test-1/lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip"
curl.exe -sS -I -L $u
curl.exe -sS -L -r 0-3 -o NUL -D - $u
```
Résultats attendus :
- **V1** : statut final `200`, `Content-Length: 22075120`, sans `401` ni `403` ;
- **V3** : chaque redirection notée (`Location:`), ou aucune ;
- **V2** : la seconde commande rend `206 Partial Content` et `Content-Range: bytes 0-3/22075120`.
Le relevé est à coller tel quel. Sans `206`, le jeu reprend de zéro (il le gère), et c'est à noter.
## F3. Contrôle du fichier (avec accord)
```powershell
New-Item -ItemType Directory -Force "D:\Game\LifePlay_Data\Mega-essai\FJ-essai" | Out-Null
curl.exe -sS -L -o "D:\Game\LifePlay_Data\Mega-essai\FJ-essai\manila.zip" $u
(Get-FileHash "D:\Game\LifePlay_Data\Mega-essai\FJ-essai\manila.zip" -Algorithm SHA256).Hash
```
Attendu : `2BA28C4EDFB98E7B0265BE719E3A42489F0FD79B17268C6EE9F3FBE2DC08B4CF`.
## F4. JSON d'essai (sans réseau, après E1)
```powershell
pwsh -NoProfile -File "D:/Game/LifePlay-master 5.8/Tools/IndexCartes.ps1" -Villes Manila -Hebergeur Forgejo -ForgejoHote forgejo.edujiro5972.fr -Owner <owner> -Repo <repo> -Tag cartes-test-1 -Sortie "D:\Game\LifePlay_Data\Mega-essai\FJ-essai\LPCityMaps.json"
```
Attendu : une entrée Manila avec `urls = ["https://forgejo.edujiro5972.fr/<owner>/<repo>/releases/download/cartes-test-1/lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip"]`, `octets` 22075120 et `sha256` `2BA28C4E…`.
Le modèle GitHub reste disponible : `-Hebergeur GitHub -Owner -Repo -Tag`.
## F5. Essai en jeu (E4, Big Boss)
> **Remplacé** le 2026-10-22 par la partie C de `MAPDL1-TESTS-02.md`.
Les mêmes cas que `MAPDL1-ESSAI-GH.md` § G5 (T1 à T7) :
- Download only ;
- Full install depuis le zip déjà présent ;
- reprise par `Range` ;
- passage au miroir sur un `404`.
Manila doit être désinstallée de la build d'essai au préalable, par déplacement. Journal à relever : lignes `[LPCity] DOWNLOAD` (statut, URL finale après redirection, octets, SHA-256) et `[LPCity] INSTALL`.
## Compte rendu
- **Résultat** : fiche préparée. Rien n'est publié, rien n'est appelé sur le réseau.
- **Fichier** : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL\MAPDL1\MAPDL1-ESSAI-FJ.md` (A).
- **Suite** : Big Boss pose les 4 questions et demande les accords pour F1, puis pour F2 et F3 ; F4 et F5 viennent après E1 et E2.