.github/workflows/release.yml),使用
PyPI Trusted Publishing (OIDC) 将包发布到 PyPI
——无需存储长期有效的 API 令牌。
一次性设置(每个项目由维护者完成一次)
- 在 PyPI 上创建(或认领)
clousight-bench项目,并添加一个 Trusted Publisher:- Owner:
clousight - Repository:
clousight-bench - Workflow:
release.yml - Environment:
pypi
- Owner:
- 在 GitHub 仓库设置中,创建名为
pypi的 Environment (可选择设置必要的审阅者,以便在发布前添加手动审批门控)。
执行发布
-
更新
CHANGELOG.md:将Unreleased部分移至新版本下,并附上今日日期。绝不要把已发布的小节改回Unreleased——版本一旦打了标签,它的小节就是历史;新的改动写进它上方新建的## [Unreleased]。(这件事发生过一次,见 #80:已发布的## [0.5.0]标题被改回## [Unreleased],于是 v0.5.0 明明已发布,CHANGELOG.md却显示最新版本是 0.4.0。) -
在
pyproject.toml中更新version,并同步另外四处副本:src/clousight_bench/__init__.py的RUNNER_VERSION(由 wheel-smoke CI 任务强制校验)、CITATION.cff的version与date-released、README 中的 “N.N.N Developer Preview” 一行,以及tests/test_schema.py里的断言。发布工作流会验证标签与pyproject.toml一致。 -
通过 Pull Request 将上述改动合并到
main。 -
打标签并推送:
-
release工作流会构建 sdist + wheel,运行twine check,然后发布到 PyPI。请关注 Actions 选项卡。 - 从该标签创建 GitHub Release,并粘贴对应的变更日志部分。
版本策略
1.0 之前,次版本号可能包含破坏性变更,但结果 schema 和插件 API 均携带各自的版本字段(schema_version、PLUGIN_API_VERSION),并经过有计划的迁移——详见 CHANGELOG.md 及 /docs/zh/architecture。对已发布维度的评分进行任何修改,始终需要升级版本号并在变更日志中添加相应条目。