发布新的 Clippy 版本
注意:如果你不是 Clippy 团队的成员,这份文档可能对你无关。
Clippy 与 Rust 稳定版一同发布。这些发布的日期可以在 Rust Forge 上找到。本文档解释了创建 Clippy 版本所需的步骤。
注意:本文档适用于 Rust 稳定版发布,不适用于点发布。对于点发布,步骤 1 和 2 应该就足够了。
重新合并 beta
分支
只有在上次发布后,有任何内容被向后移植到 beta Rust 版本时,此步骤才是必要的。重新合并是必要的,以确保现在稳定的 Rust 版本使用的 Clippy 提交,保留在 Clippy 存储库的树中。
要确定此步骤是否必要,请运行
# Assumes that the local master branch of rust-lang/rust-clippy is up-to-date
$ git fetch upstream
$ git branch master --contains upstream/beta
如果此命令输出 master
,则此步骤不是必要的。
# Assuming `HEAD` is the current `master` branch of rust-lang/rust-clippy
$ git checkout -b backport_remerge
$ git merge upstream/beta
$ git diff # This diff has to be empty, otherwise something with the remerge failed
$ git push origin backport_remerge # This can be pushed to your fork
在此之后,向 master 分支打开一个 PR。在这个 PR 中,必须存在 beta
分支的 HEAD
的提交哈希。除此之外,此 PR 不应更改任何文件。
更新 beta
分支
此步骤必须在上一步的 PR 被合并之后完成。
首先,必须确定 Rust 存储库的 beta
分支的 Clippy 提交。
# Assuming the current directory corresponds to the Rust repository
$ git fetch upstream
$ git checkout upstream/beta
$ BETA_SHA=$(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")
找到 Clippy 提交后,可以更新 Clippy 存储库中的 beta
分支。
# Assuming the current directory corresponds to the Clippy repository
$ git checkout beta
$ git reset --hard $BETA_SHA
$ git push upstream beta
找到 Clippy 提交
第一步是标记稳定 Rust 版本中包含的 Clippy 提交。此提交可以在 Rust 存储库中找到。
# Assuming the current directory corresponds to the Rust repository
$ git fetch upstream # `upstream` is the `rust-lang/rust` remote
$ git checkout 1.XX.0 # XX should be exchanged with the corresponding version
$ SHA=$(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")
标记稳定提交
找到 Clippy 提交后,可以使用发布版本号进行标记。
# Assuming the current directory corresponds to the Clippy repository
$ git checkout $SHA
$ git tag rust-1.XX.0 # XX should be exchanged with the corresponding version
$ git push upstream rust-1.XX.0 # `upstream` is the `rust-lang/rust-clippy` remote
之后,该版本应该可以在 Clippy 的 发布页面 上找到。
更新 stable
分支
在此步骤中,你应该已经检出了 rust-1.XX.0
标签的提交。从这里更新稳定分支就像
# Assuming the current directory corresponds to the Clippy repository and the
# commit of the just created rust-1.XX.0 tag is checked out.
$ git push upstream rust-1.XX.0:stable # `upstream` is the `rust-lang/rust-clippy` remote
注意:通常 Clippy 没有稳定的向后移植,因此此更新应该可以无需强制推送或任何类似的操作。如果发生了稳定的向后移植,请确保像对待
beta
分支一样重新合并这些更改。
更新 CHANGELOG.md
有关此信息,请参阅关于 如何更新变更日志 的文档。
如果你没有时间立即完成完整的变更日志更新,只需更新以下部分
-
从新的稳定版本中删除
(beta)
## Rust 1.XX (beta) -> ## Rust 1.XX
-
更新新的稳定版本的发布日期行
Current beta, release 20YY-MM-DD -> Current stable, released 20YY-MM-DD
-
更新前一个稳定版本的发布日期行
Current stable, released 20YY-MM-DD -> Released 20YY-MM-DD