Rust 基础设施团队 2025 Q4 回顾与 2026 Q1 计划

本文是对 Rust 官方 Inside Rust 博客《Infrastructure Team 2025 Q4 Recap and Q1 2026 Plan》的完整中文解读。作者为 Marco Ieni,代表 Rust 基础设施团队发布于 2026 年 1 月 13 日。


内容结构概览

一、2025 Q4 成果

  1. team 仓库中纳入更多配置项(IaC 化)
    • GitHub Environments 全面迁入 team 仓库
    • Trusted Publishing 配置纳入 IaC
  2. crates.io 索引与 docs.rs 迁移至 Fastly CDN
  3. 新版 Bors 正式用于合并 Rust 编译器 PR
  4. rustc-perf 基准测试支持并行执行
  5. 多个仓库默认分支由 master 重命名为 main
  6. 新成员入职
  7. Triagebot 多项功能增强
    • label 命令支持别名
    • 自动 backport 提名转为建议式工作流
    • 新增 r? me@rustbot reroll 命令
    • 移除 [no-mentions] handler
    • GHA 日志查看器支持高亮选中行
    • [mentions] 配置支持 glob 模式
  8. Internal Sites 团队正式开始运作

二、2026 Q1 计划

  1. 继续推进 Q4 未完成目标
    • docs.rs 基础设施现代化
    • 外部硬件 CI 策略发布
    • GCP 开发桌面环境
  2. 账号与访问管理(Google Workspace + SAML)
  3. 迁移至 GitHub Rulesets

三、参与贡献


一、2025 Q4 成果

1. team 仓库中纳入更多配置项

基础设施团队始终致力于将手动配置项迁移至基础设施即代码(Infrastructure as Code,IaC)体系。IaC 带来多方面好处:

  • 自助服务:即便没有管理员权限,各团队成员也可以直接查看自己的配置,并通过提交 pull request 的方式申请变更。
  • 安全性提升:配置漂移(configuration drift)更难发生。手动变更虽然仍然可能,但更容易被检测到,并在下次 IaC 自动化运行时被还原。
GitHub Environments 全面迁入 team 仓库

所有 Rust 项目仓库的 GitHub Environments 现已全部在 team 仓库中以声明式配置管理。以下是 bors 仓库配置文件的示例:

toml 复制代码
[environments.production]
branches = ["main"]

[environments.staging]
branches = ["main"]

感谢 amustaque97GitHub environments issue 上做出的出色贡献。

Trusted Publishing 配置纳入 IaC

所有 Rust 项目旗下使用 crates.io trusted publishing 的 crate,现已通过 team 仓库以 IaC 方式进行配置管理。以下是 measureme 仓库配置文件的示例:

toml 复制代码
[[crates-io]]
crates = ["analyzeme", "decodeme", "measureme"]
publish-workflow = "publish.yml"
publish-environment = "publish"

这一改变意味着,未来为更多 Rust 项目 crate 配置 trusted publishing 的工作将变得更加便捷和统一。


2. crates.io 索引与 docs.rs 迁移至 Fastly CDN

crates.io 索引与 docs.rs 网站现已通过 Fastly CDN 提供服务。

做出这一改变的原因是:Fastly 向 Rust 项目捐赠了 CDN 资源,团队希望将 AWS 积分节省下来用于其他基础设施需求。

针对 docs.rs,团队还启用了 Fastly 的 shielding(盾牌) 功能,该功能在现有缓存层之外额外增加一层缓存,从而减轻源服务器的负载。

从监控数据来看,效果非常显著:在 12 月 2 日进行短暂实验、12 月 3 日正式永久启用 shielding 之后,docs.rs 的活跃连接数出现了明显下降。

值得注意的是,crates.io 索引目前仍有一部分流量由 CloudFront 承载,团队可以灵活配置各 CDN 的流量分配比例。

感谢 crates.iodocs.rs 团队在这一过程中提供的协助。


3. 新版 Bors 正式用于合并 Rust 编译器 PR

基础设施团队与 Bors 团队 持续推进 Rust CI 从旧版 Bors(即 Homu)向新版 Bors 的迁移工作。新版 Bors 本身使用 Rust 语言编写。

本季度,新版 Bot 已正式用于 rust-lang/rust 仓库的 PR 合并流程,标志着从 Homu 的迁移工作全面完成,持续集成基础设施的可靠性也随之得到提升。

特别感谢所有为 Bors 开发做出贡献的贡献者,尤其是 Võ Hoàng LongSakibul Islam


4. rustc-perf 基准测试支持并行执行

团队在 Rust 编译器并行基准测试项目目标上取得了实质性进展。目前已部署两台 x64 机器,可并行执行基准测试任务,将一次完整编译器基准测试的耗时从约 1 小时 20 分钟缩短至约 40 分钟

2026 年,团队计划进一步改进基准测试套件,包括支持在其他硬件架构上进行基准测试。


5. 多个仓库默认分支由 master 重命名为 main

以下仓库已完成默认分支从 mastermain 的重命名:

  • annotate-snippets-rs
  • ar_archive_writer
  • cmake-rs
  • compiler-builtins
  • docs.rs
  • infra-team
  • moderation-team
  • rust(即 Rust 编译器主仓库)
  • rustfmt
  • rustup
  • rustwide
  • stdarch
  • team
  • this-week-in-rust

6. 新成员入职

Rust 基金会在 Q4 2025 新招募了一名基础设施工程师,并将于 2026 年 1 月正式入职,进一步提升团队的整体能力,以更好地服务 Rust 项目。

感谢 Kobzol 在招聘过程中的大力协助。


7. Triagebot 多项功能增强

Triagebot 是 Rust 团队的"得力助手"机器人,持续处理 GitHub 和 Zulip 聊天上的各类工作流。本季度对其进行了多项值得关注的改进。

label 命令支持别名

团队现在提供了一种机制,允许在向 GitHub issue(或 pull request)批量添加标签时使用别名。如果你发现自己反复添加或移除同一组标签,现在可以为这组操作创建一个别名。

示例:

原来需要输入:

复制代码
@rustbot label +regression-untriaged +I-prioritize +needs-repro

现在可以简化为:

复制代码
@rustbot label regression-needs-triaging

感谢 @apiraino#2216 中实现了这一功能(文档链接)。

自动 backport 提名转为建议式工作流

团队现在为各项目团队提供了一套更流畅的 backport 工作流,用于将补丁回港(backport)到 stable/beta 发布渠道。任何对已有补丁感兴趣、希望将其提前测试的人都可以手动"提名"该补丁进行 backport。Backport 提名将在每周的 triage 团队会议上进行讨论,然后批准或拒绝。

现在,各团队可以配置 triagebot,使其:

  • 自动提名 修复了 beta/stable 渠道中出现的 P-high/P-critical 级别回归(regression)的补丁。
  • 自动在 Zulip 上开启话题 ,以便异步评估 backport 方案(参见 compilerrustdoc 频道)。在 triage 会议期间,只需快速浏览相关话题即可更快作出决定。

感谢 @apiraino#2191 中实现了这一功能(文档链接)。

新增 r? me@rustbot reroll 命令

本季度新增了两项 triagebot 功能,用于改善审查者(reviewer)的分配流程。

r? me 自我分配快捷命令@Urgau#2218 中添加了对 r? me 的支持,作为自我分配 的简写形式。这为用户在将 PR 分配给自己时提供了一种更便捷的替代方式,无需手动输入 r? @username

@rustbot reroll 重新分配命令@Kobzol#2219 中新增了 @rustbot reroll 命令。该命令会重新运行 PR 首次开启时触发的自动审查者分配逻辑,使用最新的 diff 和 owner map 重新进行分配。

移除 [no-mentions] handler

团队已将 [no-mentions] handler 从 triagebot 中移除,因为它已不再必要。该 handler 最初的用途是提醒用户避免在 commit 消息中使用 @ 提及,以防触发被提及用户的通知。

感谢 GitHub 最近的变更------禁止 commit 中的提及触发通知,这一变通方案已不再需要。这一改进简化了所有相关人员的工作流程。

GHA 日志查看器支持高亮选中行

Triagebot 的 GitHub Actions 日志查看器现在支持高亮选中的日志行,功能与 GitHub 原生代码高亮类似。

这一改进由 @Urgau#2234 中实现。用户现在可以在构建日志中选中一行或多行,并通过带高亮的 URL 方便地分享,使他人能够直接定位到长日志中的关键部分。

[mentions] 配置支持 glob 模式

triagebot 中的 [mentions] 配置现在支持 glob 模式匹配

这一改进由 @Urgau#2244 中实现。借助这一变更,现在可以将相关路径归并到同一条规则下。

示例:

现在可以直接写:

toml 复制代码
[mentions."library/{dec2flt,flt2dec}"]
cc = ["@ghost"]

而无需为每个目录分别维护一条独立的配置项。


8. Internal Sites 团队正式开始运作

新成立的 t-internal-sites 团队负责维护和支持 Rust 项目的内部网站,包括 ForgeRFC 站点,并在本季度采取了首批行动。

团队首先着手处理了那些因 t-internal-sites 成立之前缺乏所有权归属而长期滞留的非 RFC 类过期 pull request


二、2026 Q1 计划

1. 继续推进 Q4 2025 未完成目标

Q4 2025 有若干目标未能如期完成,将延续至 Q1 2026 继续推进:

docs.rs 基础设施现代化:尽管 Q4 已在 docs.rs 的 CDN 配置等方面做出了多项改进,但团队仍希望将其从单一 EC2 实例迁移到现代化的托管部署方案。

外部硬件 CI 策略:发布在外部硬件上运行 Rust CI 的需求规范与相关要求。

GCP 开发桌面环境:在 GCP 上搭建一至两台开发桌面(dev desktop)实例。

以上目标的详细背景可参阅团队此前发布的 Q4 2025 计划


2. 账号与访问管理

继续推进 rust-lang/infra-team#64 中启动的工作------为 Rust 项目搭建 Google Workspace,并通过 SAML 实现自动化的账号与访问权限管理。


3. 迁移至 GitHub Rulesets

为获得更大的灵活性与可配置性,团队计划将所有 Rust 项目仓库中的分支保护规则(branch protection rules)迁移至 GitHub Rulesets

目前,分支保护规则已以代码形式定义在 team 仓库中,因此需要更新 IaC 自动化逻辑,使其改为创建 Rulesets。

此次迁移还将带来一个额外收益:支持将合并队列(merge queues)也纳入 IaC 管理------这在当前机制下尚不可行(参见 rust-lang/team#1735)。


三、参与贡献

如果你对参与 Rust 基础设施建设感兴趣,欢迎查阅 infra-team 仓库了解更多信息,也可以在 Zulip 上直接联系团队。

团队始终欢迎新的贡献者加入。


原文作者:Marco Ieni,代表 Rust 基础设施团队发布。原文链接:https://blog.rust-lang.org/inside-rust/2026/01/13/infrastructure-team-q4-2025-recap-and-q1-2026-plan/

相关推荐
红宝村村长1 小时前
torch.autograd.Function.apply()
开发语言·python
AI科技星1 小时前
《数术工坊:非欧射影录》类型:硬核光影·几何本源
c语言·开发语言·网络·量子计算·agi
何以解忧,唯有..1 小时前
Python 中的继承机制:从基础到高级用法详解
java·开发语言·python
神奇小汤圆1 小时前
互联网大厂精选面试八股文(附2026最新Java+AI高频题)| 建议收藏
后端
春天花会开1311 小时前
影像上传前置机网络架构设计模板(含VPN)
后端·架构
程序员cxuan1 小时前
Fable 5 的系统提示词被人扒出来了,精彩,太精彩了。
人工智能·后端·程序员
阿正的梦工坊1 小时前
【Rust】17-Send、Sync 与并发安全抽象
算法·安全·rust
神奇小汤圆1 小时前
颠覆认知:Java 打破双亲委派 ≠ 彻底废弃双亲委派模型
后端
ZengLiangYi2 小时前
5 种 AI 对话数据格式全解析
后端·aigc·ai编程