变更日志更新

如果您想帮助更新变更日志,那么您来对地方了。

何时更新

我们总是欢迎错别字和其他小的修复/添加。

当为新的 Rust 版本更新变更日志时,需要特别注意。为此,变更日志最好在即将发布的稳定版本的前一周更新。您可以在Rust Forge上找到发布日期。

大多数情况下,我们只需要更新 Rust 次要版本的变更日志。Clippy 的更改很少包含在补丁版本中。

变更日志更新步骤

1. 查找相关的 Clippy 提交

每个 Rust 版本都附带自己的 Clippy 版本。Clippy 子树可以在 Rust 仓库的 tools 目录中找到。

根据当前时间和您要更新的具体内容,以下几点可能会有所帮助

  • 当为即将发布的稳定版本编写发行说明时,您需要检查当前 Rust beta 分支的 Clippy 提交。链接
  • 当为即将发布的 beta 版本编写发行说明时,您需要检查当前 Rust master 的 Clippy 提交。链接
  • 当为过去的稳定版本编写(遗忘的)发行说明时,您需要检查稳定版本的 Rust 发行标签。链接

通常,您想要编写即将发布的稳定版本的变更日志。请确保 Rust 仓库中的 beta 分支已经创建。

要查找提交哈希值,请在 rust-lang/rust 的检出中发出以下命令

git log --oneline -- src/tools/clippy/ | grep -o "Merge commit '[a-f0-9]*' into .*" | head -1 | sed -e "s/Merge commit '\([a-f0-9]*\)' into .*/\1/g"

2. 获取这些提交之间的 PR

一旦您获得了正确的提交范围,请运行

util/fetch_prs_between.sh commit1 commit2 > changes.txt

并在您选择的编辑器中打开该文件。

更新变更日志时,最好也要确保 commit1 在当前的变更日志中是正确的。

3. 编写最终的变更日志

上面的脚本应该将所有相关的 PR 转储到您指定的文件中。它应该已经过滤掉了大多数不相关的 PR,但最好进行一次手动清理,查找更多不相关的 PR。如果您对某些 PR 不确定,只需将其保留在审查中并寻求反馈。

过滤掉 PR 后,您可以开始获取每个 PR,并将 changelog: 内容移动到 CHANGELOG.md。根据您的理解调整措辞,但尽量保持连贯性。

顺序大致应为

  1. 新的 lint
  2. lint 的移动或弃用
  3. 扩展现有 lint 覆盖的代码的更改
  4. 误报修复
  5. 建议修复/改进
  6. ICE 修复
  7. 文档改进
  8. 其他

我们使用以下内容作为节标题

### New Lints
### Moves and Deprecations
### Enhancements
### False Positive Fixes
### Suggestion Fixes/Improvements
### ICE Fixes
### Documentation Improvements
### Others

请务必使用相关的提交范围更新顶部的 Beta/未发布部分。

3.1 包括 beta-accepted PR

查找beta-accepted 标签,并确保还将带有该标签的 PR 包括在变更日志中。如果可以,请在变更日志 PR 合并删除 beta-accepted 标签。

注意:其中一些 PR 甚至可能会被反向移植到之前的 beta 版本。这些必须包含在上一个版本的变更日志中。

4. 更新 clippy::version 属性

接下来,请务必检查添加的 lint 的 #[clippy::version] 属性是否包含正确的版本。