跳转至

版本发布

每个版本对应一个计算源代码快照、其文档化的 benchmark 输入以及验证结果。 使用带版本号的 Git 标签和 GitHub Release,以便研究人员日后回溯到相同的代码状态。

准备版本

CHANGELOG.md 中更新发布日期和具体变更内容。 保持安装指南、Agent 指令和数值资源估计与代码的一致性。 检查源代码包是否包含 MIT 协议、求解器源码、ED 代码、精选输入、 处理后数据以及复现脚本。原始链数据和生成的编译文件不纳入 Release。

在已记录的 Linux 环境中运行以下检查:

python3 scripts/doctor.py
make check
make physics
make smoke
python3 reproduce.py --mode check
git diff --check

GNU Fortran 的 GitHub Actions 检查也应在 Release 提交上通过。 若生产编排逻辑有变更,还需运行真实的续跑测试:

BAFQMC_RUN_MPI_TESTS=1 python3 -m unittest discover -s tests/reproduction -v

对于物理修改,将哈密顿量、估计量归一化、Trotter 步长、采样统计量和 ED 占据截断与上一版本进行比较。运行开发指南中描述的 相应小体系恒等式和实机回归计算。 除非对模型、输入设置或参考计算进行了明确的文档化更新, 否则应保持已发布的 benchmark 输入和处理后数据完整不变。

默认的 python3 reproduce.py 命令计算全部 22 个生产参数点, 预算约 12–24 小时、16 GiB 内存和 8 GiB 可用磁盘(参考桌面); 详见实测资源指南。 若版本修改了生产物理内容或 benchmark 输入,需重新运行受影响的生产扫描, 并记录其参数和结果。在 Release 说明中区分已完成的检查和完整计算。

发布源代码快照

提交所有变更后检查 git status --short。使用新版本号标记经过验证的确切提交,例如:

release_tag=v0.1.3
git tag -a "$release_tag" -m "BAFQMC ${release_tag}"
git push origin main
git push origin "$release_tag"

Source Release 工作流会对该标签重新运行计算 CI, 然后以 GitHub Release 的形式发布源代码存档和 SHA-256 校验和。 在 Release 说明中包含 changelog 条目、相关验证结果, 以及对输入/输出格式的任何变更说明。标签一经发布应保持不变; 如需修正,发布新版本。

GitHub 会为带标签的快照提供源代码存档。 在将 Release 视为完成之前,请将存档下载到新目录, 并检查 python3 reproduce.py --planpython3 reproduce.py --mode check 的运行情况。 提取出的包应在不依赖手稿检出或同级仓库的情况下正常工作。 可选的开发容器提供相同的 GNU/MPI 环境; 打开容器后会自动运行环境诊断,生产计算则由研究人员自行控制。