Normalize tracked text for Linux CI
This commit is contained in:
13
.gitattributes
vendored
13
.gitattributes
vendored
@@ -64,10 +64,9 @@
|
|||||||
*.woff2 binary
|
*.woff2 binary
|
||||||
*.zip binary
|
*.zip binary
|
||||||
|
|
||||||
# These generated files currently have CRLF committed by generator contract.
|
# Generated references are ordinary canonical-LF text. Their whitespace
|
||||||
# Preserve their bytes while retaining textual diffs until the generators and
|
# exceptions preserve generator-owned formatting without disabling EOL policy.
|
||||||
# their committed output are deliberately migrated together.
|
docs/opcode-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol
|
||||||
docs/opcode-reference.md -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
|
docs/global-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol
|
||||||
docs/global-reference.md -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
|
docs/engine-ctx-reference.md whitespace=trailing-space,space-before-tab,cr-at-eol
|
||||||
docs/engine-ctx-reference.md -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
|
tools/age_opcodes_himegari.py whitespace=trailing-space,space-before-tab,cr-at-eol
|
||||||
tools/age_opcodes_himegari.py -text -eol diff whitespace=trailing-space,space-before-tab,cr-at-eol
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ S:\Game Hacking\Eushully\Himegari\ ← workspace root (three siblings)
|
|||||||
├── README.md navigation-only repository front door; canonical facts stay in docs/
|
├── README.md navigation-only repository front door; canonical facts stay in docs/
|
||||||
├── global.json pins the validated .NET 8 SDK feature band
|
├── global.json pins the validated .NET 8 SDK feature band
|
||||||
├── .editorconfig / .gitattributes UTF-8, indentation, text/EOL, and binary-file policy;
|
├── .editorconfig / .gitattributes UTF-8, indentation, text/EOL, and binary-file policy;
|
||||||
│ generator-owned CRLF references retain their committed bytes
|
│ tracked source and generated references use canonical LF
|
||||||
├── run-godot.ps1 / run-godot.cmd tracked development launcher + Windows wrapper;
|
├── run-godot.ps1 / run-godot.cmd tracked development launcher + Windows wrapper;
|
||||||
│ resolves Godot/game-root from parameters, environment,
|
│ resolves Godot/game-root from parameters, environment,
|
||||||
│ PATH, and the conventional sibling install
|
│ PATH, and the conventional sibling install
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ claiming portable exports.
|
|||||||
| Game-install, runtime metadata, and repository discovery | `GameRootSelection` accepts `--game-root`, then probes the executable directory and current working directory for `SYS4INI.BIN`; on Unix the frontend prefers inherited shell `PWD` because Godot may change the process directory during project startup. Godot injects the selected root into its catalog and loose-first ALF store. `Himegari.csproj` embeds generated `build/opcodes.json`, and the frontend loads that assembly resource rather than `Paths.OpcodesJson`. `Paths.cs` remains a development/test locator; its page-map use is compiled only for `TOOLS` builds | Installed game data and packaged VM metadata no longer depend on the workspace sibling layout. The Linux export passed an explicit absolute game root outside the repository and read the installed archives. Exported automatic page maps use `user://diagnostics/page-maps`; editor/development runs preserve `build/page-map-<SCENE>.jsonl` | Let the future profile launcher pass `--game-root`, and run executable-directory/CWD plus case/permission smoke gates on Linux and macOS |
|
| Game-install, runtime metadata, and repository discovery | `GameRootSelection` accepts `--game-root`, then probes the executable directory and current working directory for `SYS4INI.BIN`; on Unix the frontend prefers inherited shell `PWD` because Godot may change the process directory during project startup. Godot injects the selected root into its catalog and loose-first ALF store. `Himegari.csproj` embeds generated `build/opcodes.json`, and the frontend loads that assembly resource rather than `Paths.OpcodesJson`. `Paths.cs` remains a development/test locator; its page-map use is compiled only for `TOOLS` builds | Installed game data and packaged VM metadata no longer depend on the workspace sibling layout. The Linux export passed an explicit absolute game root outside the repository and read the installed archives. Exported automatic page maps use `user://diagnostics/page-maps`; editor/development runs preserve `build/page-map-<SCENE>.jsonl` | Let the future profile launcher pass `--game-root`, and run executable-directory/CWD plus case/permission smoke gates on Linux and macOS |
|
||||||
| Archive parity oracle | One integration test launches `bin/BinExtractALF.exe` | Windows-only test helper, not a shipped runtime dependency | Skip/replace on non-Windows CI; runtime ALF/AAI readers do not depend on it |
|
| Archive parity oracle | One integration test launches `bin/BinExtractALF.exe` | Windows-only test helper, not a shipped runtime dependency | Skip/replace on non-Windows CI; runtime ALF/AAI readers do not depend on it |
|
||||||
| Native RE tools | Frida/Ghidra helpers target the original `AGE.EXE`; supporting utilities include Windows executables and Windows command conventions | Development/research only | Keep separate from export requirements; document platform prerequisites per tool |
|
| Native RE tools | Frida/Ghidra helpers target the original `AGE.EXE`; supporting utilities include Windows executables and Windows command conventions | Development/research only | Keep separate from export requirements; document platform prerequisites per tool |
|
||||||
| Python workflow | Operating guide uses Windows `py -3.11` invocation | Developer workflow only | Add equivalent `python3` instructions if non-Windows development becomes active |
|
| Python workflow and core CI | The operating guide uses Windows `py -3.11`; `validate.py` launches child tools through `sys.executable` and has POSIX process-group cleanup plus `ps`-based leak auditing | The asset-independent core gate is platform-neutral. Tracked generated references and the engine solution/project files now have canonical LF blobs, so Linux regeneration and a fresh checkout do not acquire EOL-only drift | Run the first hosted gate on Linux with an explicitly provisioned Python 3.11 interpreter and `python -X utf8 tools/validate.py --level core`; keep private corpus and Godot runtime phases outside public CI |
|
||||||
|
|
||||||
No authored runtime code currently calls native DirectSound, Direct3D, Vulkan, Metal, or OpenGL. Mentions of
|
No authored runtime code currently calls native DirectSound, Direct3D, Vulkan, Metal, or OpenGL. Mentions of
|
||||||
those APIs in `docs/engine-re.md` describe the original AGE implementation. Both the software-oracle display
|
those APIs in `docs/engine-re.md` describe the original AGE implementation. Both the software-oracle display
|
||||||
|
|||||||
@@ -912,6 +912,14 @@ do not mix mechanical moves with semantic changes.
|
|||||||
gate remain green under the tracked policy. Item 2, a CI workflow calling that same core gate, is the next
|
gate remain green under the tracked policy. Item 2, a CI workflow calling that same core gate, is the next
|
||||||
safe slice.
|
safe slice.
|
||||||
|
|
||||||
|
**Linux CI preparation (2026-08-03):** the eight legacy text blobs that prevented a clean Linux checkout or
|
||||||
|
generated-reference comparison are now deliberately normalized to canonical LF: the engine solution, three
|
||||||
|
engine project files, three generated Markdown references, and the generated Himegari opcode module. The
|
||||||
|
generated files are once again ordinary text under the repository EOL policy; their existing whitespace
|
||||||
|
exceptions do not disable normalization. Regeneration through all three owning tools is clean, Windows core
|
||||||
|
validation remains green, and a Linux Git comparison reports no unstaged EOL drift. The first hosted CI job
|
||||||
|
can therefore target Linux rather than carrying forward a Windows-runner dependency.
|
||||||
|
|
||||||
**Not cleanup targets:** generated `build/` output, the two intentional solution files, historical
|
**Not cleanup targets:** generated `build/` output, the two intentional solution files, historical
|
||||||
`docs/superpowers/` plans/specifications, and fidelity-specific complexity that is directly covered by the
|
`docs/superpowers/` plans/specifications, and fidelity-specific complexity that is directly covered by the
|
||||||
native ABI. Reorganization is successful when ownership and reproduction become clearer, not when the raw
|
native ABI. Reorganization is successful when ownership and reproduction become clearer, not when the raw
|
||||||
@@ -1259,8 +1267,9 @@ layer's rendering diverges from ADV; save layout.
|
|||||||
|
|
||||||
## 8. Immediate next step
|
## 8. Immediate next step
|
||||||
Continue step 5 of the **codebase consolidation** maintenance slice with an asset-independent CI workflow that
|
Continue step 5 of the **codebase consolidation** maintenance slice with an asset-independent CI workflow that
|
||||||
invokes `py -3.11 -X utf8 tools/validate.py --level core` on Windows using the tracked .NET SDK policy. Keep the
|
provisions Python 3.11 and the `global.json` .NET SDK on Linux, then invokes
|
||||||
private game corpus and Godot runtime out of the hermetic CI job, preserve the validation driver's failure and
|
`python -X utf8 tools/validate.py --level core`. Keep the private game corpus and Godot runtime out of the
|
||||||
child-process semantics, and avoid introducing a second build/test command path.
|
hermetic CI job, preserve the validation driver's failure and POSIX child-process semantics, and avoid
|
||||||
|
introducing a second build/test command path.
|
||||||
Concrete playthrough blockers may still preempt this bounded maintenance work; the consolidation effort does
|
Concrete playthrough blockers may still preempt this bounded maintenance work; the consolidation effort does
|
||||||
not replace Phase B gameplay validation or the open cross-platform gates.
|
not replace Phase B gameplay validation or the open cross-platform gates.
|
||||||
|
|||||||
Reference in New Issue
Block a user