LifePlay-Revival/Docs/Migration/etat/U58/UA/UA-ESSAI.md

84 lines
7.5 KiB
Markdown
Raw Normal View History

# UA-ESSAI : essai de compilation UE 5.8 sur copie jetable
Fiche UA-T5 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet
Statut : essais A, A1, A2 et B refaits sur moteur 5.8.3 COMPLET (Fab et Bridge présents). La section finale « moteur incomplet » est conservée, marquée NON PROBANTE.
## 1. Environnement (établi)
- Moteur : UE 5.8.3, `D:\Game\Launcher\Engine\UE_5.8`. DotNet embarqué 10.0 win-x64.
- Toolchain retenue par UBT (A1, A2, B ; ligne du log) : `Using Visual Studio 14.50.35739 toolchain (C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717) and Windows 10.0.22621.0 SDK`. Aucun réglage forcé. (Sur le moteur incomplet, UBT avait choisi VS2022 14.44.35207, `D:\Game\VS2022`.)
- Commande (identique pour tous) : `& 'D:\Game\Launcher\Engine\UE_5.8\Engine\Build\BatchFiles\Build.bat' LifePlayEditor Win64 Development -Project='D:\Game\U58-essai\LifePlay\LifePlay.uproject' -WaitMutex -NoHotReload *> essai-X.log`
- Avant la reprise, `Intermediate` et `Binaries` de la copie ont été supprimés (dans la copie seulement).
## 2. Modifications de la copie `D:\Game\U58-essai`
- `LifePlay.uproject` : `EngineAssociation` = "5.8" (seule différence avec le projet réel ; les `Optional` ajoutés à Fab/Bridge ont été retirés). L'entrée McpAutomationBridge (déjà `Optional: true` à l'origine) n'a PAS été passée à `Enabled: false` en B : le plugin absent du disque est simplement ignoré (écart à la consigne, sans effet constaté).
- `Source/LifePlay.Target.cs` et `Source/LifePlayEditor.Target.cs` : A = d'origine (V5 / Unreal5_5) ; A1 = + `bOverrideBuildEnvironment = true;` ; A2 et B = `DefaultBuildSettings = BuildSettingsVersion.Latest`, `IncludeOrderVersion = EngineIncludeOrderVersion.Latest`, sans override.
- B : `Plugins\McpAutomationBridge` déplacé vers `D:\Game\U58-essai\_ecarte\`.
- Aucune correction de code C++. Aucun fichier modifié hors de la copie (hors ce livrable).
## 3. Résultats par passage
| Passage | Code de sortie | Durée UBT | Erreurs C++ | Avertissements C4996 | Actions |
|---|---|---|---|---|---|
| A (d'origine) | 6 | 9,9 s | 0 (échec de règle de cible, avant compilation) | 0 (16 lignes [Upgrade]/CS0618) | 0 |
| A1 (override) | 6 | 1588,5 s (26,5 min) | 5 lignes (2 causes) | 9 | 120 compilations lancées sur 143 |
| A2 (Latest) | 6 | 1528,1 s (25,5 min) | 5 lignes (mêmes) | 9 (mêmes) | 109 sur 132 |
| B (A2 sans Mcp) | 6 | 292,7 s (4,9 min) | 5 lignes (mêmes) | 7 | 71 sur 132 |
Cohérence : code de sortie 6 avec 5 lignes d'erreur (1 C2039, 2 C2143, 1 C2530, 1 C2664) ; le log A n'a aucune erreur de compilation mais l'erreur de cible ci-dessous.
Arrêt : UBT n'est PAS limité au premier module en échec (A1 et A2 compilent des dizaines de modules après l'échec), mais il abandonne les actions restantes après l'échec ; les actions non lancées (23 en A1, 23 en A2, davantage en B) ne sont pas mesurées. En B, LifePlayEditorTools et LPModTools n'ont pas été atteints : d'où 2 avertissements de moins, pas un effet de Mcp.
### A : blocage de cible (établi, confirmé sur moteur complet)
`LifePlayEditor modifies the values of properties: [ UndefinedIdentifierWarningLevel: Off != Error, UnreachableCodeWarningLevel: Off != Error, ReturnTypeWarningLevel: Off != Error, DanglingWarningLevel: Off != Error ]. This is not allowed, as LifePlayEditor has build products in common with UnrealEditor.` Cause : V5 dans `LifePlayEditor.Target.cs`. A1 (override) et A2 (Latest) passent la règle.
### Erreurs (identiques A1, A2, B ; dédupliquées)
| Cause | Fichier:ligne | Module | Extrait | Prévu UA |
|---|---|---|---|---|
| `UAnimSequence::GetCompressedTrackToSkeletonMapTable` supprimée (C2039 ; C2530 et 2 x C2143 en cascade) | `Plugins/LPAnimCore/Source/LPAnimCore/LPCoupleSimCore.cpp:127` | LPAnimCore | `'GetCompressedTrackToSkeletonMapTable' n'est pas membre de 'UAnimSequence'` | non (la prévision portait sur GetBoneTransform :155) |
| `TMap<FString,...>::Contains` avec clé du nouveau type `UE::JSON::Private::FJsonObjectSharedStringStorage::FStringType` (C2664) | `Plugins/ModdingExtra/Source/ModdingExtra/Private/LPDataCache.cpp:198` | ModdingExtra | `impossible de convertir l'argument 1 de 'const T' en 'const FString &'` | non (imprévu) |
### Avertissements C4996 (9 en A1/A2, 7 en B ; dédupliqués)
| API dépréciée | Fichier:ligne | Module | Prévu UA |
|---|---|---|---|
| `UMeshComponent::GetMaterialRelevance(ERHIFeatureLevel)` -> EShaderPlatform | `StreetMap/Source/StreetMapRuntime/StreetMapSceneProxy.cpp:21` | StreetMapRuntime | oui |
| `IDetailLayoutBuilder::GetDetailsView` -> GetDetailsViewSharedPtr | `StreetMapImporting/StreetMapComponentDetails.cpp:36, 51` | StreetMapImporting | non |
| `FSlateFontInfo` ctor -> FCompositeFont | `StreetMapComponentDetails.cpp:157, 165, 173` | StreetMapImporting | non |
| `UStaticMesh::ImportVersion` accès direct | `StreetMapComponentDetails.cpp:299` | StreetMapImporting | non |
| `GetObjectsWithPackage(bool)` -> EGetObjectsFlags | `Source/LifePlayEditorTools/LPDumpAssetsCommandlet.cpp:110` | LifePlayEditorTools | non (absent en B, module non atteint) |
| `FStaticToSkeletalMeshConverter::InitializeSkeletalMeshFromMeshDescriptions` -> FInitializationParams | `LifePlay-Sandbox/.../LPModTools/LPHairFromStaticMeshCommandlet.cpp:430` | LPModTools (LPSandbox) | non (absent en B, module non atteint) |
### Effets
- A1 (API seule) : 2 causes d'erreur (5 lignes), 9 avertissements.
- A2 moins A1 (réglages stricts 5.8) : aucun écart détecté ; les niveaux ReturnType, Unreachable, UndefinedIdentifier, Dangling n'ont rien produit sur les modules compilés (modules non atteints non mesurés, donc non exclu).
- B moins A2 (part de McpAutomationBridge) : aucune erreur ni avertissement imputable à Mcp, qui compile sans erreur sous 5.8 (55 actions Mcp en A2 ; durée 25,5 -> 4,9 min). Fab et Bridge actifs sans erreur de plugin.
## 4. Confrontation aux prévisions
- Fab et Bridge absents de 5.8 : INFIRMÉ (présents, chargés sans erreur).
- `GetBoneTransform(..., double Time, ...)` à LPCoupleSimCore.cpp:155 / LPPoseMeasure.cpp ~1283 : NON CONFIRMÉ. Aucune erreur à la ligne 155 ni dans LPAnimMeasure (Module.LPAnimMeasure.cpp compilé sans erreur). Incertain pour :155 : le fichier échoue à la ligne 127 et une erreur de syntaxe peut masquer d'autres erreurs de la même unité.
- Dépréciation `GetMaterialRelevance` (StreetMap) : CONFIRMÉ (C4996, ligne 21).
- Imprévus : blocage de cible V5 ; `GetCompressedTrackToSkeletonMapTable` (LPCoupleSimCore:127) ; `LPDataCache.cpp:198` ; 7 autres C4996.
## 5. Établi / estimé / incertain
- Établi : tout ce qui précède pour les modules compilés.
- Estimé : après correction des 2 causes, d'autres erreurs peuvent apparaître dans LPCoupleSimCore.cpp (ligne 155) et dans les modules non atteints.
- Incertain : bilan complet des avertissements (modules non atteints) ; effet réel des niveaux stricts.
## 6. Logs (`D:\Game\U58-essai`)
`essai-A.log/.rc`, `essai-A1.log/.rc`, `essai-A2.log/.rc`, `essai-B.log/.rc`. Anciens logs (moteur incomplet) : `essai-A-incomplet.log/.rc`, `essai-A1-incomplet.log/.rc`, `essai-A2-incomplet.log` (interrompu), `essai-A1-void.log/.rc` (passage nul : édition Target.cs échouée).
---
# Section « moteur incomplet » — NON PROBANTE
Résultats obtenus alors que l'installation 5.8 n'était pas terminée (toolchain VS2022 14.44, Fab/Bridge alors considérés absents). A : même blocage de cible. A1 : mêmes 5 lignes d'erreur et 9 avertissements en 2110 s. A2 : interrompu à 45/143 actions. Conservés pour trace seulement.