205 lines
20 KiB
Markdown
205 lines
20 KiB
Markdown
|
|
Fiche OBB-T3 — Niveau N2 — Modèle prévu modèle de l'agent lp-impl | utilisé Opus 5.5 (claude-opus-5-5) — Agent lp-impl — Skills sk-protocol, ue-cpp-build, lp-build, lp-ue-compat (préchargés), sk-windows-shell (invoqué), lp-doc (gabarits.md lu)
|
||
|
|
# OBB-T3-IMPL : contrôle de paquet `Tools\CheckPackage.ps1` (B3 / G-OB-7), branché sur `BuildDebug.ps1` et `SplitModules.ps1` (2026-10-10)
|
||
|
|
|
||
|
|
Copie `D:\Game\LifePlay-master 5.8`, branche `ue5.8`, HEAD `b63196a` (= tag `OBB-avant`). Départ : `git status --short -- Tools`
|
||
|
|
vide (pas d'arrêt). Rien lancé hors `CheckPackage.ps1` et l'analyse syntaxique (ni UE, ni UAT, ni UBT, ni `BuildDebug.ps1`,
|
||
|
|
ni `SplitModules.ps1`). Sorties brutes : scratchpad
|
||
|
|
`%USERPROFILE%\AppData\Local\Temp\claude\D--Game-LifePlay-master-5-8\0b6366db-34d6-4803-8aee-2e309785cb38\scratchpad\obb-t3\`
|
||
|
|
(abrégé `SCR\`, un `.txt` par essai).
|
||
|
|
|
||
|
|
## 1. Fichiers modifiés (chemins, lignes)
|
||
|
|
- `D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1` : **neuf**, 228 lignes après la reprise (211 à la tentative 1), ASCII (0 octet non ASCII), fins de ligne LF
|
||
|
|
(comme `SplitModules.ps1`, `Build.ps1`, `Engine.ps1`). Paramètres `-Build` (obligatoire), `-Config Shipping|Development|DebugGame`
|
||
|
|
(absent : déduit de l'exe présent sous `Windows\LifePlay\Binaries\Win64`), `-ProjectRoot` (défaut : parent de `Tools`).
|
||
|
|
Contrôles :
|
||
|
|
- [1] `Windows\Manifest_NonUFSFiles_Win64.txt`, lecture par `[IO.File]::ReadLines`, motif
|
||
|
|
`(^|[\\/])Modules[\\/]\.git([\\/]|\s|$)` insensible à la casse (entrée exacte `Modules/.git` = `.git` fichier, ou
|
||
|
|
préfixe `Modules/.git/` = dossier) ; plus le disque : `Get-Item -LiteralPath <win>\LifePlay\Content\Modules\.git -Force`
|
||
|
|
(dossier ou fichier). Le compte affiché est celui du manifeste ; la présence sur disque est ajoutée en ligne fautive.
|
||
|
|
- [2] `Windows\Manifest_UFSFiles_Win64.txt` : lignes contenant `LPSandbox`.
|
||
|
|
- [3] `<ProjectRoot>\Intermediate\Build\Win64\x64\LifePlay\<Config>\<exe>.rsp` : lignes contenant `LPAnimMeasure`.
|
||
|
|
- [4] `<ProjectRoot>\Binaries\Win64\<exe sans .exe>.target` : entrées `"LPSandbox"` du seul tableau `"BuildPlugins"`.
|
||
|
|
- [3] et [4], **critère de rattachement (reprise, décision de l'orchestrateur, remplace le seuil de 2 h)** : le `.rsp` et
|
||
|
|
le `.target` ne valent pour le build contrôlé que si (a) l'exe du projet `<ProjectRoot>\Binaries\Win64\<exe>` a **la
|
||
|
|
même taille** que l'exe archivé `<Build>\Windows\LifePlay\Binaries\Win64\<exe>`, (b) **la même date** à 2 s près
|
||
|
|
(`$MaxExeGapSeconds = 2`), et (c) le fichier n'est **pas postérieur à l'exe du projet de plus de 10 min**
|
||
|
|
(`$MaxAfterExeMinutes = 10`). Sinon, ou fichier absent, ou exe absent : NON-CONCLUANT avec le motif (taille ou date
|
||
|
|
des deux exe citées). Fonction `Get-StaleReason` ; l'en-tête de sortie affiche les deux exe (chemin, date, taille).
|
||
|
|
La mise en scène garde la date de liaison (`Shipping_U8` : exe 17:56:48, dossier 18:12) ; le compte lu d'un fichier
|
||
|
|
non rattaché est affiché « non retenu ».
|
||
|
|
- Sortie : `[n] PASS|FAIL|NON-CONCLUANT <compte> <fichier>` puis 3 lignes fautives au plus (`numéro: texte`) ; ligne
|
||
|
|
finale `Resultat : … (code n)`. Codes : 0 = 4 PASS, 1 = un FAIL, 2 = NON-CONCLUANT sans FAIL, 3 = contrôle impossible.
|
||
|
|
- Noms par configuration, **lus sur le disque** (point (b) de la fiche) :
|
||
|
|
|
||
|
|
| Config | exe archivé (`Binaries\Win64`) | `.rsp` | `.target` | Lu sur |
|
||
|
|
|---|---|---|---|---|
|
||
|
|
| Shipping | `LifePlay-Win64-Shipping.exe` | `Shipping\LifePlay-Win64-Shipping.exe.rsp` | `LifePlay-Win64-Shipping.target` | `Shipping_U8`, projet 5.8 et 5.5 |
|
||
|
|
| Development | `LifePlay.exe` | `Development\LifePlay.exe.rsp` | `LifePlay.target` | `5.5_DC4`, `5.5_Development`, `5.8_STC_Development`, projet 5.8 et 5.5 |
|
||
|
|
| DebugGame | `LifePlay-Win64-DebugGame.exe` | `DebugGame\LifePlay-Win64-DebugGame.exe.rsp` | `LifePlay-Win64-DebugGame.target` | `5.5_DebugGame`, projet 5.5 (aucun DebugGame dans le projet 5.8) |
|
||
|
|
- `D:\Game\LifePlay-master 5.8\Tools\BuildDebug.ps1` : lignes 89-94 ajoutées (après `Write-Host "pdb copies=…"`, l. 88,
|
||
|
|
avant `Write-Host "archive=…"`) ; CRLF gardé (CR = LF = 96, contre 90 avant).
|
||
|
|
- `D:\Game\LifePlay-master 5.8\Tools\SplitModules.ps1` : lignes 39-45 ajoutées (après le contrôle du dossier des modules,
|
||
|
|
l. 37, avant `$assetMods`) ; LF gardé (CR = 0, LF = 167, contre 160 avant).
|
||
|
|
|
||
|
|
Diff complet (`git diff -- Tools`, 2 fichiers, 13 insertions, 0 suppression ; `CheckPackage.ps1` non suivi) :
|
||
|
|
```diff
|
||
|
|
--- a/Tools/BuildDebug.ps1
|
||
|
|
+++ b/Tools/BuildDebug.ps1
|
||
|
|
@@ -86,5 +86,11 @@ if (Test-Path $pdbSrc) {
|
||
|
|
}
|
||
|
|
}
|
||
|
|
Write-Host "pdb copies=$copied -> $bin"
|
||
|
|
+
|
||
|
|
+# Controle du paquet (B3 / G-OB-7) : .git des modules, addon LPSandbox (pak, .rsp, .target). Un build Development ou
|
||
|
|
+# DebugGame est aussi interdit d'addon depuis CHG-279 : tout code != 0 (FAIL, NON-CONCLUANT, erreur) arrete le script.
|
||
|
|
+& (Join-Path $PSScriptRoot 'CheckPackage.ps1') -Build $ArchiveDir -Config $Config -ProjectRoot $ProjectRoot
|
||
|
|
+$check = $LASTEXITCODE
|
||
|
|
+if ($check -ne 0) { exit $check }
|
||
|
|
Write-Host "archive=$ArchiveDir exe=$exe"
|
||
|
|
exit 0
|
||
|
|
--- a/Tools/SplitModules.ps1
|
||
|
|
+++ b/Tools/SplitModules.ps1
|
||
|
|
@@ -36,6 +36,13 @@ $cfg = Get-Content $Config -Raw | ConvertFrom-Json
|
||
|
|
$modules = Join-Path $Build 'Windows\LifePlay\Content\Modules'
|
||
|
|
if (-not (Test-Path $modules)) { throw "Dossier des modules introuvable : $modules" }
|
||
|
|
|
||
|
|
+# Controle du paquet (B3 / G-OB-7) avant tout deplacement : FAIL (code 1) ou controle impossible (3) = refus.
|
||
|
|
+# NON-CONCLUANT (2) : .rsp / .target du projet reecrits depuis ce build, signale sans bloquer.
|
||
|
|
+& (Join-Path $PSScriptRoot 'CheckPackage.ps1') -Build $Build
|
||
|
|
+$check = $LASTEXITCODE
|
||
|
|
+if ($check -eq 2) { Write-Warning 'CheckPackage : controle(s) NON-CONCLUANT(S) (voir ci-dessus), publication poursuivie' }
|
||
|
|
+elseif ($check -ne 0) { throw "CheckPackage en echec (code $check) : build refuse pour la publication" }
|
||
|
|
+
|
||
|
|
# Un build de distribution ne contient aucun mod d'assets installe (sa partie texte serait livree sans ses paquets) :
|
||
|
|
```
|
||
|
|
|
||
|
|
**Reprise (critère de rattachement), rejouée** (sorties `SCR\r2_*.txt`, même commande) :
|
||
|
|
|
||
|
|
| Essai | exe archivé | exe du projet | [1] | [2] | [3] / [4] | Code |
|
||
|
|
|---|---|---|---|---|---|---|
|
||
|
|
| `r2_shipping_u8` (`-Config Shipping`) | 164 823 552 o, 2026-10-09 17:56:48 | `…5.8\Binaries\Win64\LifePlay-Win64-Shipping.exe` 164 823 552 o, 20:08:50 | **FAIL 142** | **FAIL 1** | NON-CONCLUANT : « exe du projet d'une autre date : 2026-10-09 20:08:50 contre 2026-10-09 17:56:48 archive (meme taille 164823552 o) : relie depuis » ; compte lu 0, non retenu | 1 |
|
||
|
|
| `r2_dc4_p55` (`-ProjectRoot …5.5`) | 291 694 592 o, 2026-10-07 20:13:28 | `…5.5\Binaries\Win64\LifePlay.exe` 291 694 592 o, 20:13:28 | **PASS 0** | **PASS 0** | PASS 0 / PASS 0 | **0** |
|
||
|
|
| `r2_dc4` (projet 5.8 par défaut) | idem | `…5.8\…\LifePlay.exe` 330 207 744 o, 2026-10-10 09:57:34 | PASS 0 | PASS 0 | NON-CONCLUANT : « exe du projet d'une autre taille : 330207744 o (2026-10-10 09:57:34) contre 291694592 o archive : autre build » | 2 |
|
||
|
|
| `r2_stc_dev` | 330 207 744 o, 2026-10-10 09:57:34 | identique | FAIL 142 | PASS 0 | PASS 0 / PASS 0 | 1 |
|
||
|
|
| `r2_ap7_p55` (`-ProjectRoot …5.5`) | 141 238 784 o, 2026-10-07 02:26:56 | identique | PASS 0 | FAIL 2 | FAIL 1 (l. 619) / FAIL 1 (l. 3707) | 1 |
|
||
|
|
| `r2_dbg55_p55` (`-ProjectRoot …5.5`) | 291 868 672 o, 2026-10-04 12:41:24 | identique | PASS 0 | PASS 0 | PASS 0 / PASS 0 | 0 |
|
||
|
|
|
||
|
|
Relevé de l'orchestrateur confirmé (exe Shipping 5.8 et U8 : même taille, dates 20:08:50 / 17:56:48). Analyse syntaxique
|
||
|
|
après reprise : `CheckPackage.ps1 errors=0`, `BuildDebug.ps1 errors=0`, `SplitModules.ps1 errors=0`. `CheckPackage.ps1` :
|
||
|
|
CR = 0, LF = 228, 0 octet non ASCII, 0 occurrence de `MaxGapHours`. `git diff --stat -- Tools` inchangé (2 fichiers, +13).
|
||
|
|
|
||
|
|
Contrôles de la tentative 1 (seuil de 2 h, remplacé ; gardés pour trace), pwsh 7.6.6, `pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1" …` :
|
||
|
|
|
||
|
|
| Essai (`SCR\`) | Arguments | [1] | [2] | [3] | [4] | Code |
|
||
|
|
|---|---|---|---|---|---|---|
|
||
|
|
| `shipping_u8.txt` (**preuve par l'échec**) | `-Build D:\Game\LifePlay_Build_5.8_Shipping_U8 -Config Shipping` | **FAIL 142** (+ disque : dossier présent) | **FAIL 1** (`958: RemappedPlugins/LPSandbox/LPSandbox.uplugin`) | NON-CONCLUANT (écart 2,20 h : `.rsp` 2026-10-09 20:08:32, exe 17:56:48 ; compte lu 0) | NON-CONCLUANT (écart 2,20 h : `.target` 20:08:52 ; compte lu 0) | 1 |
|
||
|
|
| `dc4.txt` (**témoin**) | `-Build D:\Game\LifePlay_Build_5.5_DC4` (Development déduit) | **PASS 0** | **PASS 0** | NON-CONCLUANT (`.rsp` 5.8 du 2026-10-10 09:56:57, écart 61,72 h) | NON-CONCLUANT (écart 61,74 h) | 2 |
|
||
|
|
| `dc4_p55.txt` (témoin, projet d'origine) | `… DC4 -ProjectRoot 'D:\Game\LifePlay-master 5.5'` | PASS 0 | PASS 0 | PASS 0 | PASS 0 | 0 |
|
||
|
|
| `ap7_p55.txt` (témoin positif de [2]-[4]) | `-Build D:\Game\LifePlay_Build_5.5_Shipping_AP7 -ProjectRoot '…5.5'` | PASS 0 | FAIL 2 (`851: RemappedPlugins/LPSandbox/LPSandbox.uplugin`, `1547: LifePlay/Config/LPSandbox.ini`) | FAIL 1 (`619: …\LPAnimMeasure\Module.LPAnimMeasure.cpp.obj`) | FAIL 1 (`3707: "LPSandbox",`) | 1 |
|
||
|
|
| `stc_dev.txt` | `-Build D:\Game\LifePlay_Build_5.8_STC_Development` | FAIL 142 | PASS 0 | PASS 0 | PASS 0 | 1 |
|
||
|
|
| `dbg55_p55.txt` (noms DebugGame) | `-Build D:\Game\LifePlay_Build_5.5_DebugGame -ProjectRoot '…5.5'` | PASS 0 | PASS 0 | PASS 0 | PASS 0 | 0 |
|
||
|
|
| `absent.txt` | `-Build D:\Game\LifePlay_Build_inexistant` | — | — | — | — | 3 (« controle impossible : Impossible de trouver le chemin d'accès… ») |
|
||
|
|
|
||
|
|
- Les 0 du témoin DC4 ne sont pas un échec de méthode : chaque contrôle a rendu un FAIL ailleurs ([1] 142 sur U8 et STC ;
|
||
|
|
[2], [3], [4] sur AP7) ; le manifeste NonUFS de DC4 compte 2 053 lignes `^LifePlay/Content/Modules/` (Grep, count) et le
|
||
|
|
`.rsp` Development 5.5 cite `LPAnimCore` (1, Grep count) : fichiers lus et pertinents.
|
||
|
|
- Mécanisme des branchements (sans lancer les deux scripts) : `pwsh -NoProfile -Command '$ErrorActionPreference="Stop";
|
||
|
|
& "…\Tools\CheckPackage.ps1" -Build "…Shipping_U8" *> $null; "LASTEXITCODE=$LASTEXITCODE"; & … DC4 -ProjectRoot …5.5'`
|
||
|
|
→ `LASTEXITCODE=1 (appelant toujours vivant)` puis `LASTEXITCODE=0` : `exit n` du script appelé par `&` renseigne
|
||
|
|
`$LASTEXITCODE` sans fermer l'appelant [ét.].
|
||
|
|
- Analyse syntaxique : `[System.Management.Automation.Language.Parser]::ParseFile(<fichier>,[ref]$t,[ref]$e)` →
|
||
|
|
`CheckPackage.ps1 errors=0`, `BuildDebug.ps1 errors=0`, `SplitModules.ps1 errors=0` (versions HEAD : 0 et 0). Un premier
|
||
|
|
essai lancé depuis Git Bash avait affiché 1 pour les trois fichiers : guillemets de `$e` mangés par bash (artefact de la
|
||
|
|
commande, refait en `pwsh -Command '…'` à guillemets simples).
|
||
|
|
|
||
|
|
## 2. Écarts à la SPEC (obligatoire)
|
||
|
|
1. **Code 3** (contrôle impossible : build introuvable, configuration non déduite, erreur de lecture) ajouté aux codes
|
||
|
|
0/1/2 de la fiche, pour ne pas confondre une erreur avec un FAIL (une exception non rattrapée rendrait 1 sous `pwsh -File`).
|
||
|
|
2. **`SplitModules.ps1` : le code 3 refuse aussi (`throw`)**, pas seulement le FAIL : un contrôle qui n'a pas pu tourner ne
|
||
|
|
doit pas laisser passer une publication. NON-CONCLUANT (2) : `Write-Warning`, la publication continue (la fiche ne
|
||
|
|
demande le `throw` que pour FAIL). À trancher par l'orchestrateur (Constats 2).
|
||
|
|
3. **`BuildDebug.ps1`** : tout code ≠ 0 sort avec ce code, comme demandé ; cela inclut NON-CONCLUANT (2) et 3.
|
||
|
|
4. Repli `WindowsNoEditor` si `<Build>\Windows` manque (même repli que `BuildDebug.ps1:64-66`) ; sans effet sur les builds 5.x.
|
||
|
|
5. Compte de [1] = lignes du manifeste seulement (142 attendu) ; le `.git` sur disque est une ligne fautive en plus et
|
||
|
|
suffit à rendre FAIL. Manifeste absent et `.git` absent du disque : NON-CONCLUANT.
|
||
|
|
6. Compte `-` (au lieu d'un nombre) quand le fichier n'est pas lu ou que sa lecture n'est pas retenue (NON-CONCLUANT).
|
||
|
|
7. [2] cherche `LPSandbox` dans toute la ligne (comme la fiche) : sur AP7 il relève aussi `LifePlay/Config/LPSandbox.ini`.
|
||
|
|
|
||
|
|
Décisions de l'orchestrateur à la reprise : écarts 1 (code 3), 2 (`SplitModules` : 2 = avertissement, 1 et 3 = refus) et 4
|
||
|
|
(repli `WindowsNoEditor`) **acceptés**. Seuil de 2 h **remplacé** par le critère de rattachement du § 1 (taille et date de
|
||
|
|
l'exe du projet, `.rsp` / `.target` au plus 10 min après) : appliqué tel que demandé, sans autre écart.
|
||
|
|
|
||
|
|
## 3. Instantané (lot, manifeste)
|
||
|
|
Pris par l'orchestrateur avant l'envoi : `D:\Game\LifePlay_Backup_5.5\OBB\manifest.csv`. Concordance relevée au départ :
|
||
|
|
`md5sum Tools/BuildDebug.ps1 Tools/SplitModules.ps1` → `ffe1bc2f8007240bc841af3fc0adda25`, `1c42108efb53d3e04d20ffed0f0427b5`
|
||
|
|
(= FFE1BC2F…, 1C42108E… de la fiche). Après : `d01647ac47f1cf2bf284e84964cbedcc`, `43ae1bf6fc1cf891b41724fc0e53b4ac` ;
|
||
|
|
`CheckPackage.ps1` neuf `7173f917718c206dd6750064ac1a224f` après la reprise (`ed1f478e…` à la tentative 1). Retour arrière : `Tools\Restore.ps1 -Lot OBB` (proposé seulement)
|
||
|
|
et retrait de `Tools\CheckPackage.ps1` (déplacer vers la sauvegarde, ne pas supprimer).
|
||
|
|
|
||
|
|
## 4. Ce qui n'a pas été fait
|
||
|
|
- `BuildDebug.ps1` et `SplitModules.ps1` ne sont **pas exécutés** (interdit : UAT, déplacements) ; leur branchement n'est
|
||
|
|
prouvé que par l'analyse syntaxique, le diff et l'essai du mécanisme `&` / `$LASTEXITCODE` (§ 1).
|
||
|
|
- [3]/[4] concluants sur `Shipping_U8` : impossibles, le `.rsp` et le `.target` Shipping du projet 5.8 ont été réécrits à
|
||
|
|
20:08 le 2026-10-09 (build du correctif CHG-279, estimé d'après `OBB-T6-INV.md:110` et la date du commit `67d3e68` 20:12) ;
|
||
|
|
l'exe Shipping du projet date aussi de 20:08:50, contre 17:56:48 dans l'archive. L'attendu « (3) ≥ 1, (4) présent »
|
||
|
|
(`OBA-T5-EVAL.md:98`) n'est donc pas rejouable sur U8 ; il est rejoué sur AP7 5.5 (FAIL 1 et FAIL 1).
|
||
|
|
- Règle (c) du rattachement (`.rsp` / `.target` postérieur de plus de 10 min à l'exe du projet) : **non exercée** par un
|
||
|
|
cas réel ; aucun build existant ne la déclenche et la provoquer demanderait de toucher aux dates des fichiers du projet
|
||
|
|
(interdit). Seules (a) taille (DC4 contre projet 5.8) et (b) date (U8 contre projet 5.8) ont rendu NON-CONCLUANT.
|
||
|
|
- Aucun build DebugGame 5.8 n'existe : les noms DebugGame sont ceux de la copie 5.5 (même cible `LifePlay`, mêmes règles
|
||
|
|
de nommage d'UBT : estimé).
|
||
|
|
- Aucun skill ni doc modifié ; texte proposé pour la fiche DOC (consigne des fiches qui lancent UAT directement) en Constats 4.
|
||
|
|
|
||
|
|
## 5. Points à confirmer en VAL
|
||
|
|
- `pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1" -Build D:\Game\LifePlay_Build_5.8_Shipping_U8 -Config Shipping` → `[1] FAIL 142`, `[2] FAIL 1`, `[3]`/`[4]` NON-CONCLUANT avec le motif « exe du projet d'une autre date : 2026-10-09 20:08:50 contre 2026-10-09 17:56:48 archive (meme taille 164823552 o) », code 1.
|
||
|
|
- `pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1" -Build D:\Game\LifePlay_Build_5.5_DC4 -ProjectRoot 'D:\Game\LifePlay-master 5.5'` → 4 PASS, code 0 (sans `-ProjectRoot` : `[1]`/`[2]` PASS, `[3]`/`[4]` NON-CONCLUANT motif « autre taille : 330207744 o … contre 291694592 o », code 2).
|
||
|
|
- Règle (c) des 10 min : relue dans `Get-StaleReason` (non exercée par un cas réel, § 4).
|
||
|
|
- `pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1" -Build D:\Game\LifePlay_Build_5.5_Shipping_AP7 -ProjectRoot 'D:\Game\LifePlay-master 5.5'` → [2], [3], [4] FAIL (détection positive de chaque contrôle).
|
||
|
|
- `ParseFile` = 0 erreur pour `Tools\CheckPackage.ps1`, `Tools\BuildDebug.ps1`, `Tools\SplitModules.ps1`.
|
||
|
|
- `git diff --stat -- Tools` = 2 fichiers, 13 insertions ; `git status --short -- Tools` = ces 2 `M` + `?? Tools/CheckPackage.ps1`, rien d'autre.
|
||
|
|
- Fins de ligne : `BuildDebug.ps1` CRLF (CR = LF = 96), `SplitModules.ps1` LF (CR = 0), `CheckPackage.ps1` LF, ASCII.
|
||
|
|
- Aucune écriture dans les dossiers de build, `Intermediate`, `Binaries` : dates des fichiers lus inchangées (`.rsp` Shipping 5.8 2026-10-09 20:08:32, `LifePlay.target` 5.8 2026-10-10 09:57:35).
|
||
|
|
- Écarts 1, 2 et 4 du § 2 : acceptés par l'orchestrateur à la reprise ; vérifier que le code relu leur correspond (`exit 3` dans le `catch`, `Write-Warning` sur 2 et `throw` sur 1 / 3 dans `SplitModules.ps1`).
|
||
|
|
- Premier vrai passage par `BuildDebug.ps1` (prochain build, file du Big Boss) : 4 PASS attendus pour [2]-[4] ; [1] FAIL tant que P1 (sortie du `.git` de `Content\Modules`) n'est pas appliqué, donc **`BuildDebug.ps1` sortira en code 1 après l'archivage** jusque-là (Constats 1).
|
||
|
|
|
||
|
|
## 6. Fichiers à commiter
|
||
|
|
Dépôt du jeu `D:\Game\LifePlay-master 5.8`, branche `ue5.8` :
|
||
|
|
- `A Tools/CheckPackage.ps1`
|
||
|
|
- `M Tools/BuildDebug.ps1`
|
||
|
|
- `M Tools/SplitModules.ps1`
|
||
|
|
- `A Docs/Migration/etat/OB/OBB/OBB-T3-IMPL.md` (ce livrable)
|
||
|
|
|
||
|
|
Tours : 14 / 40 (tentative 1) ; reprise courte : 6 / 12
|
||
|
|
|
||
|
|
## Constats
|
||
|
|
1. **Conséquence immédiate à connaître** : tant que `Content\Modules\.git` existe dans la copie 5.8 (P1 de
|
||
|
|
`OBA-T23-PROJ-CART.md:133` non appliqué), tout build mis en scène le contient ([1] FAIL 142 sur `STC_Development`,
|
||
|
|
build du 2026-10-10). `BuildDebug.ps1` archivera donc le build puis sortira en code 1 (les `.bat` et PDB sont déjà
|
||
|
|
copiés, l'archive reste sur le disque). C'est le comportement voulu par la fiche ; à rappeler aux fiches BUILD qui
|
||
|
|
l'utilisent avant P1.
|
||
|
|
2. **Seuil de 2 h remplacé (reprise)**. Tentative 1 : sur `Shipping_U8`, l'écart n'était que de 2,20 h ; un seuil de 3 h
|
||
|
|
aurait lu le `.rsp` du build suivant (correctif CHG-279, compte 0) comme celui d'U8 (faux PASS), et une recompilation
|
||
|
|
faite moins de 2 h après un empaquetage aurait été prise pour le build contrôlé. Appliqué à la demande de l'orchestrateur :
|
||
|
|
l'exe du projet doit avoir la même taille et la même date (≤ 2 s) que l'exe archivé, et le `.rsp` / `.target` ne pas lui
|
||
|
|
être postérieur de plus de 10 min. Résultat : U8 reste NON-CONCLUANT pour le bon motif (même taille 164 823 552 o, exe
|
||
|
|
relié à 20:08:50, preuve qu'un relink sans changement de taille est bien vu) ; DC4 contre projet 5.5 devient concluant
|
||
|
|
(4 PASS) ; DC4 contre projet 5.8 est refusé sur la taille. Limite restante [est.] : deux liaisons du même code à moins
|
||
|
|
de 2 s d'écart et de même taille ne se distinguent pas (cas improbable : la date d'une liaison UBT est celle de l'exe
|
||
|
|
écrit, une nouvelle liaison la change) ; un `.rsp` réécrit sans relink (action annulée avant la liaison) dans les 10 min
|
||
|
|
suivant l'exe passerait aussi.
|
||
|
|
3. NON-CONCLUANT dans `SplitModules.ps1` : non bloquant ici (fiche : seul FAIL bloque). Pour une publication, [3]/[4] seront
|
||
|
|
souvent non concluants (le projet est recompilé après l'empaquetage). Décision proposée à l'orchestrateur : bloquer aussi
|
||
|
|
sur 2 en publication, ou garder le `.rsp`/`.target` dans l'archive au moment de `BuildDebug.ps1` (copie dans un sous-dossier
|
||
|
|
de l'archive, contrôlée ensuite par `CheckPackage.ps1`) ; les deux sont hors fiche.
|
||
|
|
4. **Texte prêt pour la fiche DOC** (consigne des fiches qui lancent UAT directement, skill `lp-build` § 4, non modifié ici) :
|
||
|
|
« Tout empaquetage lancé par UAT hors `Tools\BuildDebug.ps1` (cas U8) est suivi, aussitôt après l'archivage et avant
|
||
|
|
tout autre build, de `pwsh -NoProfile -File "<copie>\Tools\CheckPackage.ps1" -Build <dossier d'archive> -Config <cfg>`
|
||
|
|
(lecture seule). Code 0 = 4 PASS ; 1 = FAIL : build refusé pour la publication et pour la VAL de publication ; 2 =
|
||
|
|
NON-CONCLUANT : `.rsp` / `.target` du projet réécrits depuis ce build, relancer le contrôle avant toute recompilation ;
|
||
|
|
3 = contrôle impossible. Le compte rendu BUILD recopie les 4 lignes `[n]` et le code. »
|
||
|
|
5. [1] ne couvre que `Modules/.git` (racine du dépôt des modules), comme la fiche ; un `.git` d'un sous-module
|
||
|
|
(`Modules/<module>/.git`) ne serait pas relevé. Extension possible : motif `(^|/)\.git(/|$)` sur tout le manifeste NonUFS.
|
||
|
|
6. Fichiers hors périmètre vus dans `git status --short` en fin de session (autres sessions, non touchés) :
|
||
|
|
`M Docs/Migration/etat/ST/STE/STE-TACHES.md`, `?? Docs/Migration/etat/OB/OBB/OBB-T1-SPEC.md`, `?? …/OBB-T1a-INV.md`,
|
||
|
|
`?? Docs/Migration/etat/ST/STE/STE-D-INV.md` (absents du statut initial de la session).
|