docs: record Phase C cutover; close $IsWindows shim bug (Phase C9)
- CLAUDE.md: Linux host no longer runs pwsh; PS 5.1 constraints scoped to Windows guests + Windows runner. - RUNBOOK: add "Phase C — Python equivalents" table; §6-§13 benchmark records kept as historical provenance. - TODO §3.7: close $IsWindows shim bug (resolved-by-replacement — bench run bypasses the shim). - plans: mark C1-C8 done + docs C9; flag operational cutover/uninstall pending. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -849,17 +849,18 @@ liberi su 63.7). **Mitigazioni**: ridurre vCPU/VM (lega a §3.5), `-Parallelism
|
||||
alzare connect-timeout pypsrp + retry a livello job in `_windows_build`.
|
||||
**Rifiori quando**: si vuole concorrenza 4× Windows-guest affidabile su host Windows.
|
||||
|
||||
### 3.7 [P3] [ ] Shim Invoke-CIJob.ps1 — `$IsWindows` non guardato (PS 5.1 + StrictMode)
|
||||
### 3.7 [P3] [x] Shim Invoke-CIJob.ps1 — `$IsWindows` non guardato (PS 5.1 + StrictMode) — RISOLTO 2026-06-07 (Fase C)
|
||||
File: [scripts/Invoke-CIJob.ps1:37](scripts/Invoke-CIJob.ps1).
|
||||
|
||||
`if ($null -ne $IsWindows -and $IsWindows -eq $false)` dereferenzia `$IsWindows`,
|
||||
inesistente su Windows PowerShell 5.1 → con `Set-StrictMode -Version Latest`
|
||||
lancia `VariableIsUndefined` e il job fallisce subito. Si manifesta solo quando lo
|
||||
shim gira sotto PS 5.1 **senza** `CI_VENV_PYTHON` settato (il ramo auto-detect).
|
||||
Produzione setta `CI_VENV_PYTHON` via runner, quindi non si vede; colpisce invocazioni
|
||||
manuali/burn-in. **Fix**: guardare con `if ((Test-Path variable:IsWindows) -and -not $IsWindows)`
|
||||
o `Get-Variable IsWindows -EA SilentlyContinue`.
|
||||
**Workaround attuale**: esportare `CI_VENV_PYTHON` prima di lanciare lo shim.
|
||||
lancia `VariableIsUndefined` e il job fallisce subito. Si manifestava solo quando lo
|
||||
shim girava sotto PS 5.1 **senza** `CI_VENV_PYTHON` settato (il ramo auto-detect),
|
||||
cioè nelle invocazioni manuali/burn-in.
|
||||
**Risoluzione**: il percorso burn-in manuale non passa più dallo shim — `bench run`
|
||||
(Fase C) lancia i job concorrenti in-process via `concurrent.futures`, senza
|
||||
`Start-Job`/`pwsh`/`$IsWindows`. Lo shim resta solo per il runner Windows, dove
|
||||
`CI_VENV_PYTHON` è sempre settato. Il bug non è più raggiungibile sull'host Linux.
|
||||
|
||||
### 8.1 [P3] [ ] Mirror GitHub Actions su Gitea locale (rimuovi dipendenza github.com)
|
||||
File: [.gitea/workflows/lint.yml](.gitea/workflows/lint.yml), Gitea (org `actions`).
|
||||
|
||||
Reference in New Issue
Block a user