发版
本地验收
在目标 Python 版本的隔离环境中执行:
python -m pytest -q
python -m pip check
chatclash --version
chatclash --tree
chatclash --tree-brief
python -m build
python -m twine check dist/*
mkdocs build --strict
git diff --check
构建的 wheel 必须在全新环境中安装,并回读 --version、--tree、--tree-brief 与 ChatEnv provider 发现。不要把源码 editable 环境当作公开安装验证。
发布顺序
- 根据 PyPI、远程标签和默认分支源码选择下一个前进版本。
- 更新版本、变更日志、测试和用户文档;先完成本地验收和独立审查。
- 推送分支并创建 PR,只在该 PR 的精确提交检查全绿后合并。
- 同步默认分支,确认发布标签指向合并后的默认分支提交,而非功能分支提交。
- 按仓库既有风格创建并推送
v<version>标签,等待 tag 触发的发布工作流成功。 - 回读 PyPI 精确版本、wheel 和 sdist;从公开 PyPI 用无缓存隔离环境安装精确版本。
- 同步 canonical checkout、确认干净状态,并在需要时用标准 ChatArch venv 安装该精确发布版本。
服务边界
发布 Python 包不会自动替换引擎、刷新订阅或重启 chatclash-mihomo.service。生产迁移要单独安排:先安装已发布版本、重新生成/校验配置,再在授权的维护窗口内显式重载或重启并验证代理。禁止把订阅、认证或生成 YAML 写入提交和发布产物。