<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/feeds/style.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>rust-inside-out</title>
    <description>rssume processed feed for rust-inside-out</description>
    <link>/feeds/rust-inside-out</link>
    <atom:link href="/feeds/rust-inside-out" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Thu, 4 Jun 2026 09:55:32 +0000</lastBuildDate>
    <generator>rssume</generator>
    <item>
      <title>1.96.0 预发布版本测试</title>
      <dc:creator>Release automation</dc:creator>
      <description>[AI 摘要] Rust 1.96.0 预发布版本开放测试，计划5月28日发布，征求用户反馈。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> Rust 1.96.0 预发布版本开放测试，计划5月28日发布，征求用户反馈。</div><p>1.96.0 预发布版本已准备好进行测试。该版本计划于5月28日发布。<a href="https://dev-doc.rust-lang.org/1.96.0/releases.html" rel="noopener noreferrer">发布说明可在此处查看。</a></p>
<p>您可以通过运行以下命令在本地尝试：</p>
<pre><code><span><span>RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable</span></span></code></pre>
<p>索引位于 <a href="https://dev-static.rust-lang.org/dist/2026-05-26/index.html" rel="noopener noreferrer">https://dev-static.rust-lang.org/dist/2026-05-26/index.html</a>。</p>
<p>您可以在 <a href="https://internals.rust-lang.org/t/rust-1-96-0-pre-release-testing/24357" rel="noopener noreferrer">内部讨论帖</a>中提供反馈。</p>
<p>发布团队还在考虑对我们的预发布流程进行更改：我们非常希望您在这个 <a href="https://github.com/rust-lang/release-team/issues/16" rel="noopener noreferrer">GitHub议题</a> 上提供反馈。</p><p><em>由 mimo-v2.5 模型翻译，花费 977 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/05/26/1.96.0-prerelease/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/05/26/1.96.0-prerelease/</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>项目管理更新 — 2026年4月</title>
      <dc:creator>Tomáš Šedovič and Nurzhan Saken</dc:creator>
      <description>[AI 摘要] 本文概述了Rust项目2026年4月的管理更新，包括项目目标进展、即将举行的RustWeek会议、Outreachy实习、C++互操作性工作以及内容团队的资金批准。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 本文概述了Rust项目2026年4月的管理更新，包括项目目标进展、即将举行的RustWeek会议、Outreachy实习、C++互操作性工作以及内容团队的资金批准。</div>大家好！这是忙碌的一个月。《项目目标RFC》已被接受，我们正式进入2026年目标阶段。撰写本文时，距离RustWeek恰好一周。时光飞逝！
<h2 id="program-management-schedule"><a href="#program-management-schedule" rel="noopener noreferrer"></a>
项目管理日程</h2>
<p>Nurzhan和Tomáš已确定我们的会议安排。简而言之，我们轮流参加每次会议，并已设置为减少连续会议和漫长夜晚的数量。我们还会有一些无需通话的周五，这总是很棒的。</p>
<p><a href="https://calendar.google.com/calendar/u/0?cid=N2RmMTJiZjc2YTFlZjU5MWNlYTQ4MmJjNDMxODEzYzcxZDg1MDViMTFhODk1NjQ1MzUxNjQ5ZTkwZWQ2NzUwNUBncm91cC5jYWxlbmRhci5nb29nbGUuY29t" rel="noopener noreferrer">日历可公开访问</a>，我们已保持其最新状态。</p>
<h2 id="the-2026-rustweek-all-hands"><a href="#the-2026-rustweek-all-hands" rel="noopener noreferrer"></a>
2026年RustWeek / 全体会议</h2>
<p>在5月18日这一周，乌得勒支将短暂成为人均Rustacean浓度最高的城市。与去年一样，它将同时举办RustWeek和Rust全体会议！</p>
<p>预注册和研讨会将于周一开始，实际的RustWeek会议在周二和周三举行，随后是三天的全体会议。</p>
<p>请查看<a href="https://2026.rustweek.org/speakers/" rel="noopener noreferrer">演讲者</a>、<a href="https://2026.rustweek.org/overview/" rel="noopener noreferrer">日程</a>，在网站上了解更多信息，如果您计划参加，<a href="https://event.onliveevent.nl/rustweek-2026" rel="noopener noreferrer">别忘了购票</a>。</p>
<p>我们两人都计划出席。欢迎打招呼！</p>
<h2 id="project-goals"><a href="#project-goals" rel="noopener noreferrer"></a>
项目目标</h2>
<p><a href="https://rust-lang.github.io/rfcs/3935-Project-Goals-2026.html" rel="noopener noreferrer">2026年项目目标RFC已被接受</a>！这比我们计划的时间晚了大约一个月。我们会记住这一点以备明年，由于大多数项目目标团队成员将出席全体会议，我们计划在那里进行复盘。</p>
<p>所有新的跟踪议题已创建，延续的议题也已更新。未续期至2026年的目标现已关闭。</p>
<p>如果您是某个目标的联系人，您将开始收到机器人消息，提醒您在跟踪议题上发布更新。这些提醒大约每月发生两次，如果您最近已发布更新则不会触发。</p>
<p>既然RFC已合并，我们将发布最后一篇2025年下半年项目目标更新博客文章。然后（可能再次在全体会议上启动），我们将规划如何进行未来的更新。人们提出了关于当前帖子格式、显示信息以及是否有用的几个问题。</p>
<h2 id="outreachy"><a href="#outreachy" rel="noopener noreferrer"></a>
Outreachy</h2>
<p>整个4月期间，<a href="https://www.outreachy.org/" rel="noopener noreferrer">Outreachy</a>实习申请者正在设置并开始提交他们的贡献。几天前，组织者选择了四名实习生。</p>
<p>以下是我们的实习生报名参与的项目：</p>
<ul>
<li>从Rust调用重载的C++函数。</li>
<li>大规模Rust编译器的代码覆盖率。</li>
<li>对a-mir-formality类型系统实现进行模糊测试。</li>
<li>提高Rust项目GitHub Actions的安全性。</li>
</ul>
<p>您可以在<a href="https://blog.rust-lang.org/2026/05/04/outreachy-2026-may/" rel="noopener noreferrer">Jack Huey的博文</a>中阅读更多关于项目和Outreachy的信息。</p>
<p>实习生将在接下来的三个月里致力于这些项目。祝贺被选中的实习生，并非常感谢Jack、导师们以及其他所有参与者。</p>
<p>激动人心的时刻即将到来！</p>
<h2 id="c-interop-update"><a href="#c-interop-update" rel="noopener noreferrer"></a>
C++互操作性更新</h2>
<p>2026年2月，基金会聘请了teor以加快互操作问题空间的映射工作，他们的工作进展迅速。</p>
<p>teor一直在<a href="https://github.com/rust-lang/rust-project-goals/issues/388#issuecomment-3970777014" rel="noopener noreferrer">C++互操作项目目标跟踪器</a>上发布月度更新，并在<a href="https://rust-lang.zulipchat.com/#narrow/channel/427678-t-lang.2Finterop/topic/Interop.20Problem.20Space.20Mapping.20-.20Weekly.20Updates/with/574868164" rel="noopener noreferrer">Zulip上发布每周更新</a>。</p>
<p>我们现在在<a href="https://github.com/rustfoundation/interop-initiative" rel="noopener noreferrer">interop-initiative仓库</a>中列出了大约<a href="https://github.com/rustfoundation/interop-initiative/issues" rel="noopener noreferrer">30个互操作问题陈述和用例</a>。如果您对此感兴趣，请务必查看。<a href="https://github.com/rustfoundation/interop-initiative/tree/main/problem-space" rel="noopener noreferrer">问题陈述</a>描述得非常详细，包含示例代码并链接到先前研究。</p>
<p><a href="https://github.com/rustfoundation/interop-initiative/blob/main/problem-space/0002-string-interop.md" rel="noopener noreferrer">这是一个字符串互操作示例</a>。</p>
<p>作为贡献环节的一部分，Outreachy申请者提供了可执行代码示例，例如<a href="https://github.com/rustfoundation/interop-initiative/tree/main/examples/cpp-overloading" rel="noopener noreferrer">从Rust调用重载的C++函数</a>。</p>
<p>teor还启动了一项语言实验来<a href="https://github.com/rust-lang/rust/issues/153629" rel="noopener noreferrer">实现<code>splat</code>功能</a>。这将提供一种在Rust中定义函数重载和可变参数的方法。最初的重点是改善与C++的互操作性，因为C++允许这两者。</p>
<p>除了这项工作显示出直接影响外，Joel Marcey还发布了一篇关于<a href="https://rustfoundation.org/media/rust-foundation-interop-initiative-update-from-research-to-implementation/" rel="noopener noreferrer">Rust基金会互操作计划更新</a>的文章。文章回顾了该计划的成就。这些成就包括与ISO WG21（负责C++标准化的委员会）的合作。对于为C++提供内存安全机制似乎有很强的共识，但这将需要数年时间。</p>
<p>因此，基金会现在更关注那些拥有大型C++代码库并希望（或已开始）采用Rust的项目的直接需求。这就是teor所做所有工作的切入点。</p>
<h2 id="content-team"><a href="#content-team" rel="noopener noreferrer"></a>
内容团队</h2>
<p>过去几个月里，团队难以投入时间为每个人制作有用的内容。我们发布了几次访谈（<a href="https://www.youtube.com/watch?v=rgjTPBRae6I" rel="noopener noreferrer">Daniel Almeida谈Linux中的Rust GPU驱动程序</a>和<a href="https://www.youtube.com/watch?v=wzDESESJH8A" rel="noopener noreferrer">Tyler Mandry谈C++/Rust互操作性</a>），以及<a href="https://youtu.be/NZlmaIgkUQ8?si=EN4q-DALc9ZYna-p" rel="noopener noreferrer">Rust 1.95更新日志概述</a>，但我们还有九个录制积压工作正在进行中。</p>
<p>许多人员也将参加全体会议，我们计划在那里进行更多访谈。</p>
<p>很明显，对于代码、文档等有效的志愿贡献模式，在录制和编辑视频等方面效果不佳。我们能够做到这一点（正如我们已发布的内容所证明的），但所需的时间投入与专业人员即使以最低努力水平所做的相比要高得多。</p>
<p>为此，<a href="https://github.com/rust-lang/leadership-council/pull/279" rel="noopener noreferrer">TC向委员会提出了2026年资金请求</a>。我们要求15,000美元用于雇佣一名编辑来处理我们现有的积压工作，以及为我们将进行大部分未来访谈的活动（全体会议和RustConf）雇佣摄像师。</p>
<p>委员会已批准此请求，我们正在与可能雇佣的人员进行洽谈。</p>
<p>这将使我们能够专注于利用我们的知识和人脉采访优秀人士，并与社区其他人分享他们的想法。</p>
<h2 id="rust-for-linux"><a href="#rust-for-linux" rel="noopener noreferrer"></a>
Linux中的Rust</h2>
<p>许多Linux for Linux的参与者将参加RustWeek和/或全体会议。Rust项目还向内核开发者发出了邀请，其中一些人也将出席。</p>
<p>该项目将在全体会议上举办几次会议：<a href="https://github.com/rust-lang/all-hands-2026/issues/17" rel="noopener noreferrer">原地初始化</a>、<a href="https://github.com/rust-lang/all-hands-2026/issues/16" rel="noopener noreferrer">字段投影</a>、<a href="https://github.com/rust-lang/all-hands-2026/issues/9" rel="noopener noreferrer">CoccinelleForRust</a>、<a href="https://github.com/rust-lang/all-hands-2026/issues/10" rel="noopener noreferrer">将Rust编译为BPF</a>和<a href="https://github.com/rust-lang/all-hands-2026/issues/18" rel="noopener noreferrer">办公时间</a>。</p>
<p>我们继续定期举行双周会议；以下是4月讨论的内容：</p>
<h3 id="zerocopy-features-in-std"><a href="#zerocopy-features-in-std" rel="noopener noreferrer"></a>
std中的zerocopy功能</h3>
<p>鉴于将<a href="https://github.com/google/zerocopy" rel="noopener noreferrer">zerocopy</a>纳入Linux的计划，团队提出了稳定标准库中一些zerocopy最终重新实现的不稳定部分的可能性。</p>
<p>这些是<a href="https://doc.rust-lang.org/nightly/std/intrinsics/fn.ptr_metadata.html" rel="noopener noreferrer"><code>ptr_metadata</code></a>和<a href="https://doc.rust-lang.org/nightly/std/marker/trait.Freeze.html" rel="noopener noreferrer"><code>Freeze</code></a>。将这些纳入将<a href="https://github.com/rust-lang/rust/issues/81513#issuecomment-2414679019" rel="noopener noreferrer">有助于zerocopy维护</a>。</p>
<p><a href="https://github.com/rust-lang/rfcs/pull/3633" rel="noopener noreferrer"><code>Freeze</code>现在有一个开放的RFC作为<code>core::marker::NoCell</code></a>，而<code>ptr_metadata</code>则受阻于<a href="https://github.com/rust-lang/rust/issues/144404" rel="noopener noreferrer">Sized层级</a>。</p>
<h3 id="null-ptr-deref"><a href="#null-ptr-deref" rel="noopener noreferrer"></a>
null-ptr-deref</h3>
<p>团队希望有一种（可选的）保证，即编译器永远不会删除原始指针上的空值检查。在C中，解引用空指针是未定义行为，因此编译器可以优化掉对该指针的后续空值检查。然而，空值检查仍然可以作为防止其他错误的保护措施，在C中，内核现在禁用会删除它的优化。</p>
<h3 id="edition-migration-tooling"><a href="#edition-migration-tooling" rel="noopener noreferrer"></a>
版本迁移工具</h3>
<p>团队希望迁移到新版本，因为它将修复一些现有错误并提供更友好的语言和库API。但是，他们担心相同代码在不同版本中具有不同语义的情况。</p>
<p>进行语义变更是语言明确允许的事情，虽然我们提供工具来迁移或至少突出显示这些情况以防止破坏，但这些工具无法保证捕获100%的问题。</p>
<p>当前方法的一个挑战是，当内核迁移到新版本时，以前的发行版将保留在旧版本上（可能不止一个），在回移植变更时，这些情况很容易被遗漏。任何改变析构顺序的事情（例如2024版本中的<a href="https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html" rel="noopener noreferrer"><code>if let</code>临时作用域变更</a>）都可能导致未定义行为。</p>
<p>Miguel Ojeda提出了这个问题，以了解语言和工具提供了哪些保证。他们正在寻找一种方法来标记相同代码在不同版本中具有不同语义的情况，要求零漏报率（即，不会让任何东西溜走）。</p>
<p>TC解释说，当前的迁移工具（版本lints和<code>cargo fix</code>）并非旨在提供这种保证，尽管我们努力接近这一点并在迁移测试上投入了大量精力。</p>
<p>Benno Lossin建议编写一种工具，该工具将在两个版本下编译被评估的代码并比较MIR输出。如果它们相同，则没有发生语义变更。否则，可能会也可能不会发生变更。这会产生误报风险，但至少审查人员可以确信没有东西被默默接受。这似乎是可行的，可能是项目有兴趣采用和维护的东西，但版本团队内部没有带宽来做这件事。</p>
<p>有趣的是，版本迁移本身不是问题——Linux for Linux团队关注版本迁移指南并检查相关内容。主要问题在于回移植，它是半自动的。如果一个补丁被标记为回移植并且它能干净地应用，那么几乎没有人工监督。当回移植补丁（来自较新版本）使用新功能时，在旧版本上编译失败，提醒人们注意。然而，当代码在两个版本中看起来相同但行为不同时，我们可能会遇到问题。</p>
<p>最终，提出了几种选择，每种选择都有其权衡：</p>
<ul>
<li>留在一个版本上，直到所有稳定分支都迁移到允许全面迁移到新版本的MSRV（最低支持的Rust版本）。</li>
<li>开发一个外部工具，在两个版本下编译代码并检查它们是否产生相同的MIR。</li>
<li>在内核方面开发回移植补丁的审查流程以处理这些情况。</li>
<li>在内核内部开发流程和工具，以编写所有代码，使其始终落在所有分支支持的所有版本的交集内。</li>
</ul>
<p>这个话题我们几乎肯定会再次讨论。</p>
<h2 id="project-director-election-process-update"><a href="#project-director-election-process-update" rel="noopener noreferrer"></a>
项目总监选举流程更新</h2>
<p>2025年秋天，Tomáš协助了项目总监选举。协助者职责的一部分是发布复盘、澄清文档并提出选举流程的变更（如果相关）。</p>
<p>这是<a href="https://hackmd.io/4SgDbeQ9Sd2KlknfT85X0Q" rel="noopener noreferrer">2025年PD选举复盘</a>。<a href="https://github.com/rust-lang/leadership-council/pull/286" rel="noopener noreferrer">澄清选举流程的PR在这里</a>。</p>
<h2 id="worth-a-look"><a href="#worth-a-look" rel="noopener noreferrer"></a>
值得关注</h2>
<h3 id="rust-foundation-posts"><a href="#rust-foundation-posts" rel="noopener noreferrer"></a>
Rust基金会文章</h3>
<ul>
<li><a href="https://rustfoundation.org/media/guest-post-announcing-the-2026-rust-edu-refresh-and-cfp/" rel="noopener noreferrer">宣布2026年Rust-Edu刷新和CFP</a></li>
<li><a href="https://rustfoundation.org/media/project-director-update-march-2026/" rel="noopener noreferrer">项目总监更新 — 2026年3月</a></li>
<li><a href="https://rustfoundation.org/media/welcoming-symposium-to-the-rust-innovation-lab/" rel="noopener noreferrer">欢迎研讨会来到Rust创新实验室</a></li>
<li><a href="https://rustfoundation.org/media/rustconf-2026-speakers-announced-registration-open/" rel="noopener noreferrer">RustConf 2026：演讲者公布，注册开放</a>
<ul>
<li>我们的一位项目经理Tomáš是演讲者之一，<a href="https://rustconf2026.sched.com/event/2KHsg" rel="noopener noreferrer">分享Rust in CPython倡议的进展</a>。</li>
</ul>
</li>
<li><a href="https://rustfoundation.org/media/rust-foundation-interop-initiative-update-from-research-to-implementation/" rel="noopener noreferrer">Rust基金会互操作计划更新：从研究到实施</a></li>
<li><a href="https://rustfoundation.org/media/rust-foundation-and-package-registry-leaders-unite-to-address-open-source-sustainability-crisis/" rel="noopener noreferrer">Rust基金会与包注册表领导者联合解决开源可持续性危机</a></li>
</ul>
<h3 id="rust-project-updates"><a href="#rust-project-updates" rel="noopener noreferrer"></a>
Rust项目更新</h3>
<ul>
<li><a href="https://blog.rust-lang.org/2026/05/01/nvptx-baseline-update/" rel="noopener noreferrer">提高<code>nvptx64-nvidia-cuda</code>目标的基线</a></li>
<li><a href="https://blog.rust-lang.org/2026/04/30/gsoc-2026-selected-projects/" rel="noopener noreferrer">宣布Google Summer of Code 2026选定项目</a></li>
<li><a href="https://blog.rust-lang.org/2026/04/16/Rust-1.95.0/" rel="noopener noreferrer">宣布Rust 1.95.0</a>
<ul>
<li><a href="https://youtu.be/NZlmaIgkUQ8?si=EN4q-DALc9ZYna-p" rel="noopener noreferrer">查看内容团队制作的随附发布更新日志视频</a>（<a href="https://rust-lang.zulipchat.com/#narrow/channel/122651-general/topic/Rust.20Release.20Changelog.20-.201.2E95.2E0.20-.20Video.20by.20Content.20Team/with/586298114" rel="noopener noreferrer">zulip</a>）。</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/2026/04/04/docsrs-only-default-targets/" rel="noopener noreferrer">docs.rs：默认构建更少的目标</a></li>
<li><a href="https://blog.rust-lang.org/2026/04/04/changes-to-webassembly-targets-and-handling-undefined-symbols/" rel="noopener noreferrer">WebAssembly目标和处理未定义符号的变更</a>
<ul>
<li>警告：这将对WebAssembly目标引入一个小的破坏性变更</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/04/17/crates-io-svelte-public-testing/" rel="noopener noreferrer">crates.io：帮助测试我们新的Web前端</a>
<ul>
<li>crates.io已使用Svelte 5重建其前端。您可以在这里测试：https://crates.io/svelte/</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/04/14/infrastructure-team-q1-recap-and-q2-plan/" rel="noopener noreferrer">基础设施团队2026年Q1回顾与Q2计划</a></li>
</ul>
<h2 id="stats"><a href="#stats" rel="noopener noreferrer"></a>
统计数据</h2>
<p>撰写的会议记录总字数：551.3k（2025年6月–2026年4月）</p>
<p>参加会议数：45</p>
<p>撰写的会议记录总字数（4月）：80.8k</p>
<p>每个团队会议的平均（均值）字数：</p>
<ul>
<li>Cargo：1.9k</li>
<li>Lang triage：3.1k</li>
<li>Libs-API：4.7k</li>
<li>领导委员会：2.4k</li>
</ul><p><em>由 mimo-v2.5 模型翻译，花费 10541 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/05/13/program-management-update--april-2026/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/05/13/program-management-update--april-2026/</guid>
      <pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>2026年3月项目总监更新</title>
      <dc:creator>Carol Nichols and David Wood</dc:creator>
      <description>[AI 摘要] 该文章总结了Rust基金会2026年3月董事会会议的主要议题和决定。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 该文章总结了Rust基金会2026年3月董事会会议的主要议题和决定。</div><p>本文涵盖了2026年3月10日举行的Rust基金会董事会会议。<a href="https://rustfoundation.org/resource/march-2026-board-meting/" rel="noopener noreferrer">请在基金会网站上阅读完整的3月会议纪要</a>。要点包括：</p>
<ul>
<li>Futurewei的Sid Askary加入了会议，讨论在Rust基金会内部创建一个专注于AI的研究项目的提案。他分享了草案并回答了董事会的问题。随着提案的发展，董事会将在未来的会议上重新审议。</li>
<li><a href="https://github.com/symposium-dev" rel="noopener noreferrer">Symposium</a>项目申请加入RIL（Rust创新实验室），董事会投票通过了申请。董事会还借此机会建议，将一些讨论主题整理成博文，以澄清哪些类型的项目是RIL的优秀候选者，<a href="https://rustfoundation.org/media/whats-next-for-the-rust-innovation-lab/" rel="noopener noreferrer">工作人员现在已经完成了这项工作</a>！</li>
<li>董事会讨论了基金会工作人员关于如何使crates.io运营更具可持续性的初步想法，这与<a href="https://openssf.org/blog/2025/09/23/open-infrastructure-is-not-free-a-joint-statement-on-sustainable-stewardship/" rel="noopener noreferrer">Rust基金会在2025年9月签署的OpenSSF声明</a>一致。尚未就实施什么做出最终决定，工作人员将在未来几个月内继续与Rust项目的相关部分讨论和完善这些想法。</li>
<li>董事会讨论了在金级会员数量不足以获得投票席位时，如何让它们参与董事会会议的方法。</li>
<li>董事会讨论了关于Rust生态系统基金如何运作的一些初步想法，以使公司更容易支持他们使用的重要crate。除了同意这是一个值得基金会工作人员进一步调查的主题外，没有做出其他决定。</li>
<li><a href="https://processingfoundation.org/" rel="noopener noreferrer">Processing基金会</a>被批准成为基金会的准会员。</li>
<li><a href="https://rustfoundation.org/media/rust-foundation-interop-initiative-update-from-research-to-implementation/" rel="noopener noreferrer">Teor作为承包商加入了C++互操作性倡议</a>。</li>
<li><a href="https://rustfoundation.org/media/canonical-joins-the-rust-foundation-as-a-gold-member/" rel="noopener noreferrer">Canonical作为金级会员加入</a>！</li>
<li>Rust基金会加入了DataDog开源计划，这为我们提供了一个可观测性平台来监控和处理基础设施事件。</li>
<li>安全和基础设施团队一直在与crates.io团队、安全响应和安全代码工作组合作，共同解决crates.io上的拼写错误模仿攻击。</li>
<li>互操作性倡议已<a href="https://github.com/rust-lang/rust-project-goals/issues/388#issuecomment-3970777014" rel="noopener noreferrer">确定了需要重点关注的高优先级用例</a>。</li>
<li>为2026年会议重新设计RustConf网站的工作已经完成（<a href="https://rustconf.com" rel="noopener noreferrer">并且已经上线</a>）。</li>
</ul><p><em>由 mimo-v2.5 模型翻译，花费 1843 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/05/04/project-director-update/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/05/04/project-director-update/</guid>
      <pubDate>Mon, 4 May 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>crates.io：帮助测试我们新的 Web 前端</title>
      <dc:creator>Tobias Bieniek</dc:creator>
      <description>[AI 摘要] crates.io 已将其前端从 Ember.js 迁移至 Svelte 5，并邀请社区测试这个即将成为默认选项的新界面。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> crates.io 已将其前端从 Ember.js 迁移至 Svelte 5，并邀请社区测试这个即将成为默认选项的新界面。</div><p>我们一直在将 crates.io 的前端从 Ember.js 迁移到 Svelte 5（<a href="https://github.com/rust-lang/crates.io/issues/12515" rel="noopener noreferrer">跟踪 issue</a>），新的 Svelte 应用现在已<strong>准备好在 <a href="https://crates.io/svelte/" rel="noopener noreferrer">https://crates.io/svelte/</a> 接受公开测试</strong>。我们非常希望在将其设为默认之前，能得到你的帮助进行试用。</p>
<p>目前，Svelte 应用旨在成为 Ember.js 应用的 1:1 移植。它在外观和行为上应完全相同（我们的 UI 测试套件，包括视觉回归测试，已经在两个应用上都通过了），因此你注意到的任何显著差异都是我们想听到的 bug。为了便于比较两个应用，Ember.js 应用中的一些粗糙之处也被保留了下来。一旦我们不再同时维护两个前端，这些都会被改进。</p>
<p>两个应用来自同一个域，并共享会话状态和数据，因此你只需访问 <a href="https://crates.io/svelte/" rel="noopener noreferrer">https://crates.io/svelte/</a> 即可继续正常使用网站，无需再次登录。如果与 Ember.js 应用相比，有任何外观或行为上的不同，请通过 <a href="https://github.com/rust-lang/crates.io/issues/new?template=bug_report.yml" rel="noopener noreferrer">GitHub</a> 或 Zulip（<a href="https://rust-lang.zulipchat.com/#narrow/channel/318791-t-crates-io" rel="noopener noreferrer">#t-crates-io</a>）告知我们。</p>
<p>如果测试顺利，我们将在未来几周内将 Svelte 应用设为默认，并期待在此基础上构建更多功能。</p>
<p>我们要感谢 <a href="https://emberjs.com/teams/" rel="noopener noreferrer">Ember.js 团队</a> 提供了多年来为 crates.io 提供良好服务的框架，以及 <a href="https://svelte.dev" rel="noopener noreferrer">Svelte 团队</a> 让这次向新事物的过渡如此愉快。特别感谢 crates.io 团队的 <a href="https://github.com/eth3lbert" rel="noopener noreferrer">@eth3lbert</a> 审阅了大部分迁移 Pull 请求。</p><p><em>由 mimo-v2.5 模型翻译，花费 1454 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/04/17/crates-io-svelte-public-testing/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/04/17/crates-io-svelte-public-testing/</guid>
      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>基础设施团队2026年第一季度回顾与第二季度计划</title>
      <dc:creator>Marco Ieni</dc:creator>
      <description>[AI 摘要] 基础设施团队回顾2026年第一季度成就并概述第二季度计划，包括GitHub规则集迁移、CI安全改进和硬件密钥分发。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 基础设施团队回顾2026年第一季度成就并概述第二季度计划，包括GitHub规则集迁移、CI安全改进和硬件密钥分发。</div><p>以下是基础设施团队在2026年第一季度取得的成果以及我们在第二季度的重点工作。</p>
<p>您可以在<a href="https://blog.rust-lang.org/inside-rust/2026/01/13/infrastructure-team-q4-2025-recap-and-q1-2026-plan/" rel="noopener noreferrer">这里</a>找到本系列的上一篇博文。</p>
<h2 id="q1-accomplishments"><a href="#q1-accomplishments" rel="noopener noreferrer"></a>
第一季度成就</h2>
<h3 id="move-to-github-rulesets"><a href="#move-to-github-rulesets" rel="noopener noreferrer"></a>
迁移到 GitHub 规则集</h3>
<p>我们开始从分支保护规则迁移到<a href="https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets" rel="noopener noreferrer">GitHub 规则集</a>。</p>
<blockquote>
<p>规则集是 GitHub 建议保护分支和标签的新方式。它们比经典的分支保护具有更多的可配置性，并且是设置合并队列等新功能的唯一 API 方式。</p>
</blockquote>
<p>我们已转换所有仓库，但<a href="https://github.com/rust-lang/rust" rel="noopener noreferrer"><code>rust</code></a>仓库除外。我们正在<a href="https://github.com/rust-lang/team/pull/2327" rel="noopener noreferrer">处理中</a>！</p>
<p>作为这项工作的一部分，我们还将所有分支保护和规则集选项配置化，通过 <code>team</code> 仓库管理，实现基础设施即代码。</p>
<p>以下是新增的配置选项：</p>
<ul>
<li><a href="https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L460" rel="noopener noreferrer"><code>allowed-merge-apps</code></a></li>
<li><a href="https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L462" rel="noopener noreferrer"><code>merge-queue</code></a></li>
<li><a href="https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L487" rel="noopener noreferrer"><code>prevent-deletion</code></a></li>
<li><a href="https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L490" rel="noopener noreferrer"><code>prevent-force-push</code></a></li>
<li><a href="https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L433" rel="noopener noreferrer"><code>require-conversation-resolution</code></a></li>
<li><a href="https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L438" rel="noopener noreferrer"><code>require-linear-history</code></a></li>
</ul>
<p>更多详情，请参见<a href="https://github.com/rust-lang/team/issues/2356" rel="noopener noreferrer">GitHub 问题</a>。</p>
<h3 id="improved-ci-security"><a href="#improved-ci-security" rel="noopener noreferrer"></a>
增强 CI 安全性</h3>
<p>我们始终努力提升安全态势。以下是本季度最重要的几个例子：</p>
<ul>
<li>在<a href="https://github.com/rust-lang/team" rel="noopener noreferrer"><code>team</code></a>仓库中，我们启用了<a href="https://docs.renovatebot.com/" rel="noopener noreferrer">Renovate</a>，这是一个自动创建拉取请求以保持 GitHub Actions 和 Rust 依赖更新的机器人。这使我们更容易保持依赖更新并及时修复安全问题。</li>
<li>在<a href="https://github.com/rust-lang/compiler-builtins" rel="noopener noreferrer"><code>compiler-builtins</code></a> CI 中，我们<a href="https://github.com/rust-lang/compiler-builtins/pull/1114" rel="noopener noreferrer">启用了 Renovate</a> 并<a href="https://github.com/rust-lang/compiler-builtins/pull/1113" rel="noopener noreferrer">解决</a>了<a href="https://zizmor.sh" rel="noopener noreferrer"><code>zizmor</code></a> 报告的安全问题，为在 CI 中以更安全的方式运行 RISC-V 自托管运行器做准备。</li>
<li>我们发布了 <code>crates-io-auth-action</code> <a href="https://github.com/rust-lang/crates-io-auth-action/releases/tag/v1.0.4" rel="noopener noreferrer">v1.0.4</a>，更新其依赖项，并在 GitHub 宣布弃用 Actions 运行器上的 Node 20 后，将其从 Node 20 迁移到 Node 24。</li>
</ul>
<h3 id="two-new-dev-desktops"><a href="#two-new-dev-desktops" rel="noopener noreferrer"></a>
两个新的开发桌面</h3>
<p>我们配置了两个新的开发桌面：<code>dev-desktop-us-2.infra.rust-lang.org</code> 和 <code>dev-desktop-eu-2.infra.rust-lang.org</code>。</p>
<p>我们还为开发桌面启用了 IPv6 访问，使其更容易从更多网络环境访问。详情请参见<a href="https://github.com/rust-lang/simpleinfra/issues/186" rel="noopener noreferrer">GitHub 问题</a>。</p>
<p>更多信息请查阅<a href="https://forge.rust-lang.org/infra/docs/dev-desktop.html" rel="noopener noreferrer">Forge 文档</a>。</p>
<h3 id="bigger-docs-rs-instance"><a href="#bigger-docs-rs-instance" rel="noopener noreferrer"></a>
更大的 docs.rs 实例</h3>
<p>我们正经历着 <code>crates.io</code> 上发布 crates 的空前增长，这对 <code>docs.rs</code> 基础设施造成了巨大压力，因为它必须为更多 crates 构建文档。</p>
<p>为跟上这一增长，我们将 <code>docs.rs</code> 实例升级到了更强大的版本，RAM 和 CPU 核心数都翻了一番。</p>
<h3 id="improved-access-controls-for-rust-infrastructure-with-saml-sso"><a href="#improved-access-controls-for-rust-infrastructure-with-saml-sso" rel="noopener noreferrer"></a>
通过 SAML SSO 改进 Rust 基础设施的访问控制</h3>
<p>我们引入了 Google SSO 作为 Rust 基础设施服务的一部分。我们为基础设施团队启用了 Google Workspace 帐户，并验证了一些关键基础设施提供商（如 Datadog 和 Fastly）的 SAML 设置。</p>
<p>更多详情请参见<a href="https://github.com/rust-lang/infra-team/issues/64" rel="noopener noreferrer">GitHub 问题</a>。</p>
<h3 id="triagebot-enhancements"><a href="#triagebot-enhancements" rel="noopener noreferrer"></a>
Triagebot 增强功能</h3>
<p>Triagebot 是我们可靠的机器人，在 GitHub 和 Zulip 聊天中持续处理工作流。</p>
<p>我们在 2026 年第一季度实施了多项重要更改。</p>
<h4 id="github-issue-comments-viewer"><a href="#github-issue-comments-viewer" rel="noopener noreferrer"></a>
GitHub issue 评论查看器</h4>
<p>我们为 Triagebot 添加了<a href="https://github.com/rust-lang/triagebot/pull/2251" rel="noopener noreferrer">GitHub issues 和 PR 查看器</a>。它主要针对 GitHub 对长 issues 和 PR 的“加载更多”按钮无能为力的情况而设计。</p>
<p>可通过长 issues 和 PR 顶部的<a href="https://github.com/rust-lang/triagebot/pull/2278" rel="noopener noreferrer"><code>查看所有评论</code>链接</a>访问。</p>
<p>例如 <a href="https://triage.rust-lang.org/gh-comments/rust-lang/triagebot/issues/2251" rel="noopener noreferrer">triagebot#2251</a>：</p>
<img alt="TriageBot 示例" src="triagebot-example.png">
<p>虽然它起步时目标较小，但在过去一个季度中有了很大发展，包括：</p>
<ul>
<li>一个独立的“导出”按钮（在 <a href="https://github.com/rust-lang/triagebot/pull/2274" rel="noopener noreferrer">#2274</a> 中实现）</li>
<li>一个用于审查线程的目录（在 <a href="https://github.com/rust-lang/triagebot/pull/2360" rel="noopener noreferrer">#2360</a> 中实现）</li>
<li>展开/折叠线程的按钮（在 <a href="https://github.com/rust-lang/triagebot/pull/2355" rel="noopener noreferrer">#2355</a> 中实现）</li>
<li>以及其他小改进</li>
</ul>
<h4 id="organization-wide-default-configuration"><a href="#organization-wide-default-configuration" rel="noopener noreferrer"></a>
组织范围的默认配置</h4>
<p>Triagebot 有许多功能和配置，虽然在仓库中启用功能并不难（需要一个拉取请求），但这无法扩展到 rust-lang 组织及其超过 200 个仓库的规模。</p>
<p>为了解决所有仓库中功能可用性不均的问题，我们<a href="https://github.com/rust-lang/triagebot/pull/2292" rel="noopener noreferrer">在 Triagebot 代码库中添加了组织范围默认配置的支持</a>，并开始在组织范围内启用一些功能。</p>
<p>即将启用的组织范围功能的公告在 Zulip 的 <a href="https://rust-lang.zulipchat.com/#narrow/channel/533458-t-infra.2Fannouncements/topic/Triagebot.20Organization-Wide.20Defaults/with/579425485" rel="noopener noreferrer">#<strong>t-infra/announcements&gt;Triagebot Organization-Wide Defaults</strong></a> 中发布。</p>
<h4 id="user-info-command"><a href="#user-info-command" rel="noopener noreferrer"></a>
<code>user-info</code> 命令</h4>
<p>这个新的 Zulip 命令最初是作为<a href="https://github.com/rust-lang/triagebot/pull/2271" rel="noopener noreferrer"><code>comments</code> 命令</a>出现的，用于查看最近的用户评论，但后来<a href="https://github.com/rust-lang/triagebot/pull/2317" rel="noopener noreferrer">扩展</a>为更通用的 <code>user-info</code> 命令，显示给定 GitHub 用户帐户的最近活动（PR、仓库）和帐户创建日期。</p>
<p>这是我们帮助审查者和维护者处理草率的 AI 生成 PR 的努力的一部分。</p>
<h4 id="per-team-rotation-mode"><a href="#per-team-rotation-mode" rel="noopener noreferrer"></a>
每团队轮换模式</h4>
<p>Triagebot 在多个仓库中处理审查者的自动分配。直到二月份，还不能设置每团队轮换模式。</p>
<p>现在可以通过 Zulip 命令 <code>work set-team-rotation-mode &lt;team&gt; off/on</code> 实现，由 <code>@Kobzol</code> 在 <a href="https://github.com/rust-lang/triagebot/pull/2273" rel="noopener noreferrer">#2273</a> 中实现。</p>
<h4 id="per-repository-review-preferences"><a href="#per-repository-review-preferences" rel="noopener noreferrer"></a>
每仓库审查偏好</h4>
<p>继续审查者分配的主题，以前只能为 <code>rust-lang/rust</code> 设置审查偏好，尽管 Triagebot 处理多个仓库。</p>
<p><code>@Kobzol</code> 在 <a href="https://github.com/rust-lang/triagebot/pull/2286" rel="noopener noreferrer">#2286</a> 中解决了这个问题。现在可以<a href="https://forge.rust-lang.org/triagebot/review-queue-tracking.html#usage" rel="noopener noreferrer">设置每仓库审查偏好</a>。</p>
<h4 id="report-banned-users-to-moderator-stream-on-zulip"><a href="#report-banned-users-to-moderator-stream-on-zulip" rel="noopener noreferrer"></a>
向 Zulip 主持人流报告被封禁用户</h4>
<p>作为支持不同团队需求的一部分，我们实施了一个自动报告系统，用于在 Zulip 上报告我们 GitHub 组织中被封禁的用户（在 <a href="https://github.com/rust-lang/triagebot/pull/2269" rel="noopener noreferrer">#2269</a> 中实现）。</p>
<p>此功能的目标是通过自动检索该信息并将其发布到主持人的 Zulip 频道，来减轻主持人截图和手动归档不当评论及用户操作的负担。</p>
<h4 id="clippy-s-zulip-lint-nomination-topic"><a href="#clippy-s-zulip-lint-nomination-topic" rel="noopener noreferrer"></a>
Clippy 的 Zulip lint 提名主题</h4>
<p>类似于上一个主题，我们还帮助 <strong>T-clippy</strong> <a href="https://github.com/rust-lang/rust-clippy/pull/16614" rel="noopener noreferrer">在 Zulip 上设置了自动 FCP 主题</a>，当他们想要提名一个 lint 进行讨论时。</p>
<p>作为这项工作的一部分，我们还<a href="https://github.com/rust-lang/triagebot/pull/2334" rel="noopener noreferrer">添加了在 GitHub 上添加回复评论</a>的功能，其中包含指向已创建 Zulip 主题的链接。</p>
<h4 id="new-zulip-commands-to-handle-backports-and-assign-priority-to-issues"><a href="#new-zulip-commands-to-handle-backports-and-assign-priority-to-issues" rel="noopener noreferrer"></a>
用于处理反向移植和分配问题优先级的新 Zulip 命令</h4>
<p>项目成员现在可以使用两个新的 Zulip 命令来为 rust-lang/rust 的 issues 和拉取请求应用标签：</p>
<ul>
<li><code>backport [stable | beta ] [approve | decline ] &lt;pr #&gt;</code>：接受或拒绝用于反向移植修复回归的补丁</li>
<li><code>assign-prio &lt;issue #&gt; [ critical | high | medium | low | &lt;empty&gt;]</code>：为问题分配优先级标签（虽然主要由编译器团队使用，但对所有人均可用）</li>
</ul>
<p>更多详情，请参见<a href="https://forge.rust-lang.org/triagebot/zulip-commands.html#stream-commands" rel="noopener noreferrer">文档</a>。</p>
<h2 id="q2-plans"><a href="#q2-plans" rel="noopener noreferrer"></a>
第二季度计划</h2>
<h3 id="finish-q1-goals"><a href="#finish-q1-goals" rel="noopener noreferrer"></a>
完成第一季度目标</h3>
<p>在第一季度，我们未能完成所有目标，因此将在第二季度继续努力：</p>
<ul>
<li><strong>docs.rs 基础设施现代化：</strong>尽管我们在第一季度对 docs.rs 进行了一些改进，例如使用 GitHub OIDC 将容器镜像发布到 AWS ECR，但我们仍然希望从单个 EC2 实例迁移到现代化、托管的部署。</li>
<li><strong>外部硬件 CI 策略：</strong>发布在外部硬件上运行 Rust CI 的要求。</li>
<li><strong>迁移到 GitHub 规则集：</strong>将 <code>rust</code> 仓库迁移到 GitHub 规则集。</li>
<li><strong>SAML SSO：</strong>
<ul>
<li>从 <code>team</code> 仓库启用配置 Google Workspace 帐户。</li>
<li>引导所有需要基础设施访问的用户，并为其他服务提供商（如 AWS）添加 SAML 设置。</li>
</ul>
</li>
</ul>
<h3 id="improve-ci-security-and-developer-experience"><a href="#improve-ci-security-and-developer-experience" rel="noopener noreferrer"></a>
改进 CI 安全性和开发者体验</h3>
<p>我们希望使 Rust 项目的 CI 更安全、更易于使用。</p>
<p>我们有许多想法，但尚不确定优先处理哪些，以下是一些示例：</p>
<ul>
<li>使 Rust 项目成员更容易采用 Renovate 等工具来保持依赖更新和安全。</li>
<li>检查依赖的 CVE。</li>
<li>添加更多静态分析工具，如<a href="https://zizmor.sh" rel="noopener noreferrer"><code>zizmor</code></a>，以保护更多 CI 工作流。</li>
<li>通过创建围绕 CI 作业持续时间和失败率等指标的仪表板来提高 CI 可观测性。由于 Rust Foundation <a href="https://rustfoundation.org/media/rust-foundation-joins-datadogs-open-source-program/" rel="noopener noreferrer">加入了</a> Datadog 的开源计划，我们计划为此使用 Datadog。</li>
<li>提高 CI 作业测试覆盖率的可见性。</li>
</ul>
<h3 id="hardware-security-keys-for-critical-infrastructure-access"><a href="#hardware-security-keys-for-critical-infrastructure-access" rel="noopener noreferrer"></a>
用于关键基础设施访问的硬件安全密钥</h3>
<p>我们希望通过使用硬件安全密钥进一步保护对关键 Rust 基础设施的访问。Rust Foundation 与<a href="https://www.yubico.com/why-yubico/secure-it-forward/" rel="noopener noreferrer">Yubico</a> 合作，我们希望向有权访问关键基础设施的 Rust 团队提供 YubiKeys。</p>
<p>我们的计划是在五月的<a href="https://2026.rustweek.org/#week-schedule" rel="noopener noreferrer">Rust All Hands</a>期间分发硬件密钥。详情请参见<a href="https://github.com/rust-lang/infra-team/issues/245" rel="noopener noreferrer">GitHub 问题</a>。</p>
<h2 id="join-us"><a href="#join-us" rel="noopener noreferrer"></a>
加入我们！</h2>
<p>如果您有兴趣为 Rust 的基础设施做贡献，请查看<a href="https://github.com/rust-lang/infra-team" rel="noopener noreferrer">infra-team</a> 仓库以了解更多关于我们的信息，并在<a href="https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra" rel="noopener noreferrer">Zulip</a> 上联系我们。</p>
<p>我们始终在寻找新的贡献者！</p><p><em>由 mimo-v2.5 模型翻译，花费 10325 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/04/14/infrastructure-team-q1-recap-and-q2-plan/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/04/14/infrastructure-team-q1-recap-and-q2-plan/</guid>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>项目管理动态——2026年3月</title>
      <dc:creator>Tomas Sedovic and Nurzhan Saken</dc:creator>
      <description>[AI 摘要] 本文总结了 Rust 项目 2026 年 3 月的管理更新，涵盖团队会议改进、项目目标进展、技术讨论及社区活动。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 本文总结了 Rust 项目 2026 年 3 月的管理更新，涵盖团队会议改进、项目目标进展、技术讨论及社区活动。</div><p>大家好，如果你所在的地区正值春季，祝你春日愉快！</p>
<h2 id="team-meetings"><a href="#team-meetings" rel="noopener noreferrer"></a>
团队会议</h2>
<p>入职后，Nurzhan 已经能够（并且感到舒适地）独立参加会议。这让我们可以平均分担工作，同时保持同样的项目管理覆盖。我们可以相互补位，总体上，个人的会议负担已经减半。</p>
<p>这太棒了！尽管能够参与决策过程、帮助他人并记录讨论以供后人参考是一件美妙的事，但这也是一项消耗精力的工作——尤其是在一天内连续参加6到7小时会议的日子里。</p>
<p>我们仍在调整会议日程，但我们已经做出一个明确的选择，即不进行专门化。我们都参与每个团队的讨论，认识团队成员，也让团队成员认识我们。这使我们更容易分享知识和背景信息，也能在对方缺席时顶替工作。</p>
<p>当然，我们都会定期沟通，阅读未参会的会议记录，如果有任何事项需要跟踪或在会议间交接，我们也会处理。</p>
<p>这解放了我们，让我们有更多时间处理其他所有工作！</p>
<p>关于会议，发生了两项变化。首先，<a href="https://rust-lang.zulipchat.com/#narrow/channel/346005-t-style/topic/Meeting.202026-03-31/near/582686622" rel="noopener noreferrer">Josh Triplett 提议暂停 Style 团队的会议</a>。在过去的几个月里（更早之前则是零星召开），只有两名 Style 团队成员参会。</p>
<p>该团队需要更多成员（rustfmt 也是如此），并且最好有一位 rustfmt 联络员参会。我们正在寻找解决方案，但目前，紧急问题可以通过异步方式处理。</p>
<p>另一个消息是，两个 Libs-API 会议合并为了一个。我们以前有一次会议处理被提名到团队的事项（问题、PR 等），另一次会议则处理待定的<a href="https://std-dev-guide.rust-lang.org/development/feature-lifecycle.html" rel="noopener noreferrer"> API 变更提案 (ACP)</a>。这两次会议都在周二举行，中间相隔一小时。</p>
<p>但这两次会议之间的界限并不明确（如果我们清空了提名积压事项，就会在第一次会议中开始查看 ACP），并且大家通常更希望能连续开会。</p>
<p><a href="https://github.com/rust-lang/calendar/pull/114" rel="noopener noreferrer">现在他们可以了！</a>两次会议合并了，这让大家可以连续开会，并且还能提前一小时结束。如果讨论特别耗时，甚至能提前更多。</p>
<h2 id="program-management-board"><a href="#program-management-board" rel="noopener noreferrer"></a>
项目管理看板</h2>
<p>我们现在已经为<a href="https://github.com/orgs/rust-lang/projects/69/views/2" rel="noopener noreferrer"> Rust 项目管理看板</a>填充了内容，以便你了解我们的工作动态。</p>
<p>这让我们能够更好地跟踪和协调工作，也使工作更加透明。</p>
<h2 id="project-goals"><a href="#project-goals" rel="noopener noreferrer"></a>
项目目标</h2>
<p><a href="https://github.com/rust-lang/rfcs/pull/3935" rel="noopener noreferrer">2026 年项目目标 RFC</a> 现已开放！这是目标团队过去几个月工作的成果。</p>
<p>你可以查看一下，如果有任何问题，请访问 <a href="https://rust-lang.zulipchat.com/#narrow/channel/546987-project-goals.2F2026-workshop" rel="noopener noreferrer">project-goals/2026-workshop</a> 频道。</p>
<p>如果你是团队负责人，请审核该 RFC 并提出顾虑或勾选你的同意框！</p>
<p>2025 年下半年的目标期也即将结束。我们正在准备最后的更新（我们希望在 2026 年 RFC 合并后发布），然后将全力推进 2026 年的工作。</p>
<p>相当数量的 2025 年目标将延续至 2026 年，对于这些目标，不会有太大变化。我们将复用跟踪问题、Zulip 频道以及其他一切。</p>
<p>新目标将会<a href="https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue" rel="noopener noreferrer">创建跟踪问题</a>。任何目标更新都应发布在那里，并会自动发布到<a href="https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals" rel="noopener noreferrer">相应的 Zulip 频道</a>，我们可以在那里进行讨论。</p>
<p>我们每月还会发送两次提醒，要求发布更新（如果有近期更新，将不会发送提醒）。</p>
<h2 id="fls-release-notes"><a href="#fls-release-notes" rel="noopener noreferrer"></a>
FLS 发布说明</h2>
<p><a href="https://rust-lang.github.io/fls/" rel="noopener noreferrer">FLS</a> 是用于安全关键环境（如汽车）的 Rust 规范，最初由 <a href="https://ferrous-systems.com/" rel="noopener noreferrer">Ferrous Systems</a> 开发。它已捐赠给 Rust 项目，现在由 <a href="https://github.com/rust-lang/fls-team" rel="noopener noreferrer">FLS 团队</a> 维护。</p>
<p>作为他们<a href="https://rust-lang.github.io/rust-project-goals/2026/stabilize-fls-releases.html" rel="noopener noreferrer">稳定 FLS 发布</a> 目标的一部分，他们计划在 Rust 任何给定版本发布六周后发布新版 FLS。</p>
<p>到目前为止，他们一直在追赶进度：等待发布，然后查阅发布说明，寻找需要在文档中反映的任何更改（特别是语言变更）。他们希望更早开始，但在发布说明全部编写完成之前，他们需要一份包含在给定版本中的问题列表。</p>
<p>因此，Pete LeVasseur<a href="https://rust-lang.zulipchat.com/#narrow/channel/241545-t-release/topic/meeting.202026-03-27/with/582221788" rel="noopener noreferrer">联系了发布团队</a>，并<a href="https://rust-lang.zulipchat.com/#narrow/channel/241545-t-release/topic/t-fls.20would.20like.20to.20help.20you.20.28and.20help.20ourselves.29.20with.20notes/with/583905135" rel="noopener noreferrer">同意尝试参与发布问题的初始分类流程</a>。这样，他们能更好地理解流程，提供帮助，并尽早获得所需的问题列表！</p>
<p>这是一个很好的提醒：<a href="https://forge.rust-lang.org/release/release-notes.html" rel="noopener noreferrer">该流程是完全公开的</a>。始终欢迎更多贡献者，这也可以作为进入更广泛贡献的易入门点。</p>
<h2 id="mirroring-crates-io-and-rust-releases"><a href="#mirroring-crates-io-and-rust-releases" rel="noopener noreferrer"></a>
镜像 crates.io 和 Rust 发布</h2>
<p>3 月初，我们启动了<a href="https://rust-lang.github.io/rust-project-goals/2026/mirroring.html" rel="noopener noreferrer">实现可验证镜像原型</a>项目目标。这是先前签名探索工作的延续，但焦点更窄。计划是为 Rust crate 和发布提供镜像，以帮助 GitHub Actions 等高流量环境。</p>
<p>该原型将让我们验证所提出的方法（例如使用<a href="https://theupdateframework.io/" rel="noopener noreferrer">更新框架 (TUF)</a> 来验证镜像更新）和密钥轮换，同时提供有助于减少带宽使用和成本的功能（通过 GitHub Actions 访问 Azure 上托管的镜像）。</p>
<p>此功能将在不稳定特性标志后实现，但如果经过验证，我们可以用它来构建更通用的镜像支持。</p>
<p>在此目标的跟踪问题创建之前，更新将发布到 Zulip 的 <a href="https://rust-lang.zulipchat.com/#narrow/channel/417663-tbd-signing" rel="noopener noreferrer">tbd-signing</a> 频道。</p>
<h2 id="rust-foundation-maintainers-fund-rfmf-rfc"><a href="#rust-foundation-maintainers-fund-rfmf-rfc" rel="noopener noreferrer"></a>
Rust 基金会维护者基金 (RFMF) RFC</h2>
<p>2025 年 12 月，我们<a href="https://blog.rust-lang.org/inside-rust/2025/12/19/program-management-update--end-of-2025/#rust-foundation-maintainer-fund" rel="noopener noreferrer">提到了维护者基金</a> 以及<a href="https://github.com/rust-lang/team/blob/main/teams/rfmf-design-committee.toml" rel="noopener noreferrer"> RFMF 设计委员会</a>的成立。他们采访了几个有类似计划的开源组织（Python 软件基金会、Scala 中心、Django 和 Zig 软件基金会），并<a href="https://github.com/rust-lang/rfcs/pull/3931" rel="noopener noreferrer">提出了一个 RFC</a>。</p>
<p>该 RFC 提议设立一个“驻场维护者”角色：</p>
<blockquote>
<p>驻场维护者计划致力于雇佣长期维护者并全额资助他们的维护工作。驻场维护者的时间分配在由他们支持的团队指导的优先事项和项目内自选的优先事项之间。</p>
</blockquote>
<p>这些维护者预计是项目成员，在社区中有良好声誉，能够长期致力于保持项目的健康和发展。</p>
<p>它还提议组建一个资助团队，该团队将与领导委员会一起选拔候选人，并确保计划的整体成功。</p>
<p>这与提议的<a href="https://github.com/rust-lang/rfcs/pull/3919" rel="noopener noreferrer">资助计划</a> 是互补的，后者为已经为项目做出有价值工作的人提供十二个月的财务支持。他们不是被雇佣或签约，但我们要认可他们的出色工作，并让他们更容易继续下去。</p>
<h2 id="outreachy-internships"><a href="#outreachy-internships" rel="noopener noreferrer"></a>
Outreachy 实习</h2>
<p>Rust 项目正在参与 <a href="https://www.outreachy.org/" rel="noopener noreferrer">Outreachy</a>！这是一个为科技领域代表性不足人群提供的带薪开源实习计划。</p>
<p>委员会已为 <a href="https://github.com/rust-lang/leadership-council/issues/264" rel="noopener noreferrer">2026 年 5 月至 8 月实习轮次分配了三个实习名额的资金</a>。</p>
<p>我们已提出<a href="https://www.outreachy.org/communities/cfp/the-rust-project/" rel="noopener noreferrer">五个项目</a>（将 Rust 添加到现有的 C/C++ 构建系统、从 Rust 调用重载的 C++ 函数、大规模 Rust 编译器代码覆盖率、对 a-mir-formality 类型系统实现进行模糊测试，以及改善我们的 GitHub Actions 安全性）。目前，我们处于贡献期。这是申请人为项目做出贡献的阶段，这些贡献将有助于选拔实习生。</p>
<p>就个人而言，我（Tomas）对此感到非常高兴。我热爱 Outreachy 所做和所代表的事情。我认识并曾与几个参与该计划的人共事，他们都是非常出色的人和同事。</p>
<p>非常感谢 Jack Huey 组织了这件事！也感谢 Niko、Rémy、tiif、teor、Joel Marcey 和 Ethan Smith 作为导师和联合导师报名！</p>
<h2 id="rust-for-linux"><a href="#rust-for-linux" rel="noopener noreferrer"></a>
Rust for Linux</h2>
<p>Boxy 负责<a href="https://rust-lang.github.io/rust-project-goals/2026/const-generics.html" rel="noopener noreferrer">常量泛型</a>，他想了解哪些领域对 Rust for Linux 团队最为相关。常量泛型涵盖了许多功能，因此确定优先级很重要。</p>
<p>以下是团队提出的内容：</p>
<ol>
<li>
<p><strong>在常量泛型类型上进行算术运算的能力</strong>：例如，内核有一个类型 <a href="https://rust.docs.kernel.org/next/kernel/num/bounded/struct.Bounded.html" rel="noopener noreferrer"><code>Bounded</code></a>，它有一个值和一个最大大小（以位为单位）。位宽和值都是常量值。他们希望能够对这些类型进行算术运算（从位移开始），这将保证结果在编译时适合指定大小。</p>
</li>
<li>
</li><li>
<p><strong>参数位置的常量泛型</strong>：目前，常量泛型类型必须在类型绑定部分（尖括号内）指定。因此，例如，你必须写：<code>Bounded::&lt;u8, 4&gt;::new::&lt;7&gt;()</code>，而不是更自然的 <code>Bounded::&lt;u8, 4&gt;::new(7)</code>。当涉及常量时间计算而不仅仅是数值常量时，这会变得更复杂——在这种情况下，还需要用花括号包装：<code>{ ... }</code>。</p>
</li>
<li>
</li><li>
<p><strong>对非数字类型进行泛型化</strong>：指针对 <a href="https://rust-lang.github.io/rfcs/3848-asm-const-ptr.html" rel="noopener noreferrer">asm_const_ptr</a> 会有用。字符串字面量也会有用——即使它们只是被传递而不被处理或操作。如果从传递字符串扩展到可以传递任何类型，这将帮助团队用 <code>enum</code> 替换他们正在使用的一些类型状态模式。</p>
</li>

<p>在其他更新中，Gary 添加了一个<a href="https://lore.kernel.org/rust-for-linux/20260302164239.284084-1-gary@kernel.org/" rel="noopener noreferrer">通过宏提供指针投影的基础设施</a>。</p>
<p><code>dma_read!</code>/<code>dma_write!</code> 宏已切换到此。请注意，这完全通过宏完成，不使用任何字段投影语言特性。<a href="https://rust-lang.github.io/rust-project-goals/2026/field-projections.html" rel="noopener noreferrer">字段投影</a>语法和 trait 应该会使其更符合人体工学，并集成借用检查器，以便我们可以接受更多代码。</p>
<p>关于这一点，语言团队举行了一次设计会议，讨论了 Benno Lossin、Nadrieril 和 Tyler Mandry 提出的最新提案“通过虚拟位置实现字段投影”。你可以<a href="https://rust-lang.github.io/rust-project-goals/2026/field-projections.html" rel="noopener noreferrer">在此处阅读提案和会议记录</a>。</p>
<p>最后，作为 rustfmt <code>use</code> 讨论的后续，Tomas <a href="https://github.com/rust-lang/rustfmt/issues/6829" rel="noopener noreferrer">创建了一个问题</a>，以便在不使用尾随 <code>//</code> 变通方法的情况下，保持 Rust for Linux 所需的逐行导入格式。</p>
<h2 id="rust-for-cpython"><a href="#rust-for-cpython" rel="noopener noreferrer"></a>
Rust for CPython</h2>
<p>我们三月份与 CPython 的人开了一次会议。</p>
<h3 id="drop-with-context"><a href="#drop-with-context" rel="noopener noreferrer"></a>
带上下文的 Drop</h3>
<p>Python 对象是引用计数指针。在任何给定时间，它们要么连接到 Python 解释器，要么没有。当连接时，它们的引用计数可以增加或减少，但它们必须在进行任何原生调用时断开连接。这些指针不能是 <code>Clone</code> 或 <code>Drop</code>，因为 trait 实现不知道它们是否连接到解释器状态。</p>
<p>如何在 Rust 中建模此问题以使其既安全又符合人体工学，是一个悬而未决的问题。</p>
<p>David Hewitt 询问了“带上下文的 Drop”功能，这将要求将关联的上下文（例如指向 Python 解释器状态的指针）隐式传递给 <code>drop</code> 函数。</p>
<p>项目组一直在思考这个问题（参见 <a href="https://tmandry.gitlab.io/blog/posts/2021-12-21-context-capabilities/" rel="noopener noreferrer">Tyler Mandry 2021 年的文章</a>、<a href="https://nadrieril.github.io/blog/2026/03/22/what-if-traits-carried-values.html" rel="noopener noreferrer">Nadrieril 最近的 “如果 Trait 携带值会怎样” 文章</a> 以及相关的 <a href="https://rust-lang.github.io/rust-project-goals/2026/dictionary-passing-style-experiment.html" rel="noopener noreferrer">2026 年字典传递风格目标提案</a>）。David、Josh Triplett 和 Jack Huey 计划在 Zulip 以及 2026 年 All Hands 上继续讨论这个问题。</p>
<h3 id="sanitizers"><a href="#sanitizers" rel="noopener noreferrer"></a>
Sanitizers</h3>
<p>CPython 在 CI 中运行 sanitizers（AddressSanitizer 或 ASan、MemorySanitizer 或 MemSan、UndefinedBehaviorSanitizer 或 UBSan 和 ThreadSanitizer 或 TSan），以提供对 C 代码的额外检查。这些对于 Python 的内存安全很重要。</p>
<p>Emma Smith 想确认 LLVM 和基于 GCC 的 sanitizers 是否可以混合使用——答案是不能。当使用 Rust 时，Python 解释器的 C 部分将必须使用 Clang 构建，并且这些部分将需要使用自己的 sanitizers。我们需要确保这些覆盖相同的范围。</p>
<p>团队还询问了 LLVM 版本之间的兼容性，因为 Rust 使用自己的 LLVM 分支。答案是虽然 LLVM 的主要版本不兼容，但 Rust 的分支和对应的上游版本应该是兼容的。Rust 包含向后移植的上游错误修复，并支持使用原版 LLVM 构建。</p>
<p>还有正在进行的由 Rust for Linux 推动的<a href="https://rust-lang.github.io/rust-project-goals/2026/stabilization-of-sanitizer-support.html" rel="noopener noreferrer">稳定 MemorySanitizer 和 ThreadSanitizer</a> 的工作。</p>
<h3 id="future-meetings"><a href="#future-meetings" rel="noopener noreferrer"></a>
未来的会议</h3>
<p>自本月初以来，我们没有收到任何新话题，因此我们暂时搁置了会议。当新话题出现时，我们会再次讨论，但目前有很多工作要做。Rust 和 CPython 的人员确实计划在 2026 年 All Hands 上举行一次联合会议。</p>
<p>同时，Emma Smith <a href="https://blog.python.org/2026/04/rust-for-cpython-2026-04/" rel="noopener noreferrer">从他们的角度发布了进展更新</a>。团队已经完成了构建系统工作，并通过了 CPython CI。在未来几个月里，他们将计划内部 Rust API 设计，之后编写 PEP（Python 增强提案——类似于我们的 RFC），目标是 Python 3.16。</p>
<h2 id="worth-a-look"><a href="#worth-a-look" rel="noopener noreferrer"></a>
值得关注</h2>
<h3 id="rust-foundation-posts"><a href="#rust-foundation-posts" rel="noopener noreferrer"></a>
Rust 基金会文章</h3>
<ul>
<li><a href="https://rustfoundation.org/media/canonical-joins-the-rust-foundation-as-a-gold-member/" rel="noopener noreferrer">Canonical 加入 Rust 基金会成为金牌会员</a></li>
<li><a href="https://rustfoundation.org/media/whats-next-for-the-rust-innovation-lab/" rel="noopener noreferrer">Rust 创新实验室的下一步？</a></li>
</ul>
<h3 id="rust-project-updates"><a href="#rust-project-updates" rel="noopener noreferrer"></a>
Rust 项目更新</h3>
<ul>
<li><a href="https://blog.rust-lang.org/2026/03/05/Rust-1.94.0/" rel="noopener noreferrer">发布 Rust 1.94.0</a> 和 <a href="https://blog.rust-lang.org/2026/03/26/1.94.1-release/" rel="noopener noreferrer">1.94.1</a></li>
<li><a href="https://blog.rust-lang.org/2026/03/21/cve-2026-33056/" rel="noopener noreferrer">Cargo 安全公告</a></li>
<li><a href="https://blog.rust-lang.org/2026/04/04/changes-to-webassembly-targets-and-handling-undefined-symbols/" rel="noopener noreferrer">对 WebAssembly 目标和未定义符号处理的更改</a>
<ul>
<li>WebAssembly 构建的<strong>破坏性</strong>变更提醒</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/2026/04/04/docsrs-only-default-targets/" rel="noopener noreferrer">docs.rs：默认构建更少的目标</a>
<ul>
<li>docs.rs 将在 2026-05-01 进行的<strong>破坏性</strong>变更提醒</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/2026/03/20/rust-challenges/" rel="noopener noreferrer">我们从 Rust 挑战中听到了什么</a></li>
<li><a href="https://blog.rust-lang.org/2026/03/12/Rustup-1.29.0/" rel="noopener noreferrer">发布 rustup 1.29.0</a></li>
<li><a href="https://blog.rust-lang.org/2026/03/02/2025-State-Of-Rust-Survey-results/" rel="noopener noreferrer">2025 年 Rust 现状调查结果</a></li>
<li><a href="https://blog.rust-lang.org/2026/03/13/call-for-testing-build-dir-layout-v2/" rel="noopener noreferrer">测试呼吁：构建目录布局 v2</a>
<ul>
<li>自 Cargo 1.91 以来，可以将中间构建产物（build-dir）和最终产物（target-dir）的位置分离到不同的目录中。</li>
<li>现在，Cargo 正在更改 <code>build-dir</code> 的布局。目标目录的布局保持不变。</li>
<li>他们呼吁测试此功能，以帮助发现诸如构建脚本使用它来推断 target_dir 或可执行路径等问题。</li>
<li>请考虑测试此功能并报告遇到的任何问题。</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/03/25/project-director-update/" rel="noopener noreferrer">2026 年 1 月和 2 月项目总监更新</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/04/06/leadership-council-update/" rel="noopener noreferrer">领导委员会更新——2026 年 3 月</a>
<ul>
<li>Rémy Rakic 作为编译器团队代表加入</li>
<li>Josh Triplett 作为 libs 团队代表加入</li>
</ul>
</li>
</ul>
<h2 id="stats"><a href="#stats" rel="noopener noreferrer"></a>
统计</h2>
<p>撰写的会议纪要总字数：470.5k（2025 年 6 月–2026 年 3 月）</p>
<p>参加会议次数：35</p>
<p>撰写的会议纪要总字数（3 月）：73.8k</p>
<p>每次团队会议的平均（算术）字数：</p>
<ul>
<li>Cargo：1.9k</li>
<li>Lang 分类：3.3k</li>
<li>Libs-API：4.3k</li>
<li>领导委员会：2.4k</li>
</ul></ol><p><em>由 mimo-v2.5 模型翻译，花费 12015 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/04/09/program-management-update-2026-03/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/04/09/program-management-update-2026-03/</guid>
      <pubDate>Thu, 9 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>领导委员会更新——2026年3月</title>
      <dc:creator>Eric Huss</dc:creator>
      <description>[AI 摘要] Rust领导委员会介绍了近期新成员加入、预算分配情况，以及关于AI贡献政策等正在进行中的工作。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> Rust领导委员会介绍了近期新成员加入、预算分配情况，以及关于AI贡献政策等正在进行中的工作。</div><p>大家好，Rust 领导委员会再次与您见面！我们希望分享一下自<a href="https://blog.rust-lang.org/inside-rust/2025/12/10/leadership-council-update/" rel="noopener noreferrer">上次更新</a>以来委员会的工作进展。</p>
<h2 id="accomplishments-so-far"><a href="#accomplishments-so-far" rel="noopener noreferrer"></a>
迄今取得的成果</h2>
<h3 id="welcome-remy-rakic-and-josh-triplett-to-the-council"><a href="#welcome-remy-rakic-and-josh-triplett-to-the-council" rel="noopener noreferrer"></a>
欢迎 Rémy Rakic 和 Josh Triplett 加入委员会</h3>
<p>三月的代表选举已经完成。委员会发生了几项变动：</p>
<ul>
<li><a href="https://github.com/m-ou-se/" rel="noopener noreferrer">Mara Bos</a> 卸任<a href="https://www.rust-lang.org/governance/teams/library" rel="noopener noreferrer">库团队</a>代表，转而担任<a href="https://forge.rust-lang.org/governance/council.html#the-launching-pad-top-level-team" rel="noopener noreferrer">启动平台</a>代表。</li>
<li><a href="https://github.com/joshtriplett/" rel="noopener noreferrer">Josh Triplett</a> 加入，接替 Mara 成为<a href="https://www.rust-lang.org/governance/teams/library" rel="noopener noreferrer">库团队</a>代表。</li>
<li><a href="https://github.com/lqd/" rel="noopener noreferrer">Rémy Rakic</a> 加入，担任<a href="https://www.rust-lang.org/governance/teams/compiler" rel="noopener noreferrer">编译器团队</a>代表。</li>
<li><a href="https://github.com/ehuss/" rel="noopener noreferrer">Eric Huss</a> 继续担任<a href="https://www.rust-lang.org/governance/teams/dev-tools" rel="noopener noreferrer">开发工具团队</a>代表。</li>
</ul>
<p>我们要感谢即将离任的代表 <a href="https://github.com/jamesmunns" rel="noopener noreferrer">James Munns</a> 和 <a href="https://github.com/cuviper/" rel="noopener noreferrer">Josh Stone</a> 在委员会的付出。我们非常感谢他们的支持！</p>
<p>感谢所有参与此次过程的人员！下一次代表选举将于2026年9月举行，届时将选举委员会的另一半成员。</p>
<h3 id="welcome-nurzhan-saken-as-our-second-program-manager"><a href="#welcome-nurzhan-saken-as-our-second-program-manager" rel="noopener noreferrer"></a>
欢迎 Nurzhan Saken 加入担任我们的第二位项目经理</h3>
<p>二月，我们欢迎 <a href="https://github.com/nxsaken/" rel="noopener noreferrer">Nurzhan Saken</a> 加入，与 <a href="https://github.com/tomassedovic/" rel="noopener noreferrer">Tomas Sedovic</a> 共同担任我们的项目经理。这将有助于使我们的项目经理项目更具可持续性，并加强其提供的支持。您可以在<a href="https://blog.rust-lang.org/inside-rust/2026/03/27/program-management-update-2026-02/#hello-from-nurzhan" rel="noopener noreferrer">最近的项目经理更新</a>中了解更多关于 Nurzhan 的信息。</p>
<h3 id="project-priorities-budget"><a href="#project-priorities-budget" rel="noopener noreferrer"></a>
项目优先事项预算</h3>
<p>自2024年以来，项目一直在管理一个<em>项目优先事项</em>预算。委员会使用此预算资金支持项目的相关活动。2026年初，基金会向该预算拨付了30.6万美元新资金，并从项目资助计划中转入了10.6万美元剩余资金。过去几个月，委员会一直致力于将资金分配到各项优先事项。以下项目已获批准：</p>
<ul>
<li>将我们的旅行补助上限提高到10万美元（<a href="https://github.com/rust-lang/leadership-council/pull/254" rel="noopener noreferrer">#254</a>）。请注意，除此之外，基金会还为 RustConf 旅行额外提供5万美元。</li>
<li>为项目经理项目额外拨款16万美元，加上2025年的剩余预算，我们今年的起始余额约为34.4万美元。（<a href="https://github.com/rust-lang/leadership-council/issues/255" rel="noopener noreferrer">#255</a>）</li>
<li>为<a href="https://www.outreachy.org/" rel="noopener noreferrer">Outreachy</a> 导师计划拨款2.5万美元（<a href="https://github.com/rust-lang/leadership-council/issues/264" rel="noopener noreferrer">#264</a>）。</li>
<li>为编译器运营合同拨款5.5万美元（<a href="https://github.com/rust-lang/leadership-council/issues/244" rel="noopener noreferrer">#244</a>）。</li>
</ul>
<p>除了这些已分配资金，我们正在讨论是否将剩余资金预留用于以下用途：</p>
<ul>
<li>为<a href="https://github.com/rust-lang/content-team" rel="noopener noreferrer">内容团队</a>提供1.5万美元资金，以协助制作视频内容（<a href="https://github.com/rust-lang/leadership-council/pull/279" rel="noopener noreferrer">#279</a>）。</li>
<li>投入10万美元重启资助计划，以支持现有维护者（<a href="https://github.com/rust-lang/rfcs/pull/3919" rel="noopener noreferrer">RFC#3919</a>）。</li>
<li>考虑为<a href="https://crates.io/" rel="noopener noreferrer">crates.io</a>的网页设计支持提供一笔未指定的金额（<a href="https://github.com/rust-lang/leadership-council/issues/278" rel="noopener noreferrer">#278</a>）。</li>
</ul>
<h3 id="additional-items"><a href="#additional-items" rel="noopener noreferrer"></a>
其他事项</h3>
<ul>
<li>最终确定了一项校友政策，该政策涉及每年通知成员，告知其所属团队，并核实他们是否仍然活跃。<a href="https://github.com/rust-lang/leadership-council/pull/218" rel="noopener noreferrer">#218</a></li>
<li>更新了项目董事的职责，以更好地定义和澄清期望。<a href="https://github.com/rust-lang/leadership-council/pull/250" rel="noopener noreferrer">#250</a></li>
<li>明确表示导师团队无需请求委员会即可参与<a href="https://summerofcode.withgoogle.com/programs/2026" rel="noopener noreferrer">GSoC 2026</a>。<a href="https://github.com/rust-lang/leadership-council/issues/253" rel="noopener noreferrer">#253</a></li>
<li>基金会已更新了旅行补助的申请流程。<a href="https://github.com/rust-lang/leadership-council/pull/259" rel="noopener noreferrer">#259</a></li>
<li>批准了一项关于委托全员大会嘉宾邀请的提案。<a href="https://github.com/rust-lang/leadership-council/issues/252" rel="noopener noreferrer">#252</a></li>
</ul>
<h2 id="ongoing-work"><a href="#ongoing-work" rel="noopener noreferrer"></a>
正在进行的工作</h2>
<h3 id="rust-foundation-maintainers-fund"><a href="#rust-foundation-maintainers-fund" rel="noopener noreferrer"></a>
Rust 基金会维护者基金</h3>
<p>去年十二月，我们成立了一个委员会（<a href="https://github.com/rust-lang/leadership-council/pull/248" rel="noopener noreferrer">#248</a>），以制定一项提案，来定义如何使用<a href="https://rustfoundation.org/media/announcing-the-rust-foundation-maintainers-fund/" rel="noopener noreferrer">Rust 基金会维护者基金</a>的资金。该基金是专门用于支持 Rust 项目维护者的专项资金。</p>
<p>团队一直在努力制定提案，该提案目前已开放评论，地址为 <a href="https://github.com/rust-lang/rfcs/pull/3931" rel="noopener noreferrer">RFC#3931</a>。</p>
<h3 id="contribution-policy"><a href="#contribution-policy" rel="noopener noreferrer"></a>
贡献政策</h3>
<p>围绕 AI 贡献政策展开了一场热烈的讨论，起因是项目提交的“垃圾”内容有所增加。一项临时提案已在 <a href="https://github.com/rust-lang/leadership-council/issues/273" rel="noopener noreferrer">#273</a> 中提交，旨在解决 <code>rust-lang/rust</code> 仓库中的一些直接问题。另一项提案也已提交，侧重于期望的贡献类型，随后已移至 <a href="https://github.com/rust-lang/rfcs/pull/3936" rel="noopener noreferrer">RFC#3936</a> 以收集项目的评论。这对项目来说是一个重要问题，我们预计在不久的将来，在继续讨论和考虑不同提案的过程中，这仍将是焦点。</p>
<h3 id="additional-items-1"><a href="#additional-items-1" rel="noopener noreferrer"></a>
其他事项</h3>
<ul>
<li><a href="https://github.com/jamesmunns" rel="noopener noreferrer">James Munns</a> 继续推进 Rust 社会提案，正在召集一群感兴趣的人士来协助管理该计划。<a href="https://github.com/rust-lang/leadership-council/issues/260" rel="noopener noreferrer">#260</a></li>
</ul>
<h2 id="following-our-work"><a href="#following-our-work" rel="noopener noreferrer"></a>
跟踪我们的工作</h2>
<p>正如您从上面的许多链接中看到的，委员会的工作主要在 <a href="https://github.com/rust-lang/leadership-council/issues" rel="noopener noreferrer">我们的 GitHub 仓库</a> 中公开进行。我们的会议议程事项均源于此。在讨论某项议题后，我们会在该 issue 上总结讨论内容以及任何共享的<a href="https://aturon.github.io/tech/2018/05/25/listening-part-1/" rel="noopener noreferrer">理由</a>。当我们做出决定时，会在 issue 上提议一个“最终评论期”（FCP），与项目中的所有 FCP 一样，我们感兴趣并会审查人们在最终评论期之前或期间提供的任何反馈。</p>
<p>要实时跟踪我们的工作，请关注我们的仓库。您也可以在 Zulip 的 <a href="https://rust-lang.zulipchat.com/#narrow/channel/392734-council/topic/Meeting.20minutes.20.26.20summaries/with/561198432" rel="noopener noreferrer"><code>#council &gt; Meeting minutes &amp; summaries</code></a> 频道查看会议摘要。</p>
<h2 id="meeting-minutes"><a href="#meeting-minutes" rel="noopener noreferrer"></a>
会议纪要</h2>
<p>我们将所有委员会会议的纪要发布到<a href="https://github.com/rust-lang/leadership-council/tree/main/minutes" rel="noopener noreferrer">领导委员会仓库</a>。自上次更新以来的纪要链接如下：</p>
<ul>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-12-05.md" rel="noopener noreferrer">2025年12月5日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-12-19.md" rel="noopener noreferrer">2025年12月19日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2026-01-16.md" rel="noopener noreferrer">2026年1月16日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2026-01-30.md" rel="noopener noreferrer">2026年1月30日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2026-02-13.md" rel="noopener noreferrer">2026年2月13日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2026-02-27.md" rel="noopener noreferrer">2026年2月27日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2026-03-13.md" rel="noopener noreferrer">2026年3月13日</a></li>
<li><a href="https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2026-03-27.md" rel="noopener noreferrer">2026年3月27日</a></li>
</ul><p><em>由 mimo-v2.5 模型翻译，花费 6742 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/04/06/leadership-council-update/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/04/06/leadership-council-update/</guid>
      <pubDate>Mon, 6 Apr 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>项目管理更新 —— 2026年2月</title>
      <dc:creator>Tomas Sedovic, Nurzhan Saken</dc:creator>
      <description>[AI 摘要] 本更新介绍了Rust项目2026年2月的项目管理进展，包括目标制定、C++/Rust互操作性工作及团队协调工具。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 本更新介绍了Rust项目2026年2月的项目管理进展，包括目标制定、C++/Rust互操作性工作及团队协调工具。</div><h1 id="program-management-update-february-2026"><a href="#program-management-update-february-2026" rel="noopener noreferrer"></a>
项目管理更新 —— 2026年2月</h1>
<p>大家好！本次更新由 Tomas Sedovic <em>和</em> Nurzhan Saken 为您带来 \o/。</p>
<h2 id="hello-from-nurzhan"><a href="#hello-from-nurzhan" rel="noopener noreferrer"></a>
来自 Nurzhan 的问候</h2>
<p>我在2022年发现了 Rust 项目，并迅速为之<em>着迷</em>。这门语言、其文档、跟踪的议题、变更日志、博客、演讲以及用户/贡献者讨论——这些都满足了我的需求，并在我人生艰难时期给了我慰藉。作为一个极度内向的人，我大部分时间只是观察而未参与，因此项目经理的职位招聘信息对我来说就像是一个警钟。Tomas 在他的首次更新中说得很贴切：尽管对能否真正做好工作有许多疑虑，但我必须申请；如果不去争取，那种遗憾将是毁灭性的。</p>
<p>TC 和 Joel Marcey 在2025年3-4月面试了我，并考虑雇用我。这让我感到惊讶，因为我觉得自己当时一团糟！唉，您可能从之前的更新中得知，事情并未按计划进行，我最终未能获得这个职位。不过，已经没有回头路了，所以我开始通过稳定多个我感兴趣的功能来参与 Rust 社区。最终，更多的资金被分配下来，我被雇用了。</p>
<p>第一个月感觉如梦似幻。突然之间，那道想象中的屏障消失了，我发现自己与那些我一直仰慕其工作的人们共享空间（甚至互动）。Tomas 已经留下了许多令人印象深刻的足迹，似乎难以企及。很容易让人觉得这是个错误，觉得自己不属于这里。然而，每个人都如此热情友好。Tomas 特意花时间与我交谈、支持我，并让我了解项目中发生的一切。多亏了这一点，我已经基本融入，装备齐全，并且真的很幸运事情能有这样圆满的结果。</p>
<h2 id="project-goals"><a href="#project-goals" rel="noopener noreferrer"></a>
项目目标</h2>
<p>二月份的重点是审核拟议的目标并让各团队审阅。目前我们没有未解决的拉取请求（这很大程度上得益于 Nurzhan 的帮助），并且我们吸收了审阅目标的团队关于规模和负责人的反馈意见。</p>
<p>每个目标通常对项目团队（如语言团队、编译器团队、库团队）有一个或多个诉求，因此他们审阅所有诉求，看清其表述是否清晰，并确定拟议的更改在项目中是否合理，这一点很重要。</p>
<p>在三月，我们将对各个目标进行最终审核，以确保它们有合适的负责人和规模。之后，我们将开放一个包含所有拟议目标的 RFC，并征求团队的意见。</p>
<p>这是一个重要的时间点，因为在此之前，目标大多被孤立地考虑。但通过 RFC，我们将全面审视，各团队也将考虑其全年的整体能力。</p>
<p>我们计划在三月完成 RFC 审阅，并在四月初正式开始新的目标周期。</p>
<hr>
<p>我们还讨论了进行项目目标更新的方式。目前自动生成的博客文章不尽如人意，我们很想听取您的反馈！</p>
<p>如果您之前读过，特别是如果您没读过，我们很乐意听听您的意见！什么内容有帮助？什么没有？您希望看到什么？什么可能会分散注意力？</p>
<p>我们正在与内容团队讨论如何通过单独的文章或采访来突出特定目标。我们也希望让更新更有意义。听到您的看法会很有价值！您可以在 <a href="https://rust-lang.zulipchat.com/#narrow/channel/478266-project-goals.2Fmeta/topic/Blog.20.20post.2C.20tracking.20progress.20and.20presenting.20goals/with/574716353" rel="noopener noreferrer">Zulip 上的博客文章主题</a>中告诉我们，或者直接私信 <code>T-program</code> 别名。</p>
<p>以下是我们近期发布的一些博客文章：</p>
<ul>
<li><a href="https://blog.rust-lang.org/2026/01/05/project-goals-2025-december-update/" rel="noopener noreferrer">2025年12月</a></li>
<li><a href="https://blog.rust-lang.org/2025/12/16/Project-Goals-2025-November-Update.md/" rel="noopener noreferrer">2025年11月</a></li>
<li><a href="https://blog.rust-lang.org/2025/11/19/project-goals-update-october-2025/" rel="noopener noreferrer">2025年10月</a></li>
</ul>
<h2 id="program-management-tracking"><a href="#program-management-tracking" rel="noopener noreferrer"></a>
项目管理追踪</h2>
<p>鉴于现在有两个人全职承担项目管理工作，我们创建了专门用于此工作的平台。</p>
<p>首先，我们有一个 <a href="https://github.com/orgs/rust-lang/projects/69" rel="noopener noreferrer">待办事项看板</a> 来追踪我们的工作。任何 rust-lang 仓库的问题都可以添加到那里。</p>
<p>由于有些主题不适合放入现有任何仓库（例如安排<em>签名与镜像</em>会议或撰写每月项目管理更新），我们还创建了 <a href="https://github.com/rust-lang/program-team" rel="noopener noreferrer">program-team 仓库</a>。它也可以存放与该工作相关的任何文档和工具。</p>
<p>最后，您现在可以在 Zulip 上使用 <code>T-program</code> 别名来与我们交谈，在讨论串中标记我们，或提出请求。</p>
<p>我们希望这能让人们更清楚如何联系项目管理，提供更高的透明度（展示我们实际在做什么），当然，也能帮助我们（项目经理们）更好地协调工作。</p>
<p>截至撰写本文时，仓库和看板都是空的。在其他仓库中有几个问题我们可以链接过去，但主要的是，Tomas 需要将他 Rust 项目的 org-mode 文件内容迁移过来。</p>
<h2 id="c-rust-interoperability"><a href="#c-rust-interoperability" rel="noopener noreferrer"></a>
C++/Rust 互操作性</h2>
<p>基金会聘请了 <a href="https://github.com/teor2345" rel="noopener noreferrer">teor</a> 进行短期合同工作，以加速互操作问题空间的绘图，他们进展迅速。</p>
<p>teor 阅读了我们已有的所有文档，为每个议题/问题陈述（例如异常与展开，或不兼容的分配器）创建了 <a href="https://github.com/rustfoundation/interop-initiative/blob/main/problem-space/0000-template.md" rel="noopener noreferrer">模板</a>，立即开始记录已知问题，并为集成这两种语言的各种 <a href="https://github.com/rustfoundation/interop-initiative/issues" rel="noopener noreferrer">用例</a> 提交议题。</p>
<p>他们在 <a href="https://rust-lang.zulipchat.com/#narrow/channel/427678-t-lang.2Finterop/topic/Interop.20Problem.20Space.20Mapping.20-.20Weekly.20Updates/with/578041637" rel="noopener noreferrer">Zulip</a> 上发布每周更新，在 <a href="https://github.com/rust-lang/rust-project-goals/issues/388" rel="noopener noreferrer">项目目标跟踪议题</a>中发布每月更新。</p>
<p>这些更新以及专注于梳理技术层面的工作，源于项目成员和更广泛社区向基金会提供的反馈（直接反馈，以及通过项目董事和项目经理等间接反馈）。</p>
<p>如果您对此领域感兴趣，请查看 <a href="https://github.com/rustfoundation/interop-initiative" rel="noopener noreferrer">interop-initiative</a> 和 <a href="https://rust-lang.zulipchat.com/#narrow/channel/427678-t-lang.2Finterop" rel="noopener noreferrer">t-lang/interop Zulip 频道</a>。</p>
<h2 id="signing-and-mirroring"><a href="#signing-and-mirroring" rel="noopener noreferrer"></a>
签名与镜像</h2>
<p>继 <a href="https://blog.rust-lang.org/inside-rust/2026/02/11/program-management-update-2026-01/#crates-io-mirroring-and-verification" rel="noopener noreferrer">一月份</a> 之后，Walter Pearce 提出了一份项目目标草案。其重点是构建一个 MVP，为 Rustup 目标设置镜像。这将完全在后端进行（因此对用户应完全透明），以研究带宽和日志记录成本的削减、建立安全基础设施，并获取实践信息以构建最终解决方案。</p>
<p>我们已经为该小组增加了一些人员（例如 Rustup 的成员），草案正在积极讨论中。技术和沟通方面仍有一些问题需要解决，但该提案似乎处于一个稳固的状态，我们希望很快能开放一个拉取请求。</p>
<h2 id="style"><a href="#style" rel="noopener noreferrer"></a>
代码风格</h2>
<p>过去几个月，许多会议最终都被取消了。一月底，我安排了一个新的双周会议时间，此后我们已经开了两次会。</p>
<p>在第一次会议中，我们分类整理了所有提名的议题。考虑到能力问题（风格团队有三名成员，其中一人近来无法投入大量时间），TC 建议我们专注于解决问题，同时寻求他人的帮助。</p>
<p>因此，当一个问题提交进来时，风格团队会评估它，弄清楚它适合现有指南的哪个部分，然后要求提交者提供一个具体的方案，而不是自己全部写出来。</p>
<p>这种做法类似于语言团队的运作方式。</p>
<p>最近的两次会议这样处理感觉效率高了很多，但能力问题依然存在。我们需要帮助！</p>
<p>如果您对语言<em>如何</em>格式化感兴趣——即就 rustfmt 应该做什么提供意见——我们很希望有您加入！您可以加入 <a href="https://rust-lang.zulipchat.com/#narrow/channel/346005-t-style" rel="noopener noreferrer">t-style 频道</a> 或 <a href="https://rust-lang.github.io/calendar/style.ics" rel="noopener noreferrer">参加我们的一次会议</a>。</p>
<h2 id="rust-for-linux"><a href="#rust-for-linux" rel="noopener noreferrer"></a>
Rust for Linux</h2>
<p>我们讨论了 <a href="https://rust-lang.github.io/rust-project-goals/2026/roadmap-rust-for-linux.html" rel="noopener noreferrer">Rust for Linux 路线图</a>，并审视了该项目跟踪的所有其他不属于特定目标的不稳定功能。这些功能将在路线图中被跟踪，我们将在合适的地方启动相应的目标。</p>
<p>Rust for Linux 有一个重要的里程碑：即将到来的 Debian 14 稳定版发布（代号：Forky）。Debian 稳定版发布的 Rust 工具链版本是 Rust for Linux 目前用于决定支持的最低版本的依据。例如，假设 Debian Forky 在2027年夏季发布，其 Rust 版本为1.104.0，那么在 Debian 发布后一段时间内内核的 MSRV（最低支持的 Rust 版本）提升时，Rust for Linux 就可以使用该版本中的新（也可能是不稳定的）功能。</p>
<p>Rust for Linux 支持一系列稳定的工具链，每个工具链都能访问一部分不稳定功能（<a href="https://rust-for-linux.com/unstable-features" rel="noopener noreferrer">其中一些是项目所依赖的</a>）。每当同一功能在不同支持的工具链中以不同形式出现时，就会产生兼容性问题。例如，一个功能可能在最旧的版本中不可用，在较新的版本中不稳定，在后来的版本中稳定。其中一些问题可以在构建时处理（例如，当一个标志从 <code>-Z...</code> 改为 <code>-C...</code> 时），但其他的则需要非局部的条件编译（这意味着需要维护并行代码路径）。前者通常可以在不提升 MSRV 的情况下处理，但后者要困难得多，在那些情况下提升 MSRV 有可能消除大量的兼容性负担。为了避免特别繁重的维护成本，团队可能会选择等待下一个 MSRV 再采用新功能。</p>
<p>考虑到这一点，我们审视了那些影响最大且 Rust for Linux 希望在下一个 MSRV 升级后尽快开始使用的功能。其中最值得注意的有：</p>
<ul>
<li><a href="https://rust-lang.github.io/rust-project-goals/2026/arbitrary-self-types.html" rel="noopener noreferrer">任意自引用类型</a></li>
<li><a href="https://rust-lang.github.io/rust-project-goals/2026/field-projections.html" rel="noopener noreferrer">字段投影</a></li>
<li><a href="https://rust-lang.github.io/rust-project-goals/2026/move-trait.html" rel="noopener noreferrer">不可移动类型与有保证的析构函数</a></li>
<li><a href="https://rust-lang.github.io/rust-project-goals/2026/const-generics.html#adt-const-params" rel="noopener noreferrer">ADT 常量参数</a></li>
<li><a href="https://github.com/rust-lang/rust/issues/134529" rel="noopener noreferrer"><code>rustdoc --output-format=doctest</code></a></li>
<li><a href="https://github.com/rust-lang/rust/issues/136979" rel="noopener noreferrer">放宽 Rust 的孤儿规则</a> —— 今年晚些时候，团队希望将庞大的 <code>kernel</code> crate 拆分为子 crate，届时他们将需要处理孤儿规则。一种方法是在一组 crate（一个<em>一致性域</em>）内放宽孤儿规则。这个想法在2022年非正式地提出，并在 <a href="https://github.com/rust-lang/rust/pull/150652#issuecomment-3707365609" rel="noopener noreferrer">最近重新讨论</a>。我们希望通过持续讨论来正式化这种方法（或考虑另一种）。</li>
</ul>
<p>总的来说，Rust for Linux 希望在 MSRV 允许时尽快开始使用新的语言功能（尤其是那些具有新语法的功能），因为跨工具链同时支持新旧形式可能会变得负担沉重，延迟采用也可能导致未来大规模重构。如果新语法可以通过宏来隐藏，那通常是可以接受的。同样，使用不稳定功能也是可以接受的，只要能合理预期它将以大致相同的形式稳定下来，或者至少不会被移除。例如，不可移动类型可能会取代 <code>Pin</code>，从而导致巨大的语法变化。一个特殊情况是 <a href="https://rust-lang.github.io/rust-project-goals/2026/in-place-init.html" rel="noopener noreferrer">原地初始化</a>：团队已经对基础问题有一个可行的解决方案，并有潜在路径与最终的语言功能集成，因此它的缺失不像 <a rel="noopener noreferrer">字段投影</a> 那样具有阻碍性，后者目前尚无任何形式的实现。</p>
<h2 id="rust-for-cpython"><a href="#rust-for-cpython" rel="noopener noreferrer"></a>
Rust for CPython</h2>
<p>二月初，我们邀请了 Miguel Ojeda（Rust for Linux 的负责人）分享他的团队在将 Rust 引入 Linux 内核方面的经验见解。</p>
<p>Miguel 回顾了 Rust for Linux 的大致时间线：该工作在2020年底开始引起关注，导致了2021年初的 RFC。最小的实验性支持在2022年底合并到主线，实验于2025年底结束。与 Rust 项目的合作始于2021年左右，并在2024年初过渡到定期会议。</p>
<p>项目启动时，对于将 Rust 引入成熟的 C 代码库存在怀疑。C 长期以来一直是内核的主要语言，并且曾有抵制采用额外语言的情况（例如，1993年曾短暂试验过 C++ 后被放弃）。人们担心转向双语言代码库的弊端，以及开发者学习一种新的、益处尚不明确的语言和工具链的必要性。</p>
<p>该团队花费了大量时间在邮件列表和会议上与维护者和贡献者讨论这些问题，同时关注公开讨论和新闻，以便更好地进行沟通。2025年，Miguel 在 <a href="https://archive.fosdem.org/2025/schedule/event/fosdem-2025-6507-rust-for-linux/" rel="noopener noreferrer">当年的 FOSDEM 活动</a> 上做了一个主题演讲，展示了内核维护者、团队成员、利益相关者和公司对 Rust for Linux 的看法。</p>
<p>在 <a href="https://lore.kernel.org/lkml/20210414184604.23473-1-ojeda@kernel.org/" rel="noopener noreferrer">Miguel 提出的 RFC</a> 中，他们坦诚地谈到了 Rust 的优点和缺点。许多内核专家认为内存安全性是主要吸引力，但 RFC 强调了超越此点的益处：安全代码与不安全代码的清晰分离（前者没有未定义行为、内存安全违规或数据竞争）、有用的语言特性（丰富的枚举、模式匹配、模块、卫生宏）以及强大的集成工具（<code>rustfmt</code>、<code>rustdoc</code>、lints）。RFC 将 <a href="https://lore.kernel.org/lkml/20210414184604.23473-14-ojeda@kernel.org/" rel="noopener noreferrer">将 Android Binder IPC 机制移植到 Rust</a> 作为其初始用例，由此产生的反馈导致了第一个用 Rust 编写的硬件驱动程序（例如一个 GPIO 驱动程序的翻译，并与 C 实现进行了 <a href="https://lwn.net/Articles/863459/" rel="noopener noreferrer">逐行比较</a>）。</p>
<p>团队优先提高 Rust 代码和文档的质量，例如，要求在每个 <code>unsafe</code> 代码块周围添加 <code>SAFETY</code> 注释、保持一致的代码格式以及完整记录所有公共 API。随着时间的推移，Rust 经验也使 C 方面受益。例如，审查 C 代码以设计 Rust 抽象时，有时会发现一些未被注意到的更深层次问题。更普遍地说，团队观察到 Rust 概念开始渗透到 C 侧的讨论和设计中；最近的一个例子是围绕 <a href="https://lwn.net/Articles/1058041/" rel="noopener noreferrer">Revocable for C</a> 的讨论。</p>
<p>这一切强烈引起了 CPython 开发者的共鸣，他们看到了与他们的提案非常相似的反应，并面临着类似的技术挑战。与 Kirill Podoprigora 一起领导这项工作的 Emma Smith 提到，Rust for Linux 的提案是他们为 CPython 启动这项工作的巨大灵感来源。</p>
<p>Rust 项目很高兴看到这一领域的交叉授粉，我们很乐意看到（并帮助！）更多项目在现有代码中添加 Rust。</p>
<p>除此之外，我们继续讨论构建系统和链接。与我们开始时相比，我们已经处理了许多眼前紧迫的主题。因此，现在只有在有足够内容可谈时才开会。目前这大约是每两周一次。</p>
<h2 id="worth-a-look"><a href="#worth-a-look" rel="noopener noreferrer"></a>
值得关注</h2>
<h3 id="rust-foundation-posts"><a href="#rust-foundation-posts" rel="noopener noreferrer"></a>
Rust 基金会文章</h3>
<ul>
<li><a href="https://rustfoundation.org/media/guest-blog-fosdem-2026-rust-devroom-in-review/" rel="noopener noreferrer">FOSDEM 2026 —— Rust 开发室回顾</a></li>
</ul>
<h3 id="rust-project-updates"><a href="#rust-project-updates" rel="noopener noreferrer"></a>
Rust 项目更新</h3>
<ul>
<li><a href="https://youtu.be/rgjTPBRae6I" rel="noopener noreferrer">与 Daniel Almeida 一起用 Rust 编写 Linux GPU 内核驱动</a>
<ul>
<li>来自 Kangrejos 2025 的采访</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/2026/03/05/Rust-1.94.0/" rel="noopener noreferrer">发布 Rust 1.94.0</a></li>
<li><a href="https://blog.rust-lang.org/2026/03/02/2025-State-Of-Rust-Survey-results/" rel="noopener noreferrer">2025年 Rust 现状调查结果</a></li>
<li><a href="https://blog.rust-lang.org/2026/02/19/Rust-participates-in-GSoC-2026/" rel="noopener noreferrer">Rust 参与 Google Summer of Code 2026</a></li>
</ul>
<h2 id="stats"><a href="#stats" rel="noopener noreferrer"></a>
统计</h2>
<p>撰写的会议纪要总字数：396.7k（2025年6月 – 2026年2月）</p>
<p>参加会议次数：45</p>
<p>撰写的会议纪要总字数（二月）：73.7k</p>
<p>每次团队会议的平均（均值）字数：</p>
<ul>
<li>Cargo：1.6k</li>
<li>语言团队分类讨论：2.5k</li>
<li>Libs-API：4.8k</li>
<li>领导力委员会：2.4k</li>
</ul><p><em>由 mimo-v2.5 模型翻译，花费 10847 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/03/27/program-management-update-2026-02/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/03/27/program-management-update-2026-02/</guid>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>2026年1月与2月项目主任更新</title>
      <dc:creator>Carol Nichols and David Wood</dc:creator>
      <description>[AI 摘要] 本文提供2026年1月与2月Rust基金会会议的合并更新，涵盖人事变动、活动参与、工程进展及董事会讨论。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 本文提供2026年1月与2月Rust基金会会议的合并更新，涵盖人事变动、活动参与、工程进展及董事会讨论。</div><p>本月，我们将分享一份合并的董事会会议更新，涵盖Rust基金会2026年1月和2月会议的内容。感谢您的耐心等待！</p>
<p>提醒一下，项目主任是由选举产生的群体，代表Rust项目在Rust基金会董事会，并负责管理Rust项目与基金会的关系。</p>
<h2 id="january"><a href="#january" rel="noopener noreferrer"></a>
一月</h2>
<p><a href="https://rustfoundation.org/wp-content/uploads/2026/02/2026-01-13-minutes.pdf" rel="noopener noreferrer">在基金会网站上阅读一月会议的完整纪要</a>。</p>
<p>从今年开始，董事会会议的格式已改为侧重讨论，效果很好！作为这一变化的一部分，我们的定期更新在单独的执行简报中提供，但请放心，即使会议纪要中未包含，我们也会在此包含这些更新：</p>
<ul>
<li>
<p>在主权技术基金资助下，一名新的基础设施工程师于1月19日入职。通过<a href="https://rustfoundation.org/media/welcoming-infrastructure-engineer-ubiratan-soares-to-the-rust-foundation-team/" rel="noopener noreferrer">这篇</a>博客文章了解更多关于Ubiratan Soares的信息。</p>
</li>
<li>
</li><li>
<p>基金会工作人员参加了欧盟开源周的多项活动，包括：代码与合规、欧盟开源奖、欧盟政策峰会、FOSDEM、Google基金会聚会和OFE欧盟圆桌会议。这些活动是工作人员与其他基金会的同行就影响开源项目和开发者的政策变化进行合作的好机会。</p>
</li>
<li>
<p>RustConf的提案征集已于2月16日截止。<a href="https://rustconf.com" rel="noopener noreferrer">网站</a>上也提供了赞助机会（该网站正在进行品牌重塑，将于第一季度末重新上线）。</p>
</li>
<li>
<p>东京Rust Global活动吸引了大量参与者并获得了良好反响，目前正与东京Rust组织者就探索该地区的其他机会进行持续讨论。活动录像现已<a href="https://www.youtube.com/playlist?list=PL2b0df3jKKiS5QeuXeNOD5OnuxktLvPHQ" rel="noopener noreferrer">发布</a>。</p>
</li>
<li>
<p>基金会工程团队在其项目上取得了大量进展：</p>
<ul>
<li>
<p>已开发cargo-capslock以对Rust二进制文件执行静态和运行时能力分析。</p>
</li>
<li>
<p>将漏洞信息呈现到crates.io的RFC已被正式接受。</p>
</li>
<li>
</li><li>
<p>安全标签页的实现工作仍在继续审查和反馈，在上线前将提供更多改进。</p>
</li>
<li>
<p>crates.io的前端正从EmberJS迁移到Svelte。</p>
</li>
<li>
<p>正在制定2026年互操作性倡议的行动计划，部分内容将继续为C++寻求内存安全子集，以在长期互操作性方面取得成果，即实现两种语言之间的端到端内存安全。</p>
</li>
<li>
<p>同时，作为已确定项目目标的一部分，我们将认真梳理互操作性问题空间，这可能涉及Rust、C++或两种语言的问题。</p>
</li>
<li>
<p>基础设施团队支持docs-rs团队将其所有指标、仪表板和警报从已弃用的自托管监控解决方案迁移到Datadog，该方案更可靠、更安全并提供更好的开发体验。</p>
</li>
<li>
<p>正在准备关于TUF和签名工作的年终回顾。</p>
</li>
<li>
<p>作为STF资助目标的一部分，对docs.rs环境进行了重大更改，以更充分地利用实物基础设施。</p>
</li>
<li>
<p>AWS慷慨捐赠了积分给Rust项目，为我们2026年提供了缓冲空间。</p>
</li>
<li>
<p>创建了一个新的差旅补助申请表，以简化项目成员的流程。</p>
</li>
</ul>
</li>
<li>
<p>董事会讨论了Rust创新实验室的资格要求，同意异步工作以在下次会议前制定具体的指导方针。</p>
</li>
<li>
<p>董事会审查了基金会内一个尚未命名的最终用户小组的拟议结构大纲。其目标是加强Rust行业/商业用户、Rust基金会和项目之间的互惠关系；帮助Rust的采用；并推动工业用户工具的创新。</p>
</li>
</ul>
<h2 id="february"><a href="#february" rel="noopener noreferrer"></a>
二月</h2>
<p>以下部分涵盖了2026年2月10日举行的Rust基金会董事会会议。<a href="https://rustfoundation.org/wp-content/uploads/2026/03/2026-02-10-minutes.pdf" rel="noopener noreferrer">在基金会网站上阅读二月会议的完整纪要</a>。重点包括：</p>
<ul>
<li>Alexandru Radovici再次当选为银牌成员董事会代表。恭喜，Alexandru！</li>
<li>董事会讨论了关于什么将使一个项目非常适合被<a href="https://rustfoundation.org/rust-innovation-lab/" rel="noopener noreferrer">Rust创新实验室</a>接受的澄清。该讨论通过电子邮件继续进行，并对<a href="https://github.com/rustfoundation/rust-innovation-lab" rel="noopener noreferrer">RIL仓库中的文档</a>进行了改进，我们计划很快发布一篇专门的博文！</li>
<li>基金会工程团队在他们的工作中取得了进展：
<ul>
<li>雇佣了一名新承包商与项目合作处理C++互操作。欢迎，<a href="https://github.com/teor2345" rel="noopener noreferrer">Teor</a>！</li>
<li>漏洞信息呈现标签页的实现已被接受、合并，现已上线。
<ul>
<li>正在添加CVSS评分信息的工作。</li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/2026/01/21/crates-io-development-update/" rel="noopener noreferrer">发布了来自crates.io团队的六个月更新</a>。</li>
<li>工程人员在FOSDEM 2026上进行了两次演讲 - 关于<a href="https://fosdem.org/2026/schedule/event/GFA3RJ-a_phishy_case_study/" rel="noopener noreferrer">针对Rust生态系统的钓鱼攻击案例研究</a>和<a href="https://fosdem.org/2026/schedule/event/QGCFDA-using_capslock_analysis_to_develop_seccomp_filters_for_rust_and_other_services/" rel="noopener noreferrer">使用Capslock分析为Rust和其他服务开发Seccomp过滤器</a>。</li>
</ul>
</li>
<li>基金会与项目团队负责人进行了面谈，以了解他们的关切和需求。
<ul>
<li>在<a href="https://rust-lang.zulipchat.com/#narrow/channel/548261-funding/topic/Health.20of.20Teams.20.26.20Project.20Overall/with/571145036" rel="noopener noreferrer">Zulip上查看总结的结论</a>。</li>
</ul>
</li>
<li>RustConf早鸟注册、网站重新上线以及演讲者公告将于三月晚些时候推出！计划委员会正在努力审查和选择演讲。</li>
</ul>
<p>我们很快会带来3月会议（于2026年3月10日举行）的更新！</p><p><em>由 mimo-v2.5 模型翻译，花费 3918 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/03/25/project-director-update/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/03/25/project-director-update/</guid>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Cargo 1.94 开发周期动态</title>
      <dc:creator>Ed Page</dc:creator>
      <description>[AI 摘要] 本文总结了 Rust 1.94 合并窗口期内 Cargo 的开发进展，包括插件、实现更新、设计讨论及贡献指南。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 本文总结了 Rust 1.94 合并窗口期内 Cargo 的开发进展，包括插件、实现更新、设计讨论及贡献指南。</div><h1 id="this-development-cycle-in-cargo-1-94"><a href="#this-development-cycle-in-cargo-1-94" rel="noopener noreferrer"></a>
Cargo 1.94 开发周期动态</h1>
<p>本文总结了过去约六周（即 Rust 1.94 合并窗口期）Cargo 开发中的主要进展。</p>

<ul>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#plugin-of-the-cycle" rel="noopener noreferrer">本周期精选插件</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#implementation" rel="noopener noreferrer">功能实现</a>
<ul>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#build-dir-layout" rel="noopener noreferrer">构建目录布局</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#target-dir-locking" rel="noopener noreferrer">目标目录锁定</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#structured-logging" rel="noopener noreferrer">结构化日志</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#toml-1-1" rel="noopener noreferrer">TOML 1.1</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#cargo-cargofmt" rel="noopener noreferrer">cargo-cargofmt</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#lockfile-path" rel="noopener noreferrer">lockfile-path</a></li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#design-discussions" rel="noopener noreferrer">设计讨论</a>
<ul>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#workspace-and-configuration-discovery" rel="noopener noreferrer">工作区与配置发现</a></li>
</ul>
</li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#misc" rel="noopener noreferrer">其他动态</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/#focus-areas-without-progress" rel="noopener noreferrer">无进展的重点领域</a></li>
</ul>
<h2 id="plugin-of-the-cycle"><a href="#plugin-of-the-cycle" rel="noopener noreferrer"></a>
本周期精选插件</h2>
<p>Cargo 无法满足所有用户的需求，至少出于它必须维护的兼容性保证考虑。插件在 Cargo 生态系统中扮演着重要角色，我们希望在此表彰它们。</p>
<p>本周期的精选插件是 <a href="https://crates.io/crates/cargo-edit" rel="noopener noreferrer">cargo-edit</a>，它提供了编辑 <code>Cargo.toml</code> 文件的命令。<code>cargo add</code> 和 <code>cargo rm</code> 已被合并到 <code>cargo</code> 中。该插件还提供 <code>cargo upgrade</code> 用于更改版本要求（在 Cargo 中的跟踪 issue 为 <a href="https://github.com/rust-lang/cargo/issues/12425" rel="noopener noreferrer">#12425</a>）以及 <code>cargo set-version</code> 用于更改 <code>package.version</code>（目前没有将其合并到 <code>cargo</code> 的请求）。</p>
<p>感谢 <a href="https://github.com/kpreid" rel="noopener noreferrer">kpreid</a> 的建议！</p>
<p><a href="https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Plugin.20of.20the.20Dev.20Cycle/near/420703211" rel="noopener noreferrer">请为下一篇文章提交您的建议。</a></p>
<h2 id="implementation"><a href="#implementation" rel="noopener noreferrer"></a>
功能实现</h2>
<h3 id="build-dir-layout"><a href="#build-dir-layout" rel="noopener noreferrer"></a>
构建目录布局</h3>
<p><em>更新自 <a href="https://blog.rust-lang.org/inside-rust/2026/01/07/this-development-cycle-in-cargo-1.93/#build-dir-layout" rel="noopener noreferrer">1.93</a></em></p>
<p><a href="https://github.com/ranger-ross" rel="noopener noreferrer">ranger-ross</a>
发布了 <a href="https://github.com/rust-lang/cargo/pull/16502" rel="noopener noreferrer">#16502</a>，
以更新 Cargo 关于构建目录布局的内部文档。该文档为审查此变更提供了另一个视角，从而促成了进一步的完善，如 <a href="https://github.com/rust-lang/cargo/pull/16514" rel="noopener noreferrer">#16514</a>、<a href="https://github.com/rust-lang/cargo/pull/16515" rel="noopener noreferrer">#16515</a> 和 <a href="https://github.com/rust-lang/cargo/pull/16519" rel="noopener noreferrer">#16519</a>。</p>
<p>在一个不相关的变更中，
<a href="https://github.com/epage" rel="noopener noreferrer">epage</a> 此前曾提议使 <code>CARGO_BIN_EXE_*</code> 在运行时可用，而不仅仅是编译时（<a href="https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/cargo_bin_exe.20and.20tests/near/564776712" rel="noopener noreferrer">Zulip</a>），但在发现不需要后放弃了该提议。在查看 <a href="https://github.com/rust-lang/rust/pull/149852#issuecomment-3664993475" rel="noopener noreferrer">第一次 crater 运行</a> 的结果后，他们决定推进此变更以减少对生态系统的影响，并可能带来其他益处，发布了 <a href="https://github.com/rust-lang/cargo/pull/16421" rel="noopener noreferrer">#16421</a>。</p>
<p><a href="https://github.com/epage" rel="noopener noreferrer">epage</a> 还尝试在新的构建目录布局上运行 Cargo 的所有测试套件（<a href="https://github.com/rust-lang/cargo/pull/16375" rel="noopener noreferrer">#16375</a>），这导致了 <a href="https://github.com/rust-lang/cargo/pull/16348" rel="noopener noreferrer">#16348</a>。</p>
<p>一次 <a href="https://github.com/rust-lang/rust/pull/149852#issuecomment-3764244130" rel="noopener noreferrer">新的 crater 运行</a> 已经启动，结果分析正在进行中。</p>
<h3 id="target-dir-locking"><a href="#target-dir-locking" rel="noopener noreferrer"></a>
目标目录锁定</h3>
<p><em>更新自 <a href="https://blog.rust-lang.org/inside-rust/2026/01/07/this-development-cycle-in-cargo-1.93/#target-dir-locking" rel="noopener noreferrer">1.93</a></em></p>

<p>除了自上次更新以来面临的挑战，另一个问题是读取指纹以决定是否需要修改缓存条目时必须持有锁。锁的升级和降级存在死锁风险。</p>
<p>上次更新结束时提出的想法是，顶层构建操作拥有所有锁，并且被独占获取。这可以帮助解决指纹问题：我们在读取指纹之前获取锁，就知道它是安全的。但这确实意味着两个相同的构建会竞争锁。至少 <code>cargo check</code>（来自 rust-analyzer）和 <code>cargo test</code>（包装了 <code>cargo build</code>）或 <code>cargo clippy</code> 不会竞争。除了在一些容易忽略但重要的情况下。对于 <code>cargo check</code> 和 <code>cargo clippy</code>，<code>cargo clippy</code> 只为工作区成员获取唯一的缓存条目，因此非工作区成员将竞争锁。对于 <code>cargo check</code> 和 <code>cargo test</code>，缓存条目是唯一的（至少目前如此，参见 <a href="https://github.com/rust-lang/cargo/issues/3501" rel="noopener noreferrer">#3501</a>），除了涉及过程宏和构建脚本的情况。我们决定暂时搁置此问题，以合并一个可以进一步迭代的最小设计。</p>
<p>我们还搁置了
<a href="https://github.com/rust-lang/cargo/pull/16155#discussion_r2632376448" rel="noopener noreferrer">动态资源限制</a>、
<a href="https://github.com/rust-lang/cargo/pull/16155#discussion_r2648691107" rel="noopener noreferrer">阻塞消息通知用户</a>、
以及当被阻塞时复用构建线程与另一个构建单元而不是空闲的想法。在那个阶段，我们得以合并 <a href="https://github.com/rust-lang/cargo/pull/16155" rel="noopener noreferrer">#16155</a>。我们正在 <a href="https://github.com/rust-lang/cargo/issues/4282" rel="noopener noreferrer">#4282</a> 中跟踪这些被推迟项目的进展。</p>
<h3 id="structured-logging"><a href="#structured-logging" rel="noopener noreferrer"></a>
结构化日志</h3>
<p><em>更新自 <a href="https://blog.rust-lang.org/inside-rust/2026/01/07/this-development-cycle-in-cargo-1.93/#structured-logging" rel="noopener noreferrer">1.93</a></em></p>
<p><a href="https://github.com/weihanglo" rel="noopener noreferrer">weihanglo</a> 继续在此方面取得进展，包括：</p>
<ul>
<li>重构（<a href="https://github.com/rust-lang/cargo/pull/16485" rel="noopener noreferrer">#16485</a>）</li>
<li>文档（<a href="https://github.com/rust-lang/cargo/pull/16476" rel="noopener noreferrer">#16476</a>）</li>
<li>为 <code>cargo report timings</code> 添加缺失功能（<a href="https://github.com/rust-lang/cargo/pull/16414" rel="noopener noreferrer">#16414</a>、<a href="https://github.com/rust-lang/cargo/pull/16441" rel="noopener noreferrer">#16441</a>）</li>
<li>添加 <code>cargo report rebuild</code>（<a href="https://github.com/rust-lang/cargo/pull/16456" rel="noopener noreferrer">#16456</a>、<a href="https://github.com/rust-lang/cargo/pull/16408" rel="noopener noreferrer">#16408</a>、<a href="https://github.com/rust-lang/cargo/pull/16448" rel="noopener noreferrer">#16448</a>）以查看重建原因</li>
<li>添加 <code>cargo report sessions</code>（<a href="https://github.com/rust-lang/cargo/pull/16428" rel="noopener noreferrer">#16428</a>）以获取用于 <code>cargo report timings</code> 和 <code>cargo report rebuild</code> 的 ID</li>
<li>为 <code>cargo report *</code> 命令提供 man 页面（<a href="https://github.com/rust-lang/cargo/pull/16432" rel="noopener noreferrer">#16432</a>、<a href="https://github.com/rust-lang/cargo/pull/16430" rel="noopener noreferrer">#16430</a>）</li>
<li>移除不稳定的 <code>--timings=FMT</code>，因为它与 <code>cargo report timings</code> 功能重复（<a href="https://github.com/rust-lang/cargo/pull/16420" rel="noopener noreferrer">#16420</a>）</li>
</ul>
<p>在项目目标跟踪 issue 上，<a href="https://github.com/weihanglo" rel="noopener noreferrer">weihanglo</a>
<a href="https://github.com/rust-lang/rust-project-goals/issues/398#issuecomment-3725163795" rel="noopener noreferrer">发布了总结</a>、
朝向稳定化的剩余步骤，以及人们如何提供帮助。</p>

<h3 id="toml-1-1"><a href="#toml-1-1" rel="noopener noreferrer"></a>
TOML 1.1</h3>
<p>12月18日，<a href="https://github.com/toml-lang/toml/releases/tag/1.1.0" rel="noopener noreferrer">TOML v1.1 规范</a> 发布。此版本的主要变更是现在允许在内联表中使用换行符。同一天，<a href="https://docs.rs/toml/latest/toml/" rel="noopener noreferrer"><code>toml</code> v0.9.10</a> 发布以 <a href="https://github.com/toml-rs/toml/blob/main/crates/toml/CHANGELOG.md#0910---2025-12-18" rel="noopener noreferrer">支持解析 TOML 1.1 文件</a>。</p>
<p>在 <a href="https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/TOML.201.2E1/near/564132825" rel="noopener noreferrer">Zulip</a> 上，我们讨论了 Cargo 的过渡问题。用户可能会无意中使用 TOML v1.1 的特性，并因此提高解析其清单所需的 Cargo 版本。这是 <a href="https://doc.rust-lang.org/cargo/reference/rust-version.html#support-expectations" rel="noopener noreferrer">我们鼓励那些设置 <code>rust-version</code> 的人在 CI 中进行验证</a> 的众多原因之一。然而，影响将是有限的，因为 <code>cargo package</code> 会重写发布的 <code>Cargo.toml</code>，包括仅使用 TOML v0.5 或更早的特性。这主要在使用 <a href="https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section" rel="noopener noreferrer">git patch</a> 指向原始仓库时会感受到影响。</p>
<p>这里有一个注意事项：
<code>toml</code> 目前不保留 <a href="https://docs.rs/toml_datetime/0.7.5+spec-1.1.0/toml_datetime/struct.Time.html" rel="noopener noreferrer">时间中秒数或纳秒数是被省略还是为 0</a>，它假设秒数从不被省略，而 0 纳秒总是被省略。如果 <code>toml</code> 开始保留此信息 <em>并且</em> 一个 <code>Cargo.toml</code> 字段使用了时间（可能仅在 <code>[*.metadata]</code> 字段中）<em>并且</em> 用户使用新语法格式化其时间，那么 <code>cargo package</code> 将生成一个需要新版本 Cargo 才能解析的重写后的 <code>Cargo.toml</code>。</p>
<p>Cargo 可以检测是否使用了 TOML v1.1 特性，并在 <code>package.rust-version</code> 字段过旧时发出警告，但我们认为这不构成阻碍，因为这与我们今天可以使用的任何其他字段情况相同，这些字段都会提高您的最低支持 Rust 版本。</p>
<p>Cargo 对 TOML v1.1 的支持于12月28日合并（<a href="https://github.com/rust-lang/cargo/pull/16415" rel="noopener noreferrer">#16415</a>）。</p>
<h3 id="cargo-cargofmt"><a href="#cargo-cargofmt" rel="noopener noreferrer"></a>
<code>cargo-cargofmt</code></h3>
<p>人们一直期望 <code>cargo fmt</code> 也能格式化 <code>Cargo.toml</code> 文件（<a href="https://github.com/rust-lang/rustfmt/issues/4091" rel="noopener noreferrer">rustfmt#4091</a>）。这项工作的一个主要障碍是 <a href="https://doc.rust-lang.org/nightly/style-guide/cargo.html" rel="noopener noreferrer">官方 <code>Cargo.toml</code> 文件风格指南</a> 与现有或预期的 <code>Cargo.toml</code> 文件使用方式不一致。关于风格指南的提案想法曾在 <a href="https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/.60Cargo.2Etoml.60.20style.20guide/near/380796244" rel="noopener noreferrer">Zulip</a> 上讨论过，但对话停滞了。</p>
<p><a href="https://github.com/epage" rel="noopener noreferrer">epage</a> 创建了 <a href="https://github.com/crate-ci/cargo-cargofmt" rel="noopener noreferrer"><code>cargo-cargofmt</code></a> 作为风格指南想法及其实现的测试平台。这包括 <a href="https://github.com/crate-ci/cargo-cargofmt/discussions/9" rel="noopener noreferrer">总结过去的对话</a> 以及 <a href="https://github.com/crate-ci/cargo-cargofmt/discussions/3" rel="noopener noreferrer">比较现有格式化器</a>。</p>
<p><a href="https://github.com/iepathos" rel="noopener noreferrer">iepathos</a> 介入并扩展了格式化规则，包括调整单行和多行数组之间转换的一些棘手工作（<a href="https://github.com/crate-ci/cargo-cargofmt/pull/37" rel="noopener noreferrer">cargo-cargofmt#37</a>）。将内联表格式化为多行被推迟了，因为它可能需要一个新的 <a href="https://doc.rust-lang.org/nightly/style-guide/editions.html" rel="noopener noreferrer">风格版本</a> 以确保包的 MSRV 足够高以支持它。</p>
<p>有关当前支持的内容，请参见 <a href="https://github.com/crate-ci/cargo-cargofmt/discussions/25" rel="noopener noreferrer">cargo-cargofmt#25</a>，以及正在考虑的内容，请参见 <a href="https://github.com/crate-ci/cargo-cargofmt/issues" rel="noopener noreferrer">issue 列表</a>。</p>
<h3 id="lockfile-path"><a href="#lockfile-path" rel="noopener noreferrer"></a>
lockfile-path</h3>
<p><em>更新自 <a href="https://blog.rust-lang.org/inside-rust/2024/10/01/this-development-cycle-in-cargo-1.82/#misc" rel="noopener noreferrer">1.82</a></em></p>
<p>之前，已添加了不稳定的 <code>--lockfile-path ../Cargo.lock</code> 支持（<a href="https://github.com/rust-lang/cargo/pull/14326" rel="noopener noreferrer">#14326</a>）。在 <a href="https://github.com/rust-lang/cargo/issues/15510" rel="noopener noreferrer">#15510</a> 中，我们收到一个请求，要求也通过环境变量来设置它。在讨论中，我们认为应该将实现从 CLI 标志转向配置字段，因为这样既可以支持环境变量，也可以通过 <code>--config</code> 支持 CLI。特别是，我们试图记住的一个要点是，用户查看 <code>cargo &lt;cmd&gt; --help</code> 时能多容易找到他们需要的内容。存在的标志越多，用户越可能找不到他们需要的标志，用户从所有标志中获得的价值就越低，因为人们会转而绕开他们认为缺乏支持的功能。这在之前关于 <code>--out-dir</code> / <code>--artifact-dir</code> 的讨论中也出现过（<a href="https://github.com/rust-lang/cargo/issues/6100" rel="noopener noreferrer">#6100</a>）。在权衡此功能的范围时，“隐藏”在配置中似乎是最佳方案。</p>
<p><a href="https://github.com/weihanglo" rel="noopener noreferrer">weihanglo</a> 在 <a href="https://github.com/rust-lang/cargo/pull/16510" rel="noopener noreferrer">#16510</a> 中添加了 <code>resolver.lockfile-path</code>。我们将在另一个开发周期中移除 <code>--lockfile-path</code>，以便调用者有时间过渡。</p>
<h2 id="design-discussions"><a href="#design-discussions" rel="noopener noreferrer"></a>
设计讨论</h2>
<h3 id="workspace-and-configuration-discovery"><a href="#workspace-and-configuration-discovery" rel="noopener noreferrer"></a>
工作区与配置发现</h3>

<p>如果您不小心将一个 <code>Cargo.toml</code> 文件复制到您的主目录，它将导致您所有未显式声明 <code>[workspace]</code> 的包构建失败。对于任何恰好在父目录中的损坏或仅限于 nightly 的 <code>Cargo.toml</code> 或 <code>.cargo/config.toml</code> 文件也是如此（例如 <a href="https://github.com/rust-lang/cargo/issues/6646" rel="noopener noreferrer">#6646</a>、<a href="https://github.com/rust-lang/cargo/issues/6706" rel="noopener noreferrer">#6706</a>）。对于 <code>Cargo.toml</code>，Cargo 会检查当前清单是否是工作区的一部分。</p>
<p>我们至少可以改进错误信息，我们正在 <a href="https://github.com/rust-lang/cargo/issues/6706" rel="noopener noreferrer">#6706</a> 中跟踪此项。如果能阻止新用户意外地在主目录中创建包也会有所帮助（<a href="https://github.com/rust-lang/cargo/issues/16562" rel="noopener noreferrer">#16562</a>）。</p>
<p>对于 nightly 清单的情况，Cargo 可以检查父 <code>Cargo.toml</code> 是否有一个 <code>[workspace]</code> 表，并通过延迟 nightly 特性检查来跳过它。但是，nightly 特性可能会影响工作区发现。</p>
<p>对于清单，一个解决方法是在您的包中添加一个空的 <code>[workspace]</code>。但是，如果您在子目录中运行 <code>cargo new</code>，它将自动被添加为成员。我们可以扩展 <a href="https://doc.rust-lang.org/cargo/reference/manifest.html#the-workspace-field" rel="noopener noreferrer"><code>package.workspace = "&lt;path&gt;"</code></a>，使用 <code>package.workspace = &lt;bool&gt;</code> 来选择加入或退出工作区的自动发现。对于这种情况，您可以插入 <code>package.workspace = false</code> 以避免向上遍历目录树。Cargo 脚本开始时禁用了工作区自动发现，这可能是我们允许启用它的方法。此想法正在 <a href="https://github.com/rust-lang/cargo/issues/16563" rel="noopener noreferrer">#16563</a> 中跟踪。</p>
<p>我们希望更广泛地改进工作区和配置发现行为，我们正在 <a href="https://github.com/rust-lang/cargo/issues/7871" rel="noopener noreferrer">#7871</a> 中跟踪此项。</p>
<h2 id="misc"><a href="#misc" rel="noopener noreferrer"></a>
其他动态</h2>
<ul>
<li><a href="https://github.com/osiewicz" rel="noopener noreferrer">osiewicz</a> 在 <a href="https://github.com/rust-lang/cargo/pull/16264" rel="noopener noreferrer">#16264</a> 中加快了 <code>cargo clean -p</code> 和 <code>cargo clean --workspace</code> 的速度。</li>
<li><em>（更新自 <a href="https://blog.rust-lang.org/inside-rust/2026/01/07/this-development-cycle-in-cargo-1.93/#custom-final-artifacts" rel="noopener noreferrer">1.93</a>）</em> <a href="https://github.com/ranger-ross" rel="noopener noreferrer">ranger-ross</a> 添加了不稳定的构建脚本在没有 <code>package.links</code> 清单键的情况下使用 <code>cargo::metadata</code> 的支持（<a href="https://github.com/rust-lang/cargo/pull/16436" rel="noopener noreferrer">#16436</a>）。</li>
</ul>
<h2 id="focus-areas-without-progress"><a href="#focus-areas-without-progress" rel="noopener noreferrer"></a>
无进展的重点领域</h2>
<p>这些是 Cargo 团队成员感兴趣的领域，在本开发周期内没有可报告的进展。</p>
<p>需要负责人的项目目标：</p>
<ul>
<li><a href="https://rust-lang.github.io/rust-project-goals/2025h2/pub-priv.html" rel="noopener noreferrer">稳定化公共/私有依赖项</a></li>
<li><a href="https://rust-lang.github.io/rust-project-goals/2025h2/cargo-plumbing.html" rel="noopener noreferrer">原型化一套新的 Cargo "管道" 命令</a></li>
<li><a href="https://rust-lang.github.io/rust-project-goals/2025h2/libtest-json.html" rel="noopener noreferrer">完成 libtest JSON 输出实验</a></li>
</ul>

<p>可开发状态：</p>
<ul>
<li><a href="https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#open-namespaces" rel="noopener noreferrer">开放命名空间</a></li>
<li><a href="https://github.com/rust-lang/cargo/issues/14520" rel="noopener noreferrer">自动生成补全</a>
<ul>
<li>参见 <a href="https://github.com/clap-rs/clap/issues/3166" rel="noopener noreferrer">clap-rs/clap#3166</a></li>
</ul>
</li>
</ul>

<p>规划中：</p>
<ul>
<li><a href="https://github.com/rust-lang/cargo/issues/3126" rel="noopener noreferrer">禁用默认特性</a></li>
<li><a href="https://github.com/rust-lang/rfcs/pull/3416" rel="noopener noreferrer">RFC #3416: <code>features</code> 元数据</a>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3487" rel="noopener noreferrer">RFC #3487: 可见性</a>（visibility）</li>
<li><a href="https://github.com/rust-lang/rfcs/pull/3486" rel="noopener noreferrer">RFC #3486: 弃用</a></li>
<li><a href="https://doc.rust-lang.org/cargo/reference/unstable.html#list-of-unstable-features" rel="noopener noreferrer">不稳定的特性</a></li>
</ul>
</li>
<li><a href="https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618" rel="noopener noreferrer">Pre-RFC: 全局互斥特性</a></li>
<li><a href="https://github.com/rust-lang/rfcs/pull/3553" rel="noopener noreferrer">RFC #3553: Cargo 软件物料清单 (SBOM) 片段</a></li>
<li><a href="https://github.com/rust-lang/cargo/issues/1734" rel="noopener noreferrer">操作系统原生的配置/缓存目录（即 XDG 支持）</a></li>
</ul>
<h2 id="how-you-can-help"><a href="#how-you-can-help" rel="noopener noreferrer"></a>
您如何提供帮助</h2>
<p>如果您有改进 Cargo 的想法，我们建议首先检查 <a href="https://github.com/rust-lang/cargo/issues/" rel="noopener noreferrer">我们的待办事项列表</a>，然后在 <a href="https://internals.rust-lang.org/c/tools-and-infrastructure/cargo/15" rel="noopener noreferrer">Internals</a> 上探讨该想法。</p>
<p>如果您希望解决某个在此处未讨论过的特定问题，您可以采取一些步骤来推动其进展，包括：</p>
<ul>
<li>总结现有对话（例如：<a href="https://github.com/rust-lang/cargo/issues/2644#issuecomment-1489371226" rel="noopener noreferrer">更好地支持 Docker 层缓存</a>、<a href="https://github.com/rust-lang/cargo/issues/8728#issuecomment-1610265047" rel="noopener noreferrer"><code>Cargo.lock</code> 策略的变更</a>、<a href="https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489089277" rel="noopener noreferrer">感知最低支持 Rust 版本的解析器</a>）</li>
<li>记录其他生态系统中的先例，以便我们可以在他人工作的基础上构建，并在合理的情况下为用户提供熟悉的功能</li>
<li>记录 Cargo 内部的相关问题和解决方案，以便我们了解是否在正确的抽象层上解决问题</li>
<li>基于这些帖子，提出一个考虑上述信息和 Cargo 兼容性要求的解决方案（<a href="https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489269471" rel="noopener noreferrer">示例</a>）</li>
</ul>
<p>我们可以在 <a href="https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo" rel="noopener noreferrer">zulip</a> 上帮助指导 <a href="https://doc.crates.io/contrib/issues.html#issue-status-labels" rel="noopener noreferrer">S-accepted</a> 状态的 issue，并且您可以在 <a href="https://github.com/rust-lang/cargo/wiki/Office-Hours" rel="noopener noreferrer">贡献者办公时间</a> 期间实时与我们交谈。如果您希望帮助解决此处提到的某个较大项目并且刚刚开始，<a href="https://doc.crates.io/contrib/process/index.html#working-on-issues" rel="noopener noreferrer">修复一些 issue</a> 将帮助您熟悉流程和期望，使事情进展更顺利。如果您想解决一些 <a href="https://doc.crates.io/contrib/issues.html#issue-status-labels" rel="noopener noreferrer">没有导师</a> 的问题，对您自己需要做的事情的期望会更高。</p><p><em>由 mimo-v2.5 模型翻译，花费 16239 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/02/18/this-development-cycle-in-cargo-1.94/</guid>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>维护者聚焦：Tiffany Pek Yuan（@tiif）</title>
      <dc:creator>Jakub Beránek, Lori Lorusso</dc:creator>
      <description>[AI 摘要] 文章介绍了 Tiffany Pek Yuan 从 GSoC 参与者成长为 Rust 编译器团队成员的经历，以及她在 Miri、编译器等项目中的贡献和对 Rust 社区的热爱。</description>
      <content:encoded><![CDATA[<div style="background:#f0f4f8;border-left:3px solid #3b82f6;padding:12px 16px;border-radius:6px;margin:12px 0;font-size:14px;color:#555"><strong>[AI 摘要]</strong> 文章介绍了 Tiffany Pek Yuan 从 GSoC 参与者成长为 Rust 编译器团队成员的经历，以及她在 Miri、编译器等项目中的贡献和对 Rust 社区的热爱。</div>有<a href="https://rust-lang.org/governance/people" rel="noopener noreferrer">数百人</a><a href="https://blog.rust-lang.org/inside-rust/2026/01/12/what-is-maintenance-anyway/" rel="noopener noreferrer">维护</a>着 Rust 工具链，其中许多人是在本职工作之外自愿承担的。Rust <a href="https://rust-lang.org/governance/teams/launching-pad/#team-content" rel="noopener noreferrer">内容团队</a>正在撰写一系列博客文章，以突出这些高产的贡献者，表彰他们为让 Rust 对每个人都更好所做的出色工作。本文是该系列的第一篇。
<hr>
<aside>
  <img alt="Tiffany Pek Yuan 的照片" src="tiif.jpg" width="200">
</aside>
<p>在本文中，我们想介绍<strong>Tiffany Pek Yuan</strong>（<a href="https://github.com/tiif/" rel="noopener noreferrer">@tiif</a>）。Tiffany 两年前才开始为 Rust 做贡献，当时是 Google Summer of Code <a href="https://blog.rust-lang.org/2024/11/07/gsoc-2024-results/#tokio-async-support-in-miri" rel="noopener noreferrer">（GSoC）贡献者</a>。从那时起，她已经成为<a href="https://rust-lang.org/governance/teams/compiler/#team-compiler" rel="noopener noreferrer">编译器</a>和<a href="https://rust-lang.org/governance/teams/compiler/#team-formality" rel="noopener noreferrer">Formality</a>团队的成员，并对多个项目做出了重要贡献，包括编译器、<a href="https://github.com/rust-lang/miri" rel="noopener noreferrer">Miri</a>和<a href="https://github.com/rust-lang/a-mir-formality" rel="noopener noreferrer">a-mir-formality</a>。她也从一名受指导者转变为导师，因为现在她在<a href="https://blog.rust-lang.org/2026/05/04/outreachy-2026-may/#fuzzing-the-a-mir-formality-type-system-implementation" rel="noopener noreferrer">Outreachy</a>项目中指导另一位贡献者。</p>
<p>目前，她正在完成大学学位，同时作为<a href="https://rustnl.org/maintainers" rel="noopener noreferrer">RustNL 维护者团队</a>的 Rust 维护者实习生从事 Rust 编译器工作。</p>
<blockquote>
<p>我认识 Tiffany 时，她还是一名 GSoC 学生，正在为 Miri 添加检查 tokio 中 unsafe 代码的支持。指导她是一件乐事，随后看到她留下来并自行学习 formality 和 rustc，更是令人欣喜。</p>
<p>Oli Scherer，Rust 编译器团队成员，Tiffany 的 GSoC 导师</p>
</blockquote>
<p>我们采访了 Tiffany，了解她加入 Rust 项目和为 Rust 做贡献的经历。请继续阅读下文！</p>
<p><strong>请简要介绍一下自己。</strong></p>
<p>嗨，我叫 Tiffany Pek。我目前正在新加坡国立大学攻读计算机科学学士学位。希望几个月后就能毕业！我为 Rust 的各个部分做出过贡献，现在主要专注于修复一个新的 trait solver 错误，该错误与隐式绑定有关，并在<a href="https://github.com/rust-lang/a-mir-formality" rel="noopener noreferrer">a-mir-formality</a>项目中建模借用检查器的语义，该项目试图定义一个类型系统模型。</p>
<p><strong>你是如何开始接触 Rust 的？是在课程中学习的，还是出于爱好？</strong></p>
<p>我后来确实上过一门关于 Rust 的课程，但在那之前我就已经自学了。我大约在 2022 年听说了 Rust，因为当时在寻找一门系统编程语言。我在一个研究项目中尝试了它，并且非常喜欢。在那之前我尝试过很多编程语言，比如 Java、Python 或 C++。它们都不错，但 Rust 似乎更有趣。让我着迷的是它非常友好的错误消息。</p>
<p><strong>你是如何参与到 Rust 项目中的？</strong></p>
<p>我记得在大学时告诉朋友，如果能为 Rust 项目做贡献会<em>非常酷</em>。然后，仅仅一个月后，我得知 Rust <a href="https://blog.rust-lang.org/2024/02/21/Rust-participates-in-GSoC-2024/" rel="noopener noreferrer">参与</a>了 Google Summer of Code (GSoC)，我立刻想“我必须参加这个项目”！我们大学里都知道 GSoC，但不知为何尝试申请的人不多。我申请了 GSoC 并被录取了。</p>
<p>我觉得即使没有 GSoC，我最终也会为 Rust 做贡献，但这次实习让我有机会几乎全职地参与 Rust 工作，而不用担心找另一份工作。这非常有帮助。</p>
<p><strong>你的 GSoC 经历如何？</strong></p>
<p>我觉得非常顺利！这段经历非常愉快，因为还有其他几位实习生在同时进行不同的项目。而且我们都是“新手”，所以并不是只有我一个人在某些事情上挣扎。例如，当我搞砸了一个 pull request 的 rebase 时，我看到另一位 GSoC 贡献者也遇到了同样的情况，于是我想“哦，是的，我们是一样的！”，这样我就感觉好多了。另外，Oli 也是一位非常好的导师，和他们交谈非常开心。</p>
<p>Jakub 也是一位非常好的组织者，这使得项目取得了巨大成功。让我印象深刻的是<a href="https://rust-lang.zulipchat.com/#narrow/channel/421156-gsoc/topic/GSoC.202024.20participants/near/439416607" rel="noopener noreferrer">我们甚至在实习开始之前就已经讨论了倦怠问题</a>。</p>
<p>总的来说，这是一次很棒的入门体验，它激励我留了下来，因为我真的很喜欢这个社区。</p>
<p><strong>你的 GSoC 项目是关于什么的？</strong></p>
<p>我从事的是<a href="https://github.com/rust-lang/miri" rel="noopener noreferrer">Miri</a>的工作，它是 Rust 的未定义行为检测工具。当时，要将 Miri 运行在使用<a href="https://tokio.rs/" rel="noopener noreferrer">tokio</a> crate 的非平凡异步 Rust 程序上基本上是不可能的。我<a href="https://blog.rust-lang.org/2024/11/07/gsoc-2024-results/#tokio-async-support-in-miri" rel="noopener noreferrer">添加</a>了对各种非阻塞 I/O 系统调用（如 <code>epoll</code>）的支持，以扩大 Miri 可以处理的程序范围。然后我们与 Tokio 维护者合作，在他们的 CI 中对大多数 Tokio 测试运行 Miri，这相当令人兴奋。</p>
<p><strong>你的第一次贡献是什么？</strong></p>
<p>我为 Miri 添加了两个<a href="https://github.com/rust-lang/miri/pull/3398" rel="noopener noreferrer">测试</a>。在此过程中，我发现贡献文档中有些指令不清楚，因此我在同一个 PR 中也改进了文档。</p>
<p><strong>你会推荐新贡献者采用这种方法吗？</strong></p>
<p>是的，我认为改进文档是开始为 Rust 做贡献的好方法。首先找到你感兴趣的领域也很重要，因为 Rust 项目非常庞大，有 Miri、编译器、rustfmt、rustdoc、rust-analyzer、Cargo 以及许多其他需要贡献的领域。在进行较大的更改之前，最好先与相应的维护者讨论，然后再提交 PR。</p>
<p>如果你刚开始接触 Rust，请务必阅读错误消息，因为它们非常友好。如果你觉得错误消息难以理解，那可能是个 bug，那就去提个 issue 吧！</p>
<p><strong>是什么让你在 GSoC 之后仍然留在 Rust 社区？</strong></p>
<p>我留下来是因为社区。在 GSoC 期间，我开始与其他 Rust GSoC 贡献者交流。最终我在北京的一次会议上遇到了他们中的两位以及其他 Rust 项目成员。随后，我在<a href="https://blog.rust-lang.org/inside-rust/2024/09/02/all-hands" rel="noopener noreferrer">Rust All Hands</a>上结识了许多很棒的朋友，这使得 Rust 不再仅仅是一个纯技术项目，也成为了我和许多朋友热爱和关心的兴趣爱好。</p>
<p><strong>你是如何加入编译器团队的？</strong></p>
<p>我从 2024 年 3 月开始为 Rust 做贡献。在 GSoC 项目期间，我主要在 Miri 上工作，但后来我转而从事编译器工作。2025 年 11 月，我被邀请加入编译器团队。我完全没想到会收到邀请，所以感到很惊喜。</p>
<p>那时我已经与 Rust 社区有了很多互动，所以加入团队感觉变化不大，但得到正式认可确实感觉非常好。我也认为成为 Rust 团队成员可能有助于我找工作。</p>
<p><strong>你对加入 Rust 项目感到高兴吗？</strong></p>
<p>我非常高兴！项目里的人们都非常友善，我们经常彼此交流，这很棒。</p>
<p>我能够参加 2025 年和 2026 年的<a href="https://rustweek.org" rel="noopener noreferrer">RustWeek</a>会议和 Rust All Hands，这非常好。我感激 Rust 项目和基金会提供的旅行资助，让我能够参加这些活动。我在那里交到了很多朋友，这也是我仍然留在 Rust 项目的一部分原因。我所有的 Rust 朋友都在那里！</p>
<p><strong>在 Rust 编译器上工作有什么让你兴奋的地方？</strong></p>
<p>我觉得编译器非常令人兴奋！它就像一个神秘的黑匣子。如果你不了解它的工作原理，可能会觉得它很可怕，但一旦你开始学习，它实际上相当精巧。</p>
<p>我发现新的 trait solver 和 Polonius 工作（新的借用检查实现）非常令人兴奋，因为它们是语言的核心部分。一旦新的 trait solver 完成，我们将能够解锁许多特性并修复许多健全性 bug。而 Polonius 将使编译器能够接受许多以前被拒绝的正确程序，这可以使语言更具表达力。</p>
<p><strong>在一个庞大且备受关注的编译器团队工作是什么感觉？</strong></p>
<p>编译器团队之所以如此庞大<sup id="fr-compiler-team-size-1"><a href="#fn-compiler-team-size" rel="noopener noreferrer">1</a></sup>，仅仅是因为代码库非常庞大，所以每个人专精于编译器的不同部分。我通常只审查我熟悉的那部分编译器。我从不知道编译器另一部分发生了什么，因为每天都有太多事情在发生。</p>
<p><strong>在项目中，谁是你最大的导师？</strong></p>
<p>是多个人，而不仅仅是一个。最初肯定是<a href="https://github.com/oli-obk" rel="noopener noreferrer">oli</a>，因为他是我的 GSoC 导师，我们（现在仍然）经常交谈。后来我开始从事类型系统相关的工作，我帮助<a href="https://github.com/lcnr" rel="noopener noreferrer">lcnr</a>处理新的 trait solver。我也经常与<a href="https://github.com/boxyuwu" rel="noopener noreferrer">Boxy</a>交流，他现在是编译器团队的联合负责人。</p>
<p><strong>你是否也曾尝试指导他人？</strong></p>
<p>我尽量为其他人留下简单的改进任务，比如为他们开设包含贡献指令的 issue，并尝试在那些 issue 上回答潜在贡献者的问题。最近，我还在<a href="https://blog.rust-lang.org/2026/05/04/outreachy-2026-may/#fuzzing-the-a-mir-formality-type-system-implementation" rel="noopener noreferrer">Outreachy</a>项目中开始指导一位贡献者，这很令人兴奋。</p>
<p><strong>你是否希望在 Rust 项目中做出一些改变？</strong></p>
<p>我认识很多人，如果他们有机会全职参与 Rust 工作，就能创造出很棒的东西。但如果没有资金支持，他们只能断断续续地工作，这对他们来说效率不高，也不利于知识传递。我希望更多的 Rust 贡助者能获得资助。</p>
<p><strong>你是否为自己的 Rust 贡助找到了资金支持？</strong></p>
<p>我开始为 Rust 做贡献时，得到了 GSoC 项目的资助，这很好。后来我加入了苏黎世联邦理工学院的一个实习项目，这也提供了资金来源。在那些时候，我的产出相当高。但类似的资助来源通常只是暂时的。我还是个学生，所以我必须处理学业，同时还需要一份额外的工作来养活自己，这有时会有点困难。</p>
<p>找一份远程工作可能很棘手，因为我住在新加坡，时差问题不大。如果我要和美国的人安排会议，通常必须在晚上进行。幸运的是我睡得没那么早 :-) 但在与欧洲或美国的人和公司打交道时，这可能会是个问题。</p>
<p>我希望很快能完成学业，之后我就得找一份全职工作。我认为即使在那种情况下，我仍然会想为 Rust 做贡献，但我不确定该如何做到。也许我需要牺牲一些周末时间之类的。这可能会有点困难，但并非不可能。</p>
<p>目前，我在 RustNL 维护者团队有一个实习机会。如果我能找到一份允许我从事 Rust 工作的全职工作，那将是极好的，因为我真的很喜欢我现在所做的事情。</p>
<p>我认为即将推出的资金计划，如 RustNL 维护者团队和 Rust 基金会维护者基金，将能够为更多的 Rust 项目贡献者提供经济支持。不过我稍微担心公司资助维护工作的动机。公司的利益并不总是与社区的利益一致，这可能会产生一点利益冲突。但我相信有办法来缓解这一点。</p>
<hr>
<p>我们感谢 Tiffany 与我们分享她的想法，以及她为改进 Rust 所做的一切工作！</p>

<ol>
<li id="fn-compiler-team-size">
<p>目前，该团队拥有超过 70 名<a href="https://rust-lang.org/governance/teams/compiler/#team-compiler" rel="noopener noreferrer">成员</a>。<a href="#fr-compiler-team-size-1" rel="noopener noreferrer">↩</a></p>
</li>
</ol>
<p><em>由 mimo-v2.5 模型翻译，花费 7290 tokens</em></p>]]></content:encoded>
      <link>https://blog.rust-lang.org/inside-rust/2026/06/03/maintainer-spotlight-tiffany-pek-yuan-tiif/</link>
      <guid isPermaLink="false">https://blog.rust-lang.org/inside-rust/2026/06/03/maintainer-spotlight-tiffany-pek-yuan-tiif/</guid>
      <pubDate>Wed, 3 Jun 2026 00:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>
