Files
quant-os/MIGRATION.md

3.6 KiB
Raw Permalink Blame History

Quant OS 独立仓迁移记录

迁移日期:2026-07-30

目标位置

  • 本地:用户选定的独立 checkout(本文记为 $QUANT_OS_ROOT
  • 远端:https://git.gomars.fun/boat/quant-os.git
  • 公共状态:https://gomars.fun/quant-os/status/
  • 原仓:https://git.gomars.fun/boat/quants-strategies.git

迁移执行结果

2026-07-30 已完成独立仓、数据资产、公共状态和旧仓边界切换:

  • 独立仓 clean clone 的 315 项测试通过,6 项可选 runtime 测试跳过;
  • data/artifacts/mlruns/ 共 4,281 个文件逐文件 SHA-256 一致, inventory hash 为 d18774756d56eb89239643bd91792feb5e1c7b5ab8fd804bf52f6d429c448e91
  • .venv-qlib312 未迁入新项目,随迁移前完整目录保留在本机 ../quant-os-migration-backup-20260730,新环境按 requirements 重建;
  • quants-strategies 仓在提交 bd61d83 后仅保留 quant-os/README.md 迁移指针,原仓的 Cash Layer 未提交改动未进入迁移提交;
  • 新公共地址返回 200,发布文件与独立仓逐字节一致;六个旧 Quant OS 精确地址 暂时返回 302 到新地址,quants-strategies 下的 Cash Layer 路由保持 200。

这些本地数据与备份均不进入 Git;公开状态仍是脱敏、构建时生成的静态快照。

历史保留方式

从原仓已提交 master 执行:

git subtree split --prefix=quant-os

路径提交映射:

原仓提交 独立历史提交 内容
e561efd 48c5f64 A 股 60 分 Baseline 初始实现
f998f4d e5911ca Tushare → Qlib 数据桥
692f6ef 00efeb7 公共状态控制台

SHA 改变是路径提取的正常结果;作者、时间、顺序和文件历史保留。

原工作树中尚未提交的 TargetPackage、五层链、release reachability 和真实 JoinQuant execution smoke 被叠加到独立分支,并形成单独 checkpoint 919c64c。原 quants-strategies 的 cash-layer 脏改没有进入新仓。

本地运行状态

以下目录被 Git 忽略,不进入远端;这是数据安全边界,不只是迁移便利:

  • data/
  • artifacts/
  • mlruns/
  • .venv-*

迁移时复制前三类并校验清单;只记录文件数、总字节和相对路径/hash,不把 数据内容或绝对源路径写入公开文档。旧 .venv-qlib312 接近 1 GB,脚本中包含原 绝对路径,不能把“目录搬过去”视为有效环境;新仓应按固定 requirements 重建。 旧环境在新仓完整验证前不删除。

清单与复核命令:

python3 tools/inventory_local_assets.py <old-project-root> \
  --output /tmp/quant-os-local-assets.json
python3 tools/inventory_local_assets.py <new-project-root> \
  --compare /tmp/quant-os-local-assets.json

清单不记录根目录,只记录 data/artifacts/mlruns/ 的相对路径、字节数 和 SHA-256;遇到 symlink 会拒绝继续。

兼容政策

  • quant-os / quant_os 是新产品入口;
  • quant60 CLI/import 和 V1 schemas 保留至少两个发布周期;
  • portable-momentum 只保留 smoke/example 身份;
  • 旧公共 URL 先保持 302 兼容跳转;稳定观察后再单独升级 308,不能直接 404;
  • 原仓最终只保留独立项目指针,不复制代码。

完成条件

  1. 独立仓 clean clone 通过 make local
  2. generated bundle/status 无 drift
  3. secret/绝对路径检查通过;
  4. 新远端 commit 与本地 commit 相同;
  5. 新公共 URL 返回正确独立仓快照;
  6. 旧 URL 有兼容跳转;
  7. 最后才从旧仓移除 quant-os/ 和旧专属 CI。