93 lines
12 KiB
Markdown
93 lines
12 KiB
Markdown
|
|
Fiche U7-T14 — Niveau N0 (N1 pour le contrôle des conteneurs) — Modèle prévu lp-builder | utilisé claude-haiku-5-5 — Agent lp-builder — Skills lp-build, sk-windows-shell, sk-protocol
|
||
|
|
|
||
|
|
# U7-T14 — Build Shipping 5.8 avec version de référence `2026.10.2.0` (R1) et rangement des références 5.5 (R2) : OK
|
||
|
|
|
||
|
|
**Verdict : OK.** R2 (déplacement) fait ; compilation Shipping code 0 ; UAT BuildCookRun code 0 (`BUILD SUCCESSFUL`) ; `Releases\2026.10.2.0` et archive `LifePlay_Build_5.8_Shipping_V2.0` cohérentes (`.utoc` et `.ucas` identiques au hash SHA-256) ; formats : conteneur 5 et AssetRegistry 24 conformes. Un écart de lecture est signalé au § 5 (champ « version » du `.utoc` = 8, pas 5).
|
||
|
|
|
||
|
|
## 0. Préambule
|
||
|
|
[sk-protocol] — skills présents dans le contexte : sk-protocol, sk-windows-shell, lp-build (préchargés).
|
||
|
|
Interpréteurs : pwsh 7 pour les commandes PowerShell ; Git Bash pour les lectures ; `python -I` pour les scripts de conteneur (scripts dans le scratchpad de session, hors projet).
|
||
|
|
|
||
|
|
## 1. Contrôles de départ (établi)
|
||
|
|
- Copie : `D:\Game\LifePlay-master 5.8`, `git -C ... branch --show-current` = `ue5.8`.
|
||
|
|
- `Config\DefaultGame.ini:4` = `ProjectVersion=2026.10.2.0` ; `Config\DefaultGame.ini:25` = `bUseZenStore=False`.
|
||
|
|
- `git -C "D:\Game\LifePlay-master 5.8" status --short` : 13 entrées (C1+C2 non commité, voulu). Aucune modification de source, config ou Content par ce lot.
|
||
|
|
- `Mods\` du projet : 0 entrée avant et après le lot (`Get-ChildItem -Force`, `ls -A | wc -l` = 0).
|
||
|
|
- Processus : `tasklist` filtré sur `UnrealEditor|UnrealBuild|RunUAT|AutomationTool` : aucun résultat ; `Build.ps1` n'a pas renvoyé le code 3.
|
||
|
|
- `D:\Game\LifePlay_Build_5.8_Shipping_V2.0` absent avant (`Test-Path` = False) ; `Releases\2026.10.2.0` absent avant (`Test-Path` = False).
|
||
|
|
- `Releases\` du projet avant R2 : `2026.10.1.5` (03/10/2026 10:50, 1 310 871 587 octets) et `2026.10.1.6` (07/10/2026 02:32, 1 319 106 195 octets). Cible `D:\Game\LifePlay_Backup_5.5\Releases\` : seule `2026.10.4` présente.
|
||
|
|
|
||
|
|
## 2. Étape a — R2 : rangement des références 5.5 (établi)
|
||
|
|
Commande (pwsh 7) : vérification des sources présentes et des cibles absentes, puis `Move-Item -LiteralPath <source> -Destination <cible>` (aucune suppression). Code de sortie 0.
|
||
|
|
- `D:\Game\LifePlay-master 5.8\Releases\2026.10.1.5` → `D:\Game\LifePlay_Backup_5.5\Releases\2026.10.1.5`
|
||
|
|
- `D:\Game\LifePlay-master 5.8\Releases\2026.10.1.6` → `D:\Game\LifePlay_Backup_5.5\Releases\2026.10.1.6`
|
||
|
|
- Après : `Releases\` du projet est vide (vérifié par `Get-ChildItem`) ; `D:\Game\LifePlay_Backup_5.5\Releases\` contient `2026.10.1.5`, `2026.10.1.6`, `2026.10.4`.
|
||
|
|
|
||
|
|
## 3. Étape b — compilation cible jeu Shipping, sans UBA (établi)
|
||
|
|
- Commande exacte (pwsh 7, en arrière-plan) : `Set-Location -LiteralPath 'D:\Game\LifePlay-master 5.8'` puis `.\Tools\Build.ps1 -Lot U7 -Target LifePlay -Config Shipping -ExtraArgs "-NoUBA"`.
|
||
|
|
- Ligne lancée (lue dans la sortie) : `Build.bat LifePlay Win64 Shipping "-Project=D:\Game\LifePlay-master 5.8\LifePlay.uproject" -WaitMutex -NoHotReloadFromIDE -NoUBA`.
|
||
|
|
- Code de sortie : **0** ; durée : **86 s**.
|
||
|
|
- Résumé : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\U7_Build_20261009-103224.txt`.
|
||
|
|
- Journal : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\U7_Build_20261009-103224.log`.
|
||
|
|
- Sortie console : `%USERPROFILE%\AppData\Local\Temp\claude\D--Game-LifePlay-master-5-5\ab8918a1-261f-45b4-904a-678ecfce98f7\scratchpad\U7T14_b_stdout.txt` (scratchpad de session).
|
||
|
|
- Chaîne MSVC : `Using Visual Studio 14.50.35739 toolchain (...\MSVC\14.50.35717)` = épinglée (`DefaultEngine.ini` CompilerVersion 14.50.35717).
|
||
|
|
- Makefile : `Creating makefile for LifePlay (no existing makefile)` (makefile recréé pour la configuration Shipping ; pas de Makefile réutilisé).
|
||
|
|
- Décompte (résumé) : erreurs du compilateur **0** ; avertissements du compilateur **0** ; autres lignes d'erreur/avertissement (UBT, UHT, liens) **0** ; unités compilées **12** ; DLL liées **0** (cible jeu : `.exe`, déjà noté en U7-T13).
|
||
|
|
- Unités compilées, dont tous les modules modifiés par C1+C2 : `LifePlay.cpp`, `LPHairstyleSubsystem.cpp`, `LPModDailies.cpp`, `LPModGuard.cpp`, `LPModInfoSubsystem.cpp`, `LPSettingsSubsystem.cpp`, `Module.LifePlay.cpp` (+ modules annexes `Module.LPAnimCore.cpp`, `Module.LPAnimMeasure.cpp`, `Module.ModdingExtra.cpp`, `Module.StreetMapRuntime.cpp`, `SharedPCH...cpp`). Toutes en `[NoUba]`.
|
||
|
|
- Observation : le résumé indique `Using Unreal Build Accelerator local executor to run 16 action(s)` (journal ligne 16) alors que `-NoUBA` est passé à UBT (journal ligne 2) ; les unités de compilation sont en `[NoUba]`. Sans effet relevé sur le résultat ; signalé pour trace.
|
||
|
|
- Dernière ligne du script : `code=0 duree=86s erreurs=0 avertissements=0 autres=0 unites=12`.
|
||
|
|
|
||
|
|
## 4. Étape c — UAT BuildCookRun Shipping, sans recompilation (établi)
|
||
|
|
- Commande exacte, lancée via un `.cmd` de scratchpad (`%USERPROFILE%\AppData\Local\Temp\claude\D--Game-LifePlay-master-5-5\ab8918a1-261f-45b4-904a-678ecfce98f7\scratchpad\U7T14_uat.cmd`), lui-même lancé par `Start-Process cmd.exe -ArgumentList '/c', '"<cmd>"' -Wait` :
|
||
|
|
`call "D:\Game\Launcher\Engine\UE_5.8\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun -project="D:\Game\LifePlay-master 5.8\LifePlay.uproject" -platform=Win64 -clientconfig=Shipping -cook -iterate -stage -pak -iostore -compressed -createreleaseversion=2026.10.2.0 -archive -archivedirectory=D:\Game\LifePlay_Build_5.8_Shipping_V2.0 -nodebuginfo -unattended -utf8output -nop4`
|
||
|
|
(pas de `-build` ; pas de `-basedonreleaseversion`, normal pour une référence).
|
||
|
|
- Code de sortie : **0** (`UAT_EXIT=0`, fichier `scratchpad\U7T14_c_stdout.txt`) ; `AutomationTool exiting with ExitCode=0 (Success)`.
|
||
|
|
- Durées : `BuildCookRun time: 254.89 s` ; `AutomationTool executed for 0h 4m 15s` (journal).
|
||
|
|
- Journal archivé : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\U7-T14_UAT_20261009-103453.log` (751 lignes).
|
||
|
|
- Étapes du journal (établi) : cuisson (`LogInit: Display: Success - 0 error(s), 1 warning(s)`, ligne 497) ; `UnrealEditor-Cmd.exe ExitCode=0` (cuisson, 192,53 s) ; `UnrealPak.exe ExitCode=0` (0,83 s, puis 10,35 s) ; `Stage command time: 39.31 s` ; `Archive command time: 21.21 s` ; `BUILD SUCCESSFUL`.
|
||
|
|
- Décompte cuisson : erreurs **0** ; avertissements **1** = `LogCook: Warning: CookIncremental and UnversionedCookedContent were requested, but LegacyIterative is required due to ZenStore not being used...` (avertissement connu, même que U7-T13). La ligne apparaît deux fois dans le journal (LogCook puis écho LogInit), l'avertissement n'est compté qu'une fois dans le résumé de cuisson.
|
||
|
|
- Incident de lancement (sans effet, établi) : une première tentative par Git Bash (`cmd.exe /c "<chemin>.cmd"`) n'a rien lancé : le shell a transformé l'argument `/c` en chemin, `cmd` a affiché sa bannière et quitté (`UAT_RC=0` trompeur). Vérifié : aucun journal UAT U7-T14 créé, `D:\Game\LifePlay_Build_5.8_Shipping_V2.0` absent, `Releases\2026.10.2.0` absent. Relancée à l'identique via `Start-Process` (pwsh) ; c'est cette exécution qui est rapportée ici. Règle : lancer les `cmd /c` depuis pwsh 7, pas depuis Git Bash.
|
||
|
|
|
||
|
|
## 5. Contrôles d) (établi, sauf mention)
|
||
|
|
| Contrôle | Commande / source | Valeur |
|
||
|
|
|---|---|---|
|
||
|
|
| `Releases\2026.10.2.0\Windows\AssetRegistry.bin` présent | `Test-Path` | **Présent**, 4 569 308 octets |
|
||
|
|
| `.utoc` identiques (hash) | `Get-FileHash -Algorithm SHA256` `LifePlay-Windows.utoc` | Releases `9D4BF712AAE693FCCF5612176FE12FC8008453FF0E1B4625BDD680F851BCFC24` = archive `9D4BF712...BCFC24` : **identiques** |
|
||
|
|
| `.ucas` identiques (hash) | idem `LifePlay-Windows.ucas` | Releases `A917DCBC78FF57D7646138D42DEBF9DDC92752628B5D49C4A19409488532FB9B` = archive `A917DCBC...32FB9B` : **identiques** |
|
||
|
|
| `LifePlay.exe` dans l'archive | `Get-ChildItem -Recurse` | `D:\Game\LifePlay_Build_5.8_Shipping_V2.0\Windows\LifePlay.exe`, 301 568 octets ; binaire jeu `...\Windows\LifePlay\Binaries\Win64\LifePlay-Win64-Shipping.exe`, 164 827 136 octets |
|
||
|
|
| Format conteneur (en-tête de conteneur, chunk type 6) | `python -I t14_ch.py <dossier>` (méthode de `t6\m6_all.py`) | **5** (Releases et archive) ; référence 5.5 `2026.10.1.5` : 4 |
|
||
|
|
| Format AssetRegistry | `python -I t14_check.py` (lecture `int32` à l'offset 16) | **24** dans le `.pak` (Releases et archive) et dans le `AssetRegistry.bin` loose de la référence ; référence 5.5 : 17 |
|
||
|
|
| Version pak | idem | 12 (5.8) ; 11 (5.5) |
|
||
|
|
| Champ « version » du TOC (`.utoc`) | idem | **8** (5.8 et 5.5 identiques) — voir § 6 |
|
||
|
|
|
||
|
|
- Note : l'archive ne contient pas de `AssetRegistry.bin` loose (le registre est dans le `.pak`, version 24) ; la référence `Releases` le garde en loose, comme prévu par S12 (`UA-MODS.md:52`). Absence attendue, pas un écart.
|
||
|
|
- Scripts : `m6_all.py` ne prend pas d'argument (chemins en dur, dont des builds 5.5 et des mods) ; il n'a pas été lancé. Adaptation dans le scratchpad : `t14_check.py` et `t14_ch.py` (lecture seule, même fonctions que `ue_containers.py`).
|
||
|
|
|
||
|
|
## 6. Tailles (établi)
|
||
|
|
- `Releases\2026.10.2.0` : **1 294 248 283 octets** (5 fichiers) : `AssetRegistry.bin` 4 569 308 ; `LifePlay-Windows.pak` 20 216 202 ; `LifePlay-Windows.ucas` 1 259 275 600 ; `LifePlay-Windows.utoc` 1 575 606 ; `Metadata\DevelopmentAssetRegistry.bin` 8 611 567.
|
||
|
|
- Archive `D:\Game\LifePlay_Build_5.8_Shipping_V2.0` : **2 023 983 534 octets** (2 220 fichiers).
|
||
|
|
- Références 5.5 rangées : `2026.10.1.5` 1 310 871 587 octets ; `2026.10.1.6` 1 319 106 195 octets.
|
||
|
|
|
||
|
|
## 7. Chemins de R2 (établi)
|
||
|
|
- `D:\Game\LifePlay_Backup_5.5\Releases\2026.10.1.5`
|
||
|
|
- `D:\Game\LifePlay_Backup_5.5\Releases\2026.10.1.6`
|
||
|
|
- Aucune suppression. Rien d'autre déplacé.
|
||
|
|
|
||
|
|
## 8. Écarts à la fiche et points à confirmer
|
||
|
|
1. **Champ « version » du `.utoc`** : la fiche attend 5. Le champ d'en-tête TOC lu par `toc_read` vaut **8**, pour la référence 5.5 comme pour la 5.8 (donc non discriminant). La version **5** est celle de l'en-tête de conteneur (chunk type 6), lue et conforme ; c'est vraisemblablement ce que la fiche vise. **Incertain** sur l'intention de la fiche : à trancher par l'orchestrateur (critère d'origine conservé, non réécrit).
|
||
|
|
2. Lancement UAT : premier essai sans effet (§ 4), relancé. Pas de conséquence sur le résultat.
|
||
|
|
3. Observation UBA (§ 3) : résumé `Using Unreal Build Accelerator local executor` malgré `-NoUBA`, unités `[NoUba]`.
|
||
|
|
4. Shipping : premier essai en 5.8 ; `-createreleaseversion` a produit la référence `2026.10.2.0` avec cuisson pak/IoStore (`bUseZenStore=False`).
|
||
|
|
5. Non vérifié (hors fiche) : jeu non lancé ; `Releases\2026.10.2.0` non installée ; R4 non faite.
|
||
|
|
|
||
|
|
## 9. Journaux et fichiers
|
||
|
|
- Résumé compilation : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\U7_Build_20261009-103224.txt`
|
||
|
|
- Journal compilation : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\U7_Build_20261009-103224.log`
|
||
|
|
- Journal UAT : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\U7-T14_UAT_20261009-103453.log`
|
||
|
|
- Journal UAT interne : `%USERPROFILE%\AppData\Roaming\Unreal Engine\AutomationTool\Logs\D+Game+Launcher+Engine+UE_5.8\` (`FinalCopyWin64_*.txt`)
|
||
|
|
- Scripts scratchpad (hors projet) : `U7T14_uat.cmd`, `t14_check.py`, `t14_ch.py`, `U7T14_c_stdout.txt`, `U7T14_b_stdout.txt`.
|
||
|
|
- Livrable : `D:\Game\LifePlay-master 5.5\Docs\Migration\etat\U58\U7\U7-T14-BUILD.md` (ce fichier).
|
||
|
|
|
||
|
|
## 10. Interdits respectés
|
||
|
|
Aucune source, config ni Content modifié ; aucun commit ; jeu non lancé ; `Mods\` vide ; déplacements limités aux deux dossiers `Releases` désignés ; aucune suppression ; une seule compilation et une seule cuisson à la fois.
|