Isolate modern and Win7 workspaces (T-604)
This commit is contained in:
+10
-5
@@ -3,12 +3,12 @@ id: T-604
|
||||
title: 隔离 modern 与 Win7 workspace
|
||||
phase: 0
|
||||
deps: [T-004]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-16
|
||||
issue: null
|
||||
context_ref: null
|
||||
context_ref: e4a9295cbf94d645370d2583866b7ca91c0c5271
|
||||
claim_branch: null
|
||||
work_branch: null
|
||||
work_branch: agent/codex/T-604
|
||||
write_paths:
|
||||
- docs/tasks/T-604.md
|
||||
- go.work
|
||||
@@ -36,7 +36,7 @@ Phase 0 交叉审核确认根 `go.work` 同时纳入 `app-modern`、`app-win7`
|
||||
1. 根 `go.work` 只纳入 `app-modern` 与 `core`;`app-win7` 只由 `app-win7/go.work` 纳入并继续与 `core` 共享本地替换。
|
||||
2. `init.sh`、`init.ps1`、`verify_phase0.sh` 与 `verify_phase0.ps1` 分别同步两个 workspace:
|
||||
- Go 1.25.0 同步根 workspace。
|
||||
- Go 1.20.14 + 显式 `GOWORK=app-win7/go.work` 同步 Win7 workspace。
|
||||
- Go 1.25.0 + 显式 `GOWORK=app-win7/go.work` 同步 Win7 workspace 元数据;随后必须用 Go 1.20.14 校验实际依赖图、测试和构建。
|
||||
3. 加固 `scripts/check_go_versions.py`:
|
||||
- 校验根 workspace 只包含 modern/core。
|
||||
- 校验 Win7 workspace 只包含 win7/core。
|
||||
@@ -50,7 +50,7 @@ Phase 0 交叉审核确认根 `go.work` 同时纳入 `app-modern`、`app-win7`
|
||||
- `go work edit -json` 显示根 workspace 只有 `./app-modern`、`./core`;`app-win7/go.work` 只有 `.`、`../core`。
|
||||
- 根 workspace 执行 `go list -m gioui.org` 得到 v0.10.1;Win7 workspace 使用 Go 1.20.14 执行同命令得到 v0.6.0。
|
||||
- 根 workspace 不再把 `./app-win7/...` 当作自身 package pattern 构建;Win7 test/build 必须显式使用嵌套 workspace。
|
||||
- 两个 workspace 的 sync 都由 `init` 与 `verify_phase0` 执行;sync 后 `core/go.mod`、`app-modern/go.mod`、`app-win7/go.mod` 无意外漂移。
|
||||
- 两个 workspace 的 sync 都由 `init` 与 `verify_phase0` 执行;Win7 sync 使用 Go 1.25.0 规避 Go 1.20.14 对 workspace replace 的已验证限制,但 Win7 依赖图/test/build 仍强制 Go 1.20.14;sync 后三个 go.mod 无意外漂移。
|
||||
- `python scripts/check_go_versions.py` 能在 workspace 成员或 Gio 解析版本错误时失败。
|
||||
- gopls/IDE 打开仓库后,Win7 文件使用 Gio v0.6.0 语义;若当前环境没有 gopls,执行记录必须写明限制并至少提供嵌套 workspace 的 `go list/test` 证据。
|
||||
- `./scripts/verify_phase0.ps1` 与 `bash scripts/verify_phase0.sh` 全绿,modern/Win7 EXE 均重新产出。
|
||||
@@ -74,3 +74,8 @@ Phase 0 交叉审核确认根 `go.work` 同时纳入 `app-modern`、`app-win7`
|
||||
## 执行记录
|
||||
|
||||
- 2026-07-16:根据 `docs/review/phase0-skeleton-review.md` 的交叉复核定稿落成首个整改任务;编号按路线图与现有任务最大编号 `T-603 + 1` 取 `T-604`。
|
||||
- 2026-07-16:在 `agent/codex/T-604` 分支领取任务;基线为 `e4a9295cbf94d645370d2583866b7ca91c0c5271`。当前环境未安装 gopls,后续以嵌套 workspace 的实际 `go list/test/build` 作为自动化证据,并在收尾记录该环境限制。
|
||||
- 2026-07-16:真实执行发现 Go 1.20.14 `go work sync` 虽能用 workspace replace 完成 `go list`,却会在 sync 时联网解析 `softbox.local/core@v0.0.0` 并失败;Go 1.25.0 对同一 Win7 workspace sync 成功且三个 go.mod 哈希不变。决定用 Go 1.25.0 同步两套 workspace 元数据,继续用 Go 1.20.14 强制验证和构建 Win7,不向 go.mod 写本地 replace。
|
||||
- 2026-07-16:根 `go.work` 移除 `app-win7`,清理根 `go.work.sum` 中 Win7 专属旧校验和;`init`/`verify_phase0` 分别同步两套 workspace并显式传递绝对 `GOWORK`。`check_go_versions.py` 现校验 workspace 成员、实际 Gio 解析版本、Go 1.20.14 工具链与 core/win7 完整模块图,并带错误分支 self-check。
|
||||
- 2026-07-16:隔离证据通过:根 `go work edit -json` 仅含 `app-modern/core`,Gio 为 v0.10.1;Win7 workspace 仅含 `app-win7/core`,Go 1.20.14 解析 Gio v0.6.0;根 workspace 的 `go list ./app-win7/...` 按预期拒绝;三个 go.mod 前后哈希完全一致。当前环境未安装 gopls,已按验收规则记录限制并用实际 list/test/build 替代自动化证据。
|
||||
- 2026-07-16:验证通过:`python scripts/check_go_versions.py`;`./scripts/verify_phase0.ps1`;`C:\Program Files\Git\bin\bash.exe scripts/verify_phase0.sh`;`./init.ps1`(含 `RUN_START_COMMAND=1` 的显式双 workspace build);`C:\Program Files\Git\bin\bash.exe ./init.sh`;治理/边界检查、core Go 1.20.14 vet/test、modern Go 1.25.0 与 Win7 Go 1.20.14 adapter test/GUI build 全绿。
|
||||
|
||||
Reference in New Issue
Block a user