docs: align eigen implementation steps with validated Ninja preset
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
# Step 6: Additive HDF5와 CLI candidate transaction
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -114,10 +125,11 @@ Symbols: `PreparedAnalysisOutcome frequency variant; ExecutePreparedAnalysis/Fin
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -135,18 +147,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user