chore: 准备 MVP-0 可复现开发与测试环境 #5

Closed
opened 2026-08-20 18:00:58 +08:00 by ila · 0 comments
Owner

基本信息

  • 类型:重构 / 工程基线
  • 所属 Epic:#3
  • 所属 MVP / 版本:#4(MVP-0)
  • 阶段:已完成

依赖与并行

  • 前置工单:#1、#2(均已完成)
  • 是否允许与前置工单并行:否;用户已于 2026-08-20 确认使用本机 MySQL 8
  • 原因:依赖项定义本工单所需的可执行环境、共享模型、接口或已确认设计;未满足时保持待实施,不标记阻塞。

子项目影响

  • 仅影响的子项目 / 交付单元:开发与测试环境、项目档案
  • 是否跨子项目:是
  • 是否修改共享接口或契约:是;确定后续所有 Go、迁移和 MySQL 集成验证命令
  • 各子项目需要执行的验证:见“验证方式”和验收标准。

原始需求

  • 来源:用户对话;Product-Requirements-Overview、Architecture-and-Code-Map、Business-Rules-and-Glossary
  • 提出时间:2026-08-20
  • 关键原话或脱敏摘要:用户要求“为 MVP-0 的生产实现拆分单元工单”;本工单负责 准备 Go 1.26.5、MySQL 8 和 golang-migrate 的可复现隔离验收环境。

要解决什么

当前本机只有 Go 1.23、MySQL 5.7,且没有 golang-migrate,无法真实执行 MVP-0 的构建、SKIP LOCKED 和迁移验收。本工单先建立可复现且不接触生产数据的开发/测试基线。

做什么 / 不做什么

做

  • 选择并记录 Go 1.26.5 的获取与固定方式。
  • 选择本机 MySQL 8 或容器化 MySQL 8,建立仅含构造数据的隔离测试库。
  • 安装或固定 golang-migrate,并验证命令可调用。
  • 记录版本检查、启动、停止、清理和凭据注入方式;凭据只从环境读取。
  • 验证 PowerShell 下的路径、DSN 和最小连接,不创建业务表。

不做

  • 不连接、迁移或复制生产数据库。
  • 不安装 go-admin/admin-ui,不创建业务代码和业务迁移。
  • 不在仓库、工单或 Wiki 记录密码、DSN 密码或真实数据。

已确认方案

  • 用户于 2026-08-20 确认使用本机 MySQL 8。实际路线复用本机 MySQL 8.4.8 二进制,使用 Chorus 专用数据目录与 127.0.0.1:3308;不修改现有 3307 实例和 MySQL 5.7 服务。
  • 环境优先可重复和隔离;MySQL 必须为 8.0 并支持 SKIP LOCKED。
  • 若使用容器,只提交必要且无凭据的配置;若使用本机安装,仅记录可复制步骤,不提交机器私有路径。

预计修改文件:

  • go.mod / go.work:仅在固定 Go toolchain 确有需要时建立最小基线
  • compose.yaml 或独立环境配置:仅在用户确认容器路线后创建
  • 对应 Wiki 页面及同步镜像

需求变化记录

  • 2026-08-20:用户确认使用本机 MySQL 8。环境盘点发现本机已有 MySQL 8.4.8 服务但无可安全复用的管理员凭据,因此使用同一套二进制建立端口 3308、独立数据目录的 Chorus 专用实例,避免重置账号或接触既有数据。

设计与原型门禁

  • 修改类型:非 UI
  • 所需设计证据:已确认的架构、数据、安全或流程设计;不要求 UI 原型
  • 事实来源:核心 Wiki 与父工单 #4
  • 状态:已确认;具体实现差异仍须按工单变化规则处理
  • 无需 UI 原型原因:本工单不改变用户界面

文档影响

  • 不影响长期文档
  • 按实际变化更新 Project-Profile、Architecture-and-Code-Map、Local-Development-and-Verification、Deployment-and-Operations 或 Business-Rules-and-Glossary
  • Wiki 先改、在线回读后再同步 docs/,不得直接维护镜像

交付文档影响

  • 无交付文档影响,原因:只影响开发/测试环境
  • 更新开发者运行与验证说明
  • 需要客户代表验证

验收标准

  • go version 满足 Go 1.26.5 基线,获取方式可重复。
  • 隔离 MySQL 8 可启动、连接、停止,版本和 SKIP LOCKED 能力已验证。
  • migrate -version 可执行,测试库与生产/共享库明确隔离。
  • 所有配置不含凭据、个人信息或生产数据。
  • 项目档案和本地开发文档记录实际命令、限制与回退步骤。

验证方式

  • go version
  • mysql --version 或容器内等价命令
  • migrate -version
  • 隔离库最小连接和 SKIP LOCKED 能力探测
  • python dev_scripts/harness.py check --strict
  • python dev_scripts/harness.py sync --check

未执行或因环境不足无法执行的验证必须如实回写,不得把预期结果记为通过。

风险和回退

  • 风险:安装软件或容器可能改变主机状态;执行前必须得到用户对具体路线的确认。
  • 风险:误连共享/生产库;只接受明确命名的隔离库和脱敏凭据,连接前核对目标。
  • 回退:删除本工单创建的隔离容器/测试库和工具配置;不删除用户已有环境。

实施与验证证据(2026-08-20)

  • Go:官方 Windows amd64 1.26.5 压缩包,SHA-256 校验匹配;开发 Shell 中 go version 为 go1.26.5 windows/amd64。
  • 迁移工具:golang-migrate v4.19.1,官方发布资产 SHA-256 校验匹配;migrate -version 为 4.19.1。
  • 数据库:MySQL 8.4.8 Chorus 专用实例 127.0.0.1:3308,独立数据目录、测试库和最小权限账号;既有 3307 实例与 MySQL 5.7 未修改。
  • 数据库验证:连接、FOR UPDATE SKIP LOCKED、停止、重启和重连均通过。
  • 文档验证:harness.py check --strict 通过;42 项 Python 测试通过;sync --check 全部一致;git diff --check 通过。
  • 核心 Wiki revision:Project-Profile 3bbe90891a4d2bdf0f6af5160f0b687792e0f19f;Local-Development-and-Verification c5dd8e3415c206839b1252ae32c61f48bdb21198。
  • 任务归档:Task-5-准备-MVP-0-可复现开发与测试环境,revision 90ab16746e0a60481fcb7b38de79e673e010dc13。
  • 提交:9b9e7c33ecb99afeec4024afec2be7347e19ceae、071745d948d919bbdcf0282bdc747fe2bfd8432b,均已推送到 origin/main。
  • 未验证:业务迁移尚不存在,其 up/down/up 验证进入 #6;未连接生产或共享数据库。

当前状态:待用户验收。环境产物已经可供 #6 使用,#5 在明确验收前不关闭。

验收结论

  • 用户于 2026-08-21 明确确认 #5 验收通过。
  • MVP-0 单元验收文档提交:919e11f,已推送到 main。
  • 任务归档 revision:6f66cc696862。
## 基本信息 - 类型:重构 / 工程基线 - 所属 Epic:#3 - 所属 MVP / 版本:#4(MVP-0) - 阶段:已完成 ## 依赖与并行 - 前置工单:#1、#2(均已完成) - 是否允许与前置工单并行:否;用户已于 2026-08-20 确认使用本机 MySQL 8 - 原因:依赖项定义本工单所需的可执行环境、共享模型、接口或已确认设计;未满足时保持待实施,不标记阻塞。 ## 子项目影响 - 仅影响的子项目 / 交付单元:开发与测试环境、项目档案 - 是否跨子项目:是 - 是否修改共享接口或契约:是;确定后续所有 Go、迁移和 MySQL 集成验证命令 - 各子项目需要执行的验证:见“验证方式”和验收标准。 ## 原始需求 - 来源:用户对话;Product-Requirements-Overview、Architecture-and-Code-Map、Business-Rules-and-Glossary - 提出时间:2026-08-20 - 关键原话或脱敏摘要:用户要求“为 MVP-0 的生产实现拆分单元工单”;本工单负责 准备 Go 1.26.5、MySQL 8 和 golang-migrate 的可复现隔离验收环境。 ## 要解决什么 当前本机只有 Go 1.23、MySQL 5.7,且没有 golang-migrate,无法真实执行 MVP-0 的构建、SKIP LOCKED 和迁移验收。本工单先建立可复现且不接触生产数据的开发/测试基线。 ## 做什么 / 不做什么 ### 做 - 选择并记录 Go 1.26.5 的获取与固定方式。 - 选择本机 MySQL 8 或容器化 MySQL 8,建立仅含构造数据的隔离测试库。 - 安装或固定 golang-migrate,并验证命令可调用。 - 记录版本检查、启动、停止、清理和凭据注入方式;凭据只从环境读取。 - 验证 PowerShell 下的路径、DSN 和最小连接,不创建业务表。 ### 不做 - 不连接、迁移或复制生产数据库。 - 不安装 go-admin/admin-ui,不创建业务代码和业务迁移。 - 不在仓库、工单或 Wiki 记录密码、DSN 密码或真实数据。 ## 已确认方案 - 用户于 2026-08-20 确认使用本机 MySQL 8。实际路线复用本机 MySQL 8.4.8 二进制,使用 Chorus 专用数据目录与 `127.0.0.1:3308`;不修改现有 `3307` 实例和 MySQL 5.7 服务。 - 环境优先可重复和隔离;MySQL 必须为 8.0 并支持 `SKIP LOCKED`。 - 若使用容器,只提交必要且无凭据的配置;若使用本机安装,仅记录可复制步骤,不提交机器私有路径。 预计修改文件: - `go.mod` / `go.work`:仅在固定 Go toolchain 确有需要时建立最小基线 - `compose.yaml` 或独立环境配置:仅在用户确认容器路线后创建 - 对应 Wiki 页面及同步镜像 ## 需求变化记录 - 2026-08-20:用户确认使用本机 MySQL 8。环境盘点发现本机已有 MySQL 8.4.8 服务但无可安全复用的管理员凭据,因此使用同一套二进制建立端口 3308、独立数据目录的 Chorus 专用实例,避免重置账号或接触既有数据。 ## 设计与原型门禁 - 修改类型:非 UI - 所需设计证据:已确认的架构、数据、安全或流程设计;不要求 UI 原型 - 事实来源:核心 Wiki 与父工单 #4 - 状态:已确认;具体实现差异仍须按工单变化规则处理 - 无需 UI 原型原因:本工单不改变用户界面 ## 文档影响 - [ ] 不影响长期文档 - [x] 按实际变化更新 Project-Profile、Architecture-and-Code-Map、Local-Development-and-Verification、Deployment-and-Operations 或 Business-Rules-and-Glossary - Wiki 先改、在线回读后再同步 `docs/`,不得直接维护镜像 ## 交付文档影响 - [ ] 无交付文档影响,原因:只影响开发/测试环境 - [x] 更新开发者运行与验证说明 - [ ] 需要客户代表验证 ## 验收标准 - [x] `go version` 满足 Go 1.26.5 基线,获取方式可重复。 - [x] 隔离 MySQL 8 可启动、连接、停止,版本和 `SKIP LOCKED` 能力已验证。 - [x] `migrate -version` 可执行,测试库与生产/共享库明确隔离。 - [x] 所有配置不含凭据、个人信息或生产数据。 - [x] 项目档案和本地开发文档记录实际命令、限制与回退步骤。 ## 验证方式 - `go version` - `mysql --version` 或容器内等价命令 - `migrate -version` - 隔离库最小连接和 `SKIP LOCKED` 能力探测 - `python dev_scripts/harness.py check --strict` - `python dev_scripts/harness.py sync --check` 未执行或因环境不足无法执行的验证必须如实回写,不得把预期结果记为通过。 ## 风险和回退 - 风险:安装软件或容器可能改变主机状态;执行前必须得到用户对具体路线的确认。 - 风险:误连共享/生产库;只接受明确命名的隔离库和脱敏凭据,连接前核对目标。 - 回退:删除本工单创建的隔离容器/测试库和工具配置;不删除用户已有环境。 ## 实施与验证证据(2026-08-20) - Go:官方 Windows amd64 1.26.5 压缩包,SHA-256 校验匹配;开发 Shell 中 `go version` 为 `go1.26.5 windows/amd64`。 - 迁移工具:golang-migrate v4.19.1,官方发布资产 SHA-256 校验匹配;`migrate -version` 为 `4.19.1`。 - 数据库:MySQL 8.4.8 Chorus 专用实例 `127.0.0.1:3308`,独立数据目录、测试库和最小权限账号;既有 3307 实例与 MySQL 5.7 未修改。 - 数据库验证:连接、`FOR UPDATE SKIP LOCKED`、停止、重启和重连均通过。 - 文档验证:`harness.py check --strict` 通过;42 项 Python 测试通过;`sync --check` 全部一致;`git diff --check` 通过。 - 核心 Wiki revision:Project-Profile `3bbe90891a4d2bdf0f6af5160f0b687792e0f19f`;Local-Development-and-Verification `c5dd8e3415c206839b1252ae32c61f48bdb21198`。 - 任务归档:Task-5-准备-MVP-0-可复现开发与测试环境,revision `90ab16746e0a60481fcb7b38de79e673e010dc13`。 - 提交:`9b9e7c33ecb99afeec4024afec2be7347e19ceae`、`071745d948d919bbdcf0282bdc747fe2bfd8432b`,均已推送到 `origin/main`。 - 未验证:业务迁移尚不存在,其 up/down/up 验证进入 #6;未连接生产或共享数据库。 当前状态:待用户验收。环境产物已经可供 #6 使用,#5 在明确验收前不关闭。 ## 验收结论 - 用户于 2026-08-21 明确确认 #5 验收通过。 - MVP-0 单元验收文档提交:`919e11f`,已推送到 `main`。 - 任务归档 revision:`6f66cc696862`。
ila closed this issue 2026-08-21 11:59:07 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#5