Max Lv:meow-rs 暂不引入自动发布流程,v0.22.0 发布 PR 待 CI 通过后合并

在 meow-rs issue #709「切出 v0.22.0」的讨论中,Max Lv(madeye)说明暂时保留手动发布流程。理由:发布频率低,CHANGELOG.md 是有意手工整理的,自动生成的变更说明或 `skip-changelog: true` 会丢掉这一点,或让流程处于半自动化状态。 他指出已经自动化的只有不可逆部分:推送 `vX.Y.Z` tag 会运行 `publish.yml`(按依赖顺序发布到 crates.io,幂等)和 `release.yml`(GitHub release 与二进制文件);仍需手工的是版本号提升与 CHANGELOG 裁剪,即一个小 PR。 他还说明三个候选方案都需要 PAT 或 GitHub App secret,才能让 tag 和发布 PR 触发 workflow;release-please 还需要约 16 个 `extra-files` 路径来应对 workspace 继承,release-plz 则有他所链接的共享版本 tag bug。他判断当前这些零件多于问题本身,若发布节奏加快或 release-plz#2292 被修复,愿意重新考虑,并说会先试一个小型 `workflow_dispatch`「prepare release」任务。 关于 0.22.0:发布 PR 是 #720(workspace 版本、`[workspace.dependencies]` 固定、meow-anytls、Cargo.lock、CHANGELOG 裁剪),CI 通过后会合并并打 `v0.22.0` tag,该 issue 届时关闭。

作者原文

Thanks for the thorough write-up. The caveats you found were the deciding factor.

On release automation: we'll keep the manual flow for now.

  • Releases are infrequent, and CHANGELOG.md is curated by hand on purpose. Generated notes or skip-changelog: true would lose that, or leave us half-automated.
  • The irreversible parts are already automated: pushing a vX.Y.Z tag runs publish.yml (crates.io, in dependency order, idempotent) and release.yml (GitHub release and binaries). What stays manual is the version bump and the CHANGELOG cut, which is one small PR.
  • All three options need a PAT or GitHub App secret so that tags and release PRs trigger workflows. release-please also needs ~16 extra-files paths to cope with workspace inheritance, and release-plz has the shared-version tag bug you linked. That is more moving parts than the problem warrants right now.

If the release cadence picks up, or release-plz#2292 gets fixed, I'm happy to revisit. A small workflow_dispatch "prepare release" job would be the first thing I'd try.

On 0.22.0: the release PR is #720 (workspace version, [workspace.dependencies] pins, meow-anytls, Cargo.lock, CHANGELOG cut). It will be merged and tagged v0.22.0 once CI is green, and this issue will close then.