





























As we close out the fourth quarter of 2025 and step into 2026, here’s what the Infrastructure Team delivered and what we’re focusing on next.
You can find the previous blog post of this series here.
team repoThe Infrastructure Team always tries to move manually configured settings into Infrastructure as Code (IaC). IaC has various benefits:
All GitHub environments for Rust Project repositories are now defined in the team repo.
Here's an example from the bors repository file:
[environments.production]
branches = ["main"]
[environments.staging]
branches = ["main"]
Thanks to amustaque97 for his great work on the GitHub environments issue!
All crates owned by the Rust Project that use crates.io trusted publishing
now configure it as IaC via the team repo.
Here's an example from the measureme repository file:
[[crates-io]]
crates = ["analyzeme", "decodeme", "measureme"]
publish-workflow = "publish.yml"
publish-environment = "publish"
The work to configure trusted publishing for all the Rust Project crates will be easier now.
The crates.io index and the docs.rs website are now served by the Fastly CDN.
We made this change because Fastly donates its CDN to us, and we want to use our AWS credits for other resources.
For docs.rs, we also enabled Fastly shielding, which adds an additional caching layer to reduce the load on our origin server. Here's the effect of enabling shielding on the number of active connections after a brief experiment on December 2 and enabling it permanently on December 3:

Note that the crates.io index is still partially served by CloudFront, and we can configure how much traffic goes to each CDN.
Thanks to the crates.io and docs.rs teams for helping with this!
The Infra and Bors teams continued working on migrating the Rust CI from the legacy Bors (Homu) to the new Bors, written in Rust.
We have now enabled the new bot to merge rust-lang/rust PRs, completing the migration off Homu and improving the reliability of our continuous integration infrastructure 🎉.
We would like to thank all contributors who contributed to the development of bors, in particular Võ Hoàng Long and Sakibul Islam.
We made progress with the Project Goal for parallel benchmarking of the Rust compiler. We now have two x64 machines that run benchmarks in parallel, which reduced the latency of getting a full compiler benchmark result from ~1h 20m to ~40m.
In 2026, we plan to make further improvements to the benchmarking suite, such as enabling benchmarking on other hardware architectures.
The following repositories have renamed their default branch from master to main:
annotate-snippets-rsar_archive_writercmake-rscompiler-builtinsdocs.rsinfra-teammoderation-teamrustrustfmtrustuprustwidestdarchteamthis-week-in-rustThe Rust Foundation hired a new Infrastructure Engineer in Q4. They’ll start in January 2026, increasing the team’s capacity to better serve the Project.
Thanks to Kobzol for helping with the hiring process!
Triagebot is our trusty bot incessantly processing workflows on GitHub and on our Zulip chat.
We implemented several notable changes in Q4 2025.
We now have a mechanism for creating aliases when applying batches of labels to an issue (or a pull request) on GitHub. If you find yourself repeatedly applying or removing the same set of labels, you can now create an alias.
Example:
@rustbot label +regression-untriaged +I-prioritize +needs-repro
could become an alias:
@rustbot label regression-needs-triaging
Thanks to @apiraino for implementing the feature in #2216 (documentation).
We now offer project teams a streamlined workflow for backports to the stable/beta release channels. Patches fixing regressions can be manually "nominated" for backport by anyone interested in having said patch tested earlier. Backport nominations are discussed during the weekly triage team meetings (and then approved or declined).
Now teams can configure the triagebot to:
P-high/P-critical regressions occurred in the beta/stable release channels.Thanks to @apiraino for implementing the feature in #2191 (documentation).
r? me and @rustbot rerollTwo new triagebot features have been added to improve reviewer assignment.
First, @Urgau implemented support for using r? me as a shorthand for self-assignment in #2218. This provides a convenient alternative to manually typing r? @username when assigning a pull request to yourself.
Second, @Kobzol added the new @rustbot reroll command in #2219. This new command re-runs the automatic reviewer assignment logic normally triggered when a PR is first opened, using the latest diff and owner map.
[no-mentions] handler removed from TriagebotWe have removed the [no-mentions] handler from triagebot, as it is no longer needed. This handler was originally used to ask users to avoid @-mentions in commit messages to avoid triggering user notifications.
Thanks to GitHub’s recent change, which disables notifications for mentions in commits, this workaround is no longer necessary. We appreciate GitHub for making this improvement and simplifying the workflow for everyone involved.
Triagebot’s GitHub Actions log viewer now supports highlighting selected log lines, similar to GitHub’s own code highlighting feature.
This improvement was implemented by @Urgau in #2234. It allows users to select one or more lines in build logs and share them easily using highlighted URLs, making it simpler to point others directly to relevant sections of long logs.
Here’s an example of the new functionality in action:

[mentions] now supports glob patternsThe [mentions] configuration in triagebot now supports glob pattern matching.
This improvement was implemented by @Urgau in #2244. With this change, it’s now possible to group related paths under a single rule.
For example, it is now possible to write:
[mentions."library/{dec2flt,flt2dec}"]
cc = ["@ghost"]
instead of maintaining two separate entries for each directory.
The new t-internal-sites team, responsible for maintaining and supporting the Rust project’s internal websites such as the Forge and the RFCs site, has taken its first action.
The team began by addressing stale non-RFC pull requests which had been stale due to the lack of ownership before t-internal-sites introduction.
In Q4 2025, we didn't manage to finish all our goals, so we will continue working on them in Q1 2026:
You can read more about these goals in our Q4 2025 plan.
Finish the work started in rust-lang/infra-team#64 by setting up a Google Workspace for the Rust Project for automated account and access management using SAML.
To have more flexibility and configurability, we want to migrate from branch protection rules to GitHub Rulesets across all Rust Project repositories.
The branch protection rules are already defined as code in the team repo, so we will
need to update the IaC automation to create rulesets instead of branch protection rules.
This would also allow us to configure merge queues as IaC, which is currently not possible (see rust-lang/team#1735).
If you're interested in contributing to Rust's infrastructure, have a look at the infra-team repository to learn more about us and reach out on Zulip.
We are always looking for new contributors!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。