From d7a06a7f25dc8e6657a734ee1136d95b944e95a3 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Wed, 30 Jul 2025 15:14:52 +0200 Subject: [PATCH 01/11] draft pm july update --- .../program-management-update-2025-07.md | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 content/inside-rust/program-management-update-2025-07.md diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md new file mode 100644 index 000000000..eec72ef36 --- /dev/null +++ b/content/inside-rust/program-management-update-2025-07.md @@ -0,0 +1,187 @@ ++++ +path = "inside-rust/9999/12/31/program-management-update-2025-07" +title = "Program management update — July 2025" +authors = ["Tomas Sedovic"] + +[extra] +team = "Edition & Goals teams" +team_url = "https://www.rust-lang.org/governance/teams/" ++++ + +Welcome to the second Rust PM update! + +Things were a bit busy in the personal life. We had to temporarily move to a smaller apartment which was quite time-consuming and energy-draining. And after that, I took a week off and we spent it in the mountains. + +So things were a bit slower in July. In addition to meetings, what clearly dominated was the Project Goals work. + +## Wrapping up 2025 H1 goals + +As we entered the second half of the year, it was time to wrap up the current Project Goals and get the new ones going. In the spirit of helping people focus on other things, I took this over. + +First, I've sent a couple requests for goal updates. This lead me to noticing and fixing an issue with the triagebot. See [the `ping-goals` section](#ping-goals-retry-issue). + +After people provided their final messages, I've published the final 2025H1 Project Goals update: + +https://example.com/july-project-goals-update/ + +(**TODO** write and publish the July final goal update) + +With that done, I've closed most of the tracking issues. Some goals are being renewed for the H2 period so we're keeping those open. + +(**TODO**: again, make sure we've actually closed the issues before publishing the blog.) + +## Starting 2025 H2 goals + +With all of that out of the way, Niko published the [call for 2025 H2 goal proposals][2025H2CFP]. + +[2025H2CFP]: /inside-rust/2025/06/23/project-goals-2025h2-call-for-submissions/ + +Based on the feedback we've received, we've made some changes: + +* We're getting the proposals in front of the Teams and their leads earlier (well before the final RFC is written) so they are aware and have input into what's being proposed. +* We're asking them to suggest what they'd like to see as a flagship goal before the final selection is made. +* For each proposed goal, we've asked each team with asks mentioned in the goal to select a "champion" who commits to making sure the goal is not blocked by that team. + +Once all the champions are selected, we'll meet with the team leads, go over the goals and figure out which ones we want to accept. + +Similarly, we'll take their input regarding flagship goals. + + +As the goals were being proposed, Niko, Rémy and I looked at the PRs, fixed any CI issues and merged them. + +For each team, I've opened a call for champions Zulip thread listing goals that requested their support. [Here's an example for the Lang team](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/2025H2.20Goal.20Review). + +As with any new process, people had questions. I was there to help clarify we're asking for, the overall plan and next steps. When there were specific questions for a goal, I made sure to connect the right people. + +### Rust for Linux + +Continuing the Rust for Linux effort, I'll be the point of contact for the two goals they're proposed ([compiler][rfl-compiler] and [language][rfl-lang] features for getting Rust for Linux into stable Rust). + +[rfl-compiler]: https://rust-lang.github.io/rust-project-goals/2025h2/Rust-for-Linux-compiler.html +[rfl-lang]: https://rust-lang.github.io/rust-project-goals/2025h2/Rust-for-Linux-language.html + +I will set up the agenda, run the meetings and keep the tracking issues up-to-date. + +## Misc + +### `ping-goals` retry issue + +The request for updates is done by the `ping-goals` command of the @triagebot. This returned an error ("Failed to await at this time: connection closed before message completed"), but did actually ping everyone. + +Multiple time, in fact: + +https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Prepare.20const.20traits.20for.20stabilization.20.28goals.23106.29 + +As you can see in the thread, this wasn't a new behavior either. Precisely the sort of thing I can and should look for improving: + +https://github.com/rust-lang/triagebot/issues/2108 + +Urgau https://github.com/Urgau looked into it and found out this is because rustbot was sending the pings one-by-one and taking some time to finish. + +Zulip interpreted this as a timeout and retried the requests a few times. + +Here's the fix he opened: https://github.com/rust-lang/triagebot/pull/2109. + +Thank you Urgau! + +### Leadership Council Minutes + +Having taken over the minutes for the Leadership Council meetings in June, I've now closed the loop by cleaning them up and publishing them in [the leadership-council repository][leadership-council-minutes]. + +[leadership-council-minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes/sync-meeting + +### Meeting Minutes Upload + +uploaded all the other project meeting notes I took (where relevant) TODO + + +## Stats + +meetings attended: + +word count for minutes + +note the dubiousness of these stats and that they're not a target metric. + +NOTE: count total minuted words. (note: includes people names but I did type those too): + + $ grep --no-filename '^\w\+: ' -r . | wc --words - +77269 + +WHOA: that's almost the length of a novel! (what am I doing with my life‽) + + +## NOTE: July stats + +* cargo + * 2025-07-29: 1531 + * 2025-07-22: 1335 + * 2025-07-15: 600 (I was absent then) + * 2025-07-08: 1919 + * 2025-07-01: 1616 +* lang triage: + * 2025-07-02: 2023 + * 2025-07-09: 2815 +* libs (api and mcp) + * 2025-07-01: 5774 + * 2025-07-08: 5783 + * 2025-07-15: 705 + * 2025-07-22: 4981 +* spec +* leadership council + * 2025-07-04: 1792 + * 2025-07-18: 2228 +* total across the board +$ grep --no-filename '^\w\+: ' -r 2025-07-* | wc --words - +42680 + + +### NOTE: June stats + + + +* cargo + * 2025-06-24: 1316 + * 2025-06-17: 1362 + * 2025-06-10: 1470 + * 2025-06-03: 925 +* lang + * 2025-06-04: 1717 + * 2025-06-11: 2251 + * 2025-06-18: 2028 + * 2025-06-25: 1597 +* libs (api and mcp) + * 2025-06-10: 5098 + * 2025-06-03: 4412 +* spec +* leadership council + * 2025-06-20: 1787 + * 2025-06-06: 2073 +* total across the board +$ grep --no-filename '^\w\+: ' -r 2025-06-* | wc --words - +34589 + +### For comparison, some May stats + +* cargo + * 2025-05-27: 786 + * 2025-05-20: 891 + * 2025-05-13: 0 (skipped for RustWeek) + * 2025-05-06: 936 + * 2025-04-29: 816 +* lang triage + * 2025-05-21: 990 + * 2025-05-07: 3145 + * 2025-04-30: 1000 + * 2025-04-23: 507 +* libs (api and mcp) + * 2025-05-27: 1341 +* spec +* leadership council + * 2025-05-23: 1263 + * 2025-05-09: 1344 + * 2025-04-25: 2023 + * 2025-04-11: 1256 + + +TODO: pick up some small wins? (publish meeting notes, reach out to folks) From 4bb3029729a6a43eeab1ee409a5432f0070b1ea6 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Thu, 31 Jul 2025 19:12:54 +0200 Subject: [PATCH 02/11] some more changes --- .../program-management-update-2025-07.md | 224 +++++++++--------- 1 file changed, 110 insertions(+), 114 deletions(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index eec72ef36..9f414857f 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -10,25 +10,25 @@ team_url = "https://www.rust-lang.org/governance/teams/" Welcome to the second Rust PM update! -Things were a bit busy in the personal life. We had to temporarily move to a smaller apartment which was quite time-consuming and energy-draining. And after that, I took a week off and we spent it in the mountains. +Things were a bit busy in personal life. We had to temporarily move to a smaller apartment which was quite time-consuming and energy-draining. And after that, I took a week off and we spent it in the mountains. -So things were a bit slower in July. In addition to meetings, what clearly dominated was the Project Goals work. +So things were slower in July. What dominated was the Project Goals work. ## Wrapping up 2025 H1 goals As we entered the second half of the year, it was time to wrap up the current Project Goals and get the new ones going. In the spirit of helping people focus on other things, I took this over. -First, I've sent a couple requests for goal updates. This lead me to noticing and fixing an issue with the triagebot. See [the `ping-goals` section](#ping-goals-retry-issue). +First, I've sent a couple requests for goal updates. This lead me to noticing and filing an issue with the triagebot. More details in the [`ping-goals` retry section](#ping-goals-retry-issue). After people provided their final messages, I've published the final 2025H1 Project Goals update: -https://example.com/july-project-goals-update/ +https://github.com/rust-lang/blog.rust-lang.org/pull/1667 -(**TODO** write and publish the July final goal update) +(**TODO** change the link to the published blog if it's merged in time) With that done, I've closed most of the tracking issues. Some goals are being renewed for the H2 period so we're keeping those open. -(**TODO**: again, make sure we've actually closed the issues before publishing the blog.) +(**TODO**: again, make sure we've actually closed the issues before publishing this post.) ## Starting 2025 H2 goals @@ -36,11 +36,11 @@ With all of that out of the way, Niko published the [call for 2025 H2 goal propo [2025H2CFP]: /inside-rust/2025/06/23/project-goals-2025h2-call-for-submissions/ -Based on the feedback we've received, we've made some changes: +Based on the feedback we've received, we've made some changes in this period: * We're getting the proposals in front of the Teams and their leads earlier (well before the final RFC is written) so they are aware and have input into what's being proposed. * We're asking them to suggest what they'd like to see as a flagship goal before the final selection is made. -* For each proposed goal, we've asked each team with asks mentioned in the goal to select a "champion" who commits to making sure the goal is not blocked by that team. +* For each proposed goal, we've requsted each team with asks mentioned in the goal to select a "champion" who commits to making sure the goal is not blocked by that team. Once all the champions are selected, we'll meet with the team leads, go over the goals and figure out which ones we want to accept. @@ -51,16 +51,47 @@ As the goals were being proposed, Niko, Rémy and I looked at the PRs, fixed any For each team, I've opened a call for champions Zulip thread listing goals that requested their support. [Here's an example for the Lang team](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/2025H2.20Goal.20Review). -As with any new process, people had questions. I was there to help clarify we're asking for, the overall plan and next steps. When there were specific questions for a goal, I made sure to connect the right people. +As with any new process, people had questions. I was there to help clarify what we're asking for, the overall plan and next steps. When there were specific questions for a goal, I made sure to connect the right people. -### Rust for Linux +## Verification and Secure Mirroring for crates.io -Continuing the Rust for Linux effort, I'll be the point of contact for the two goals they're proposed ([compiler][rfl-compiler] and [language][rfl-lang] features for getting Rust for Linux into stable Rust). +We now have a detailed update on the crates.io code signing program and its status. + +Quick summary: + +* We've settled on using TAP-16 Merkle Tree implementation of [TUF (The Update Framework)][tuf] for crates.io. +* We've settled on maintaining a top-level quorum but removing immediate levels for simplicity. +* We've reached a consensus with the Infrastructure team for deployment planning. +* A public MVP implementation is coming Soon™ (by the end of August). +* We will test various optimizations to settle on something that works for our tooling (Rustup, releases, crates.io, update, signing etc.). +* Role keys will live in KMS (Key Management Service). + +Open Questions and Next Steps: + +* Which specific optimizations will fit our needs. +* How to implement the Merkle tree to reduce round-trips. +* Stand up infrastructure to host this. + + +For more details, read this [goal update for more details](https://github.com/rust-lang/rust-project-goals/issues/271#issuecomment-3133590786) and/or reach out to @walterhpearce. + +One of the things on my radar is to start publishing more frequent and detailed updates. I've joined the signing meetings to be more aware of what's happening. + +[tuf]: https://theupdateframework.io/ + +## Rust for Linux + +I took over running the Rust for Linux effort from the Rust Project side. + +I helped Miguel propose two 2025 H2 goals ([compiler][rfl-compiler] and [language][rfl-lang] features for getting Rust for Linux into stable Rust) and should they be accepted I will be the point of contact for them. [rfl-compiler]: https://rust-lang.github.io/rust-project-goals/2025h2/Rust-for-Linux-compiler.html [rfl-lang]: https://rust-lang.github.io/rust-project-goals/2025h2/Rust-for-Linux-language.html -I will set up the agenda, run the meetings and keep the tracking issues up-to-date. +I took over running the meetings, preparing the agenda, and making sure the tracking issues are up-to-date and bringing any requests or concerns to the relevant Project teams or people. + +This let Niko disengage from the program completely. + ## Misc @@ -68,120 +99,85 @@ I will set up the agenda, run the meetings and keep the tracking issues up-to-da The request for updates is done by the `ping-goals` command of the @triagebot. This returned an error ("Failed to await at this time: connection closed before message completed"), but did actually ping everyone. -Multiple time, in fact: +[Multiple times][goals-spam], in fact. + +[goals-spam]: https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Prepare.20const.20traits.20for.20stabilization.20.28goals.23106.29 -https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Prepare.20const.20traits.20for.20stabilization.20.28goals.23106.29 +As you can see in the thread, this wasn't a new behavior either. Precisely the sort of paper cut I care about improving for everyone: -As you can see in the thread, this wasn't a new behavior either. Precisely the sort of thing I can and should look for improving: + -https://github.com/rust-lang/triagebot/issues/2108 +[Urgau][urgau] looked into it and found out this is because rustbot was sending the pings one-by-one and taking some time to finish. -Urgau https://github.com/Urgau looked into it and found out this is because rustbot was sending the pings one-by-one and taking some time to finish. +[urgau]: https://github.com/Urgau Zulip interpreted this as a timeout and retried the requests a few times. -Here's the fix he opened: https://github.com/rust-lang/triagebot/pull/2109. +[Here's the fix he opened][ping-goals-fix]. + +[ping-goals-fix]: https://github.com/rust-lang/triagebot/pull/2109 Thank you Urgau! ### Leadership Council Minutes -Having taken over the minutes for the Leadership Council meetings in June, I've now closed the loop by cleaning them up and publishing them in [the leadership-council repository][leadership-council-minutes]. +Having taken over the minutes for the Leadership Council meetings in June, I've now closed the loop by making them more readable and publishing them in [the leadership-council repository][leadership-council-minutes]. [leadership-council-minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes/sync-meeting -### Meeting Minutes Upload - -uploaded all the other project meeting notes I took (where relevant) TODO - - -## Stats - -meetings attended: - -word count for minutes - -note the dubiousness of these stats and that they're not a target metric. - -NOTE: count total minuted words. (note: includes people names but I did type those too): - - $ grep --no-filename '^\w\+: ' -r . | wc --words - -77269 - -WHOA: that's almost the length of a novel! (what am I doing with my life‽) - - -## NOTE: July stats - -* cargo - * 2025-07-29: 1531 - * 2025-07-22: 1335 - * 2025-07-15: 600 (I was absent then) - * 2025-07-08: 1919 - * 2025-07-01: 1616 -* lang triage: - * 2025-07-02: 2023 - * 2025-07-09: 2815 -* libs (api and mcp) - * 2025-07-01: 5774 - * 2025-07-08: 5783 - * 2025-07-15: 705 - * 2025-07-22: 4981 -* spec -* leadership council - * 2025-07-04: 1792 - * 2025-07-18: 2228 -* total across the board -$ grep --no-filename '^\w\+: ' -r 2025-07-* | wc --words - -42680 - - -### NOTE: June stats - - - -* cargo - * 2025-06-24: 1316 - * 2025-06-17: 1362 - * 2025-06-10: 1470 - * 2025-06-03: 925 -* lang - * 2025-06-04: 1717 - * 2025-06-11: 2251 - * 2025-06-18: 2028 - * 2025-06-25: 1597 -* libs (api and mcp) - * 2025-06-10: 5098 - * 2025-06-03: 4412 -* spec -* leadership council - * 2025-06-20: 1787 - * 2025-06-06: 2073 -* total across the board -$ grep --no-filename '^\w\+: ' -r 2025-06-* | wc --words - -34589 - -### For comparison, some May stats - -* cargo - * 2025-05-27: 786 - * 2025-05-20: 891 - * 2025-05-13: 0 (skipped for RustWeek) - * 2025-05-06: 936 - * 2025-04-29: 816 -* lang triage - * 2025-05-21: 990 - * 2025-05-07: 3145 - * 2025-04-30: 1000 - * 2025-04-23: 507 -* libs (api and mcp) - * 2025-05-27: 1341 -* spec -* leadership council - * 2025-05-23: 1263 - * 2025-05-09: 1344 - * 2025-04-25: 2023 - * 2025-04-11: 1256 - - -TODO: pick up some small wins? (publish meeting notes, reach out to folks) +## Fun Stats + +I've collected a few numbers to show some of the regular work that's happening. + +Total words of meeting minutes written: 92.6k (June + July). That's more than [the novel I'm currently reading][bjones]! + +[bjones]: https://en.wikipedia.org/wiki/Bridget_Jones%27s_Diary_(novel) + +### The current month (July 2025) + +Meetings attended: 24 + +Total words written: 51.5k + +Average (mean) word count per team meeting: +* Cargo: 1.6k +* Lang triage: 2.2k +* Libs: 4.7k +* Leadership council: 2.9k + +In contrast, this is the week when I was away: +* Cargo: 600 +* Lang triage: 604 +* Libs: 705 + +### The previous month (June 2025) + +Meetings attended: 39 + +Total words written: 41.1k + +Average word count: +* cargo: 1.3k +* Lang triage: 1.8k +* Libs: 3.9k +* Leadership council: 1.9k + +### May 2025 + +I wasn't here in May so these can serve as a comparison. + +Meetings attended: 0 + +Average word count: +* cargo: 857 +* Lang triage: 1.4k +* Libs: 1.3k +* Leadership council: 1.5k + +### Caveat emptor + +More words doesn't necessarily mean better and there are other aspects that affect this: number of people in the meeting, how much discussion a topic needs, etc. And this is not a target I or anyone else is holding me to. + +But it is kind of interesting to see. + +If you have an idea for any more useful things to track, please let me know! From 69ec8e6143ceed6b2db1e9787763a2ad4c9d2064 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Fri, 1 Aug 2025 16:31:39 +0200 Subject: [PATCH 03/11] Update content/inside-rust/program-management-update-2025-07.md Co-authored-by: Miguel Ojeda --- content/inside-rust/program-management-update-2025-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index 9f414857f..a4fb311b4 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -81,7 +81,7 @@ One of the things on my radar is to start publishing more frequent and detailed ## Rust for Linux -I took over running the Rust for Linux effort from the Rust Project side. +I took over running the Rust for Linux effort from the Rust Project side. Miguel will continue to be the point of contact on the Linux side. I helped Miguel propose two 2025 H2 goals ([compiler][rfl-compiler] and [language][rfl-lang] features for getting Rust for Linux into stable Rust) and should they be accepted I will be the point of contact for them. From bdac48fba9815d15b458a8d1a3dc055ecd66d363 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Fri, 1 Aug 2025 17:08:16 +0200 Subject: [PATCH 04/11] Provide more context to the leadership council minutes --- .../program-management-update-2025-07.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index a4fb311b4..d16500e14 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -121,7 +121,19 @@ Thank you Urgau! ### Leadership Council Minutes -Having taken over the minutes for the Leadership Council meetings in June, I've now closed the loop by making them more readable and publishing them in [the leadership-council repository][leadership-council-minutes]. +The [Leadership Council][council] is a team charged with the success of the Project as a whole. They're composed of members of the top-level Rust teams. + +The Council meets every two weeks and after each meeting they publish minutes to [the leadership-council repository][leadership-council-minutes]. + +This makes them accountable to the teams they represent and transparent to the Project and the community as a whole. It also helps show if they're missing anything important to the teams who can then bring it to the Council's attention. + +As with every other meeting, when an active participant has to take minutes, this results in diminishing their attention to the topic as well as the quality of their notes (most people can't speak or fully consider what other people said and write at the same time). + +And similarly, going through the minutes, making them legible and publishing them takes additional effort and attention. When these things pile up, they can even lead to burning out. + +Having taken over the minutes for the Leadership Council meetings in June, I've now closed the loop by taking over the clean-up and publishing as well. + +[council]: https://www.rust-lang.org/governance/teams/leadership-council [leadership-council-minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes/sync-meeting From 2bf63529fcce61ecd0864b5f82d7266884379fc4 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Fri, 1 Aug 2025 17:46:42 +0200 Subject: [PATCH 05/11] Provide more context to the Rust for Linux goal --- .../program-management-update-2025-07.md | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index d16500e14..b337ee0e6 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -81,16 +81,33 @@ One of the things on my radar is to start publishing more frequent and detailed ## Rust for Linux -I took over running the Rust for Linux effort from the Rust Project side. Miguel will continue to be the point of contact on the Linux side. +[Rust for Linux][rfl] is an ongoing effort (started in 2020) to add support for Rust to the Linux kernel. This will let you write kernel drivers in a memory safe language, with hopefully fewer bugs and nicer tooling. And empower people outside of the traditional low-level C background to write kernel code. -I helped Miguel propose two 2025 H2 goals ([compiler][rfl-compiler] and [language][rfl-lang] features for getting Rust for Linux into stable Rust) and should they be accepted I will be the point of contact for them. +[rfl]: https://rust-for-linux.com/ + +The project currently has to rely on unsafe Rust. This makes it less appealing for companies and individuals as unstable features can by definition change or even be removed. We want there to be minimal (ideally zero) churn on Rust code that's been accepted to the kernel. + +There's been an ongoing collaboration with the Rust Project to get the language, compiler and tooling to a point where it can be completely compiled on stable Rust. + +[This was one of the Flagship goals in the first half of 2025][rflh1]. + + +[rflh1]: https://rust-lang.github.io/rust-project-goals/2025h1/rfl.html + +This effort requires close collaboration with the Lang and Compiler teams and someone who can bridge the gap between the two projects. Until now, that was done by Niko Matsakis. + +One of the hopes of the PM role was to be able to step in and bring the communication between efforts like these closer and free up the Project members' time. + +I am now running the meetings, preparing the agenda, and making sure the tracking issues are up-to-date and bringing any requests or concerns to the relevant Project teams or people. + +Miguel Ojeda will continue to be the point of contact on the Linux side. + +I helped Miguel propose two 2025 H2 goals ([compiler][rfl-compiler] and [language][rfl-lang] features for getting Rust for Linux into stable Rust) and should they be accepted I will be the Point of contact for them. [rfl-compiler]: https://rust-lang.github.io/rust-project-goals/2025h2/Rust-for-Linux-compiler.html [rfl-lang]: https://rust-lang.github.io/rust-project-goals/2025h2/Rust-for-Linux-language.html -I took over running the meetings, preparing the agenda, and making sure the tracking issues are up-to-date and bringing any requests or concerns to the relevant Project teams or people. - -This let Niko disengage from the program completely. +This lets Niko disengage from the program completely and focus on the many other things he's doing across the Project. ## Misc From 56335b53a34ae4d1e04ccdd7080de541cc0597d8 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Mon, 4 Aug 2025 16:21:19 +0200 Subject: [PATCH 06/11] Update RfL motivation Co-authored-by: Miguel Ojeda --- content/inside-rust/program-management-update-2025-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index b337ee0e6..74d4d9e91 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -81,7 +81,7 @@ One of the things on my radar is to start publishing more frequent and detailed ## Rust for Linux -[Rust for Linux][rfl] is an ongoing effort (started in 2020) to add support for Rust to the Linux kernel. This will let you write kernel drivers in a memory safe language, with hopefully fewer bugs and nicer tooling. And empower people outside of the traditional low-level C background to write kernel code. +[Rust for Linux][rfl] is an ongoing effort (started in 2020) to add support for Rust to the Linux kernel. The project allows to write kernel code, such as drivers and other modules, in a memory safe language, with hopefully fewer bugs and nicer tooling. In addition, [one of its goals](https://lore.kernel.org/lkml/20210414184604.23473-1-ojeda@kernel.org/) it to allow more people get involved overall in developing the kernel thanks to the usage of a modern language. [rfl]: https://rust-for-linux.com/ From 7580dcb7faad6430eb36db0ab6505b29cf247ad8 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Mon, 4 Aug 2025 16:22:02 +0200 Subject: [PATCH 07/11] s/unsafe/unstable/ Co-authored-by: Miguel Ojeda --- content/inside-rust/program-management-update-2025-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index 74d4d9e91..286a16435 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -85,7 +85,7 @@ One of the things on my radar is to start publishing more frequent and detailed [rfl]: https://rust-for-linux.com/ -The project currently has to rely on unsafe Rust. This makes it less appealing for companies and individuals as unstable features can by definition change or even be removed. We want there to be minimal (ideally zero) churn on Rust code that's been accepted to the kernel. +The project currently has to rely on unstable Rust. This makes it less appealing for companies and individuals as unstable features can by definition change or even be removed. We want there to be minimal (ideally zero) churn on Rust code that's been accepted to the kernel. There's been an ongoing collaboration with the Rust Project to get the language, compiler and tooling to a point where it can be completely compiled on stable Rust. From 02227484e37e0cb42e5dcaf62c73c2bd42a120a0 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Mon, 4 Aug 2025 16:22:53 +0200 Subject: [PATCH 08/11] Update content/inside-rust/program-management-update-2025-07.md Co-authored-by: Miguel Ojeda --- content/inside-rust/program-management-update-2025-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index 286a16435..0d7009b94 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -94,7 +94,7 @@ There's been an ongoing collaboration with the Rust Project to get the language, [rflh1]: https://rust-lang.github.io/rust-project-goals/2025h1/rfl.html -This effort requires close collaboration with the Lang and Compiler teams and someone who can bridge the gap between the two projects. Until now, that was done by Niko Matsakis. +This effort requires close collaboration with the Lang and Compiler teams, among others, and contact points on both sides to bridge the gap between the two projects. Until now, that was done by Niko Matsakis et al. on the Rust side and Miguel Ojeda et al. on the Rust for Linux side. One of the hopes of the PM role was to be able to step in and bring the communication between efforts like these closer and free up the Project members' time. From f7df4aafd4dc668f9a01284a58f071791d0d317f Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Mon, 4 Aug 2025 16:41:47 +0200 Subject: [PATCH 09/11] Mention RfL was a flagship goal in 2024H2 too --- content/inside-rust/program-management-update-2025-07.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index 0d7009b94..5f8556d01 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -89,10 +89,12 @@ The project currently has to rely on unstable Rust. This makes it less appealing There's been an ongoing collaboration with the Rust Project to get the language, compiler and tooling to a point where it can be completely compiled on stable Rust. -[This was one of the Flagship goals in the first half of 2025][rflh1]. +Rust for Linux was a Flagship goal the [second half of 2024][rfl2024h2] as well as the [first half of 2025][rfl2025h1]. +[rfl2024h2]: https://github.com/rust-lang/rust-project-goals/blob/main/src/2024h2/rfl_stable.md -[rflh1]: https://rust-lang.github.io/rust-project-goals/2025h1/rfl.html + +[rfl2025h1]: https://rust-lang.github.io/rust-project-goals/2025h1/rfl.html This effort requires close collaboration with the Lang and Compiler teams, among others, and contact points on both sides to bridge the gap between the two projects. Until now, that was done by Niko Matsakis et al. on the Rust side and Miguel Ojeda et al. on the Rust for Linux side. From 3c514730968e26e25fda4adb922c965ec0fb0dc8 Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Mon, 4 Aug 2025 18:39:59 +0200 Subject: [PATCH 10/11] Provide more context on the crates.io verification and mirroring goal --- .../program-management-update-2025-07.md | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index 5f8556d01..58d99de52 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -53,29 +53,44 @@ For each team, I've opened a call for champions Zulip thread listing goals that As with any new process, people had questions. I was there to help clarify what we're asking for, the overall plan and next steps. When there were specific questions for a goal, I made sure to connect the right people. -## Verification and Secure Mirroring for crates.io +## Secure quorum-based cryptographic verification and mirroring for crates.io -We now have a detailed update on the crates.io code signing program and its status. +In 2021, the Rust Foundation created the [Security Initiative][sec-initiative]. Their focus is on improving the security of the Rust ecosystem by building security tools, conducting audits and threat models and developing security expertise. -Quick summary: +[sec-initiative]: https://rustfoundation.org/security-initiative/ -* We've settled on using TAP-16 Merkle Tree implementation of [TUF (The Update Framework)][tuf] for crates.io. -* We've settled on maintaining a top-level quorum but removing immediate levels for simplicity. -* We've reached a consensus with the Infrastructure team for deployment planning. -* A public MVP implementation is coming Soon™ (by the end of August). -* We will test various optimizations to settle on something that works for our tooling (Rustup, releases, crates.io, update, signing etc.). -* Role keys will live in KMS (Key Management Service). +At the beginning of the year, they opened a goal to provide [crates.io verification and mirroring][crates-io-mirroring]: + +> Rustaceans need to be able to download crates and know that they're getting the crate files that were published to crates.io without modification. Rustaceans everywhere should be able to use local mirrors of crates.io, such as geographically distributed mirrors or mirrors within infrastructure (e.g. CI) that they're using. + +[crates-io-mirroring]: https://rust-lang.github.io/rust-project-goals/2025h1/verification-and-mirroring.html + +There's a good analog to this with Linux packaging (e.g. apt or dnf): when you install a package (or upgrade your system), your computer will rarely talk directly to the main package registry. + +It's far more likely that it will reach a mirror hosted by a university, scientific institution, your ISP or in the case of CI, its provider. This lets people install their packages more quickly while saving on the upstream bandwidth and other costs. + +You can do all this today, with a crucial difference: how do you know that the host (or someone in-between) didn't tamper with the code? How do you know you're getting the exact same bits as if you were to reach crates.io directly? -Open Questions and Next Steps: +That's broadly what the goal is about and it involved investigations of the signing algorithms, key rotations, CI integration, releases, logging and much more. And all of this must meet the scale and performance requirements of crates.io. + +Walter Pearce and Josh Triplett did most of the work (investigation, experimentation, looking into what other package managers are doing) and talked to Cargo, Infra, Release, Bootstrap and crates.io representatives. + +Last week, [Walter posted a final update on the goal's tracking issue](https://github.com/rust-lang/rust-project-goals/issues/271#issuecomment-3133590786). + +The goal owners along with the team representatives agreed on the following to build an experimental MVP implementation: + +* Use TAP-16 Merkle Tree implementation of [TUF (The Update Framework)][tuf] for crates.io. +* Maintain a top-level quorum but removing immediate levels for simplicity. +* Reached a consensus with the Infrastructure team for deployment planning. +* Role keys will live in KMS (Key Management Service). -* Which specific optimizations will fit our needs. -* How to implement the Merkle tree to reduce round-trips. -* Stand up infrastructure to host this. +They plan for the MVP to be ready by the end of August and they'll use it to test various optimizations to make sure it works for our tooling (rustup, releases, crates.io, update, signing etc.). +This will answer some of the open questions (which specific optimizations will fit our needs, how to implement the Merkle tree to reduce round-trips and details on hosting infrastructure) and provide enough information to write the RFC and make this fully supported and available. -For more details, read this [goal update for more details](https://github.com/rust-lang/rust-project-goals/issues/271#issuecomment-3133590786) and/or reach out to @walterhpearce. +These discussions and decisions happened in meetings and there was little public communication to the rest of the Project. One of my goals is to start publishing more frequent and detailed updates on this and similar initiatives. -One of the things on my radar is to start publishing more frequent and detailed updates. I've joined the signing meetings to be more aware of what's happening. +I've joined the signing meetings to be more aware of what's happening within this initiative. [tuf]: https://theupdateframework.io/ From c2744f10b380312749d931ee3487edfe05ea2fe3 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Tue, 5 Aug 2025 21:44:04 +0000 Subject: [PATCH 11/11] Revise editorially Let's clean up whitespace, address and remove the TODOs, and make a general editing pass. --- .../program-management-update-2025-07.md | 70 ++++++++----------- 1 file changed, 29 insertions(+), 41 deletions(-) diff --git a/content/inside-rust/program-management-update-2025-07.md b/content/inside-rust/program-management-update-2025-07.md index 58d99de52..d2ea0e6b0 100644 --- a/content/inside-rust/program-management-update-2025-07.md +++ b/content/inside-rust/program-management-update-2025-07.md @@ -1,5 +1,5 @@ +++ -path = "inside-rust/9999/12/31/program-management-update-2025-07" +path = "inside-rust/2025/08/05/program-management-update-2025-07" title = "Program management update — July 2025" authors = ["Tomas Sedovic"] @@ -18,18 +18,14 @@ So things were slower in July. What dominated was the Project Goals work. As we entered the second half of the year, it was time to wrap up the current Project Goals and get the new ones going. In the spirit of helping people focus on other things, I took this over. -First, I've sent a couple requests for goal updates. This lead me to noticing and filing an issue with the triagebot. More details in the [`ping-goals` retry section](#ping-goals-retry-issue). +First, I've sent a couple requests for goal updates. This lead me to noticing and filing an issue with triagebot. More details in the [`ping-goals` retry section](#ping-goals-retry-issue). After people provided their final messages, I've published the final 2025H1 Project Goals update: -https://github.com/rust-lang/blog.rust-lang.org/pull/1667 - -(**TODO** change the link to the published blog if it's merged in time) + With that done, I've closed most of the tracking issues. Some goals are being renewed for the H2 period so we're keeping those open. -(**TODO**: again, make sure we've actually closed the issues before publishing this post.) - ## Starting 2025 H2 goals With all of that out of the way, Niko published the [call for 2025 H2 goal proposals][2025H2CFP]. @@ -38,24 +34,23 @@ With all of that out of the way, Niko published the [call for 2025 H2 goal propo Based on the feedback we've received, we've made some changes in this period: -* We're getting the proposals in front of the Teams and their leads earlier (well before the final RFC is written) so they are aware and have input into what's being proposed. +* We're getting the proposals in front of the teams and their leads earlier (well before the final RFC is written) so they are aware and have input into what's being proposed. * We're asking them to suggest what they'd like to see as a flagship goal before the final selection is made. -* For each proposed goal, we've requsted each team with asks mentioned in the goal to select a "champion" who commits to making sure the goal is not blocked by that team. +* For each proposed goal, we've requested each team with asks mentioned in the goal to select a "champion" who commits to making sure the goal is not blocked by that team. Once all the champions are selected, we'll meet with the team leads, go over the goals and figure out which ones we want to accept. Similarly, we'll take their input regarding flagship goals. +As the goals were being proposed, Niko, Rémy, and I looked at the PRs, fixed any CI issues, and merged them. -As the goals were being proposed, Niko, Rémy and I looked at the PRs, fixed any CI issues and merged them. +For each team, I've opened a "call for champions" Zulip thread listing the goals that requested their support. [Here's an example for the Lang team](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/2025H2.20Goal.20Review). -For each team, I've opened a call for champions Zulip thread listing goals that requested their support. [Here's an example for the Lang team](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/2025H2.20Goal.20Review). - -As with any new process, people had questions. I was there to help clarify what we're asking for, the overall plan and next steps. When there were specific questions for a goal, I made sure to connect the right people. +As with any new process, people had questions. I was there to help clarify what we're asking for, the overall plan, and next steps. When there were specific questions for a goal, I made sure to connect the right people. ## Secure quorum-based cryptographic verification and mirroring for crates.io -In 2021, the Rust Foundation created the [Security Initiative][sec-initiative]. Their focus is on improving the security of the Rust ecosystem by building security tools, conducting audits and threat models and developing security expertise. +In 2021, the Rust Foundation created the [Security Initiative][sec-initiative]. Their focus is on improving the security of the Rust ecosystem by building security tools, conducting audits, creating threat models, and developing security expertise. [sec-initiative]: https://rustfoundation.org/security-initiative/ @@ -65,30 +60,27 @@ At the beginning of the year, they opened a goal to provide [crates.io verificat [crates-io-mirroring]: https://rust-lang.github.io/rust-project-goals/2025h1/verification-and-mirroring.html -There's a good analog to this with Linux packaging (e.g. apt or dnf): when you install a package (or upgrade your system), your computer will rarely talk directly to the main package registry. - -It's far more likely that it will reach a mirror hosted by a university, scientific institution, your ISP or in the case of CI, its provider. This lets people install their packages more quickly while saving on the upstream bandwidth and other costs. +There's a good analog to this with Linux packaging (e.g. apt or dnf): when you install a package (or upgrade your system), your computer will rarely talk directly to the main package registry. It's far more likely that it will reach a mirror hosted by a university, scientific institution, your ISP, or, in the case of CI, its provider. This lets people install their packages more quickly while saving on the upstream bandwidth and other costs. -You can do all this today, with a crucial difference: how do you know that the host (or someone in-between) didn't tamper with the code? How do you know you're getting the exact same bits as if you were to reach crates.io directly? +You can do all this today with a crucial difference: how do you know that the host (or someone in-between) didn't tamper with the code? How do you know you're getting the exact same bits as if you were to reach crates.io directly? -That's broadly what the goal is about and it involved investigations of the signing algorithms, key rotations, CI integration, releases, logging and much more. And all of this must meet the scale and performance requirements of crates.io. +That's broadly what the goal is about, and it involved investigations of the signing algorithms, key rotations, CI integration, releases, logging, and much more. And all of this must meet the scale and performance requirements of crates.io. -Walter Pearce and Josh Triplett did most of the work (investigation, experimentation, looking into what other package managers are doing) and talked to Cargo, Infra, Release, Bootstrap and crates.io representatives. +Walter Pearce and Josh Triplett did most of the work (investigation, experimentation, looking into what other package managers are doing) and talked to Cargo, Infra, Release, Bootstrap, and crates.io representatives. Last week, [Walter posted a final update on the goal's tracking issue](https://github.com/rust-lang/rust-project-goals/issues/271#issuecomment-3133590786). The goal owners along with the team representatives agreed on the following to build an experimental MVP implementation: * Use TAP-16 Merkle Tree implementation of [TUF (The Update Framework)][tuf] for crates.io. -* Maintain a top-level quorum but removing immediate levels for simplicity. -* Reached a consensus with the Infrastructure team for deployment planning. -* Role keys will live in KMS (Key Management Service). +* Maintain a top-level quorum but remove intermediate levels for simplicity. +* Role keys will live in AWS KMS (Key Management Service). -They plan for the MVP to be ready by the end of August and they'll use it to test various optimizations to make sure it works for our tooling (rustup, releases, crates.io, update, signing etc.). +They also reached a consensus with the Infrastructure team for deployment planning. The plan is for the MVP to be ready by the end of August, and they'll use it to test various optimizations to make sure it works for our tooling (rustup, releases, crates.io, etc.). -This will answer some of the open questions (which specific optimizations will fit our needs, how to implement the Merkle tree to reduce round-trips and details on hosting infrastructure) and provide enough information to write the RFC and make this fully supported and available. +This will answer some of the open questions (which specific optimizations will fit our needs, how to implement the Merkle tree to reduce round trips, and details on hosting infrastructure) and provide enough information to write the RFC and make this fully supported and available. -These discussions and decisions happened in meetings and there was little public communication to the rest of the Project. One of my goals is to start publishing more frequent and detailed updates on this and similar initiatives. +These discussions and decisions happened in meetings, and there was little public communication to the rest of the Project. One of my goals is to start publishing more frequent and detailed updates on this and similar initiatives. I've joined the signing meetings to be more aware of what's happening within this initiative. @@ -96,26 +88,25 @@ I've joined the signing meetings to be more aware of what's happening within thi ## Rust for Linux -[Rust for Linux][rfl] is an ongoing effort (started in 2020) to add support for Rust to the Linux kernel. The project allows to write kernel code, such as drivers and other modules, in a memory safe language, with hopefully fewer bugs and nicer tooling. In addition, [one of its goals](https://lore.kernel.org/lkml/20210414184604.23473-1-ojeda@kernel.org/) it to allow more people get involved overall in developing the kernel thanks to the usage of a modern language. +[Rust for Linux][rfl] is an ongoing effort (started in 2020) to add support for Rust to the Linux kernel. The project allows people to write kernel code, such as drivers and other modules, in a memory safe language, with hopefully fewer bugs and nicer tooling. In addition, [one of its goals](https://lore.kernel.org/lkml/20210414184604.23473-1-ojeda@kernel.org/) is to allow more people get involved overall in developing the kernel thanks to the use of a modern language. [rfl]: https://rust-for-linux.com/ The project currently has to rely on unstable Rust. This makes it less appealing for companies and individuals as unstable features can by definition change or even be removed. We want there to be minimal (ideally zero) churn on Rust code that's been accepted to the kernel. -There's been an ongoing collaboration with the Rust Project to get the language, compiler and tooling to a point where it can be completely compiled on stable Rust. +There's been an ongoing collaboration with the Rust Project to get the language, compiler, and tooling to a point where it can be completely compiled on stable Rust. -Rust for Linux was a Flagship goal the [second half of 2024][rfl2024h2] as well as the [first half of 2025][rfl2025h1]. +Rust for Linux was a flagship goal the [second half of 2024][rfl2024h2] as well as the [first half of 2025][rfl2025h1]. [rfl2024h2]: https://github.com/rust-lang/rust-project-goals/blob/main/src/2024h2/rfl_stable.md - [rfl2025h1]: https://rust-lang.github.io/rust-project-goals/2025h1/rfl.html -This effort requires close collaboration with the Lang and Compiler teams, among others, and contact points on both sides to bridge the gap between the two projects. Until now, that was done by Niko Matsakis et al. on the Rust side and Miguel Ojeda et al. on the Rust for Linux side. +This effort requires close collaboration with the Lang and Compiler teams, among others, and contact points on both sides to bridge the gap between the two projects. Until now, that was done by Niko Matsakis, TC, et al. on the Rust side and Miguel Ojeda et al. on the Rust for Linux side. -One of the hopes of the PM role was to be able to step in and bring the communication between efforts like these closer and free up the Project members' time. +One of the hopes of the PM role was to be able to step in and improve the communication between efforts like these and free up the Project members' time. -I am now running the meetings, preparing the agenda, and making sure the tracking issues are up-to-date and bringing any requests or concerns to the relevant Project teams or people. +I am now running the meetings, preparing the agenda, making sure the tracking issues are up-to-date, and bringing any requests or concerns to the relevant Project teams or people. Miguel Ojeda will continue to be the point of contact on the Linux side. @@ -126,14 +117,11 @@ I helped Miguel propose two 2025 H2 goals ([compiler][rfl-compiler] and [languag This lets Niko disengage from the program completely and focus on the many other things he's doing across the Project. - ## Misc ### `ping-goals` retry issue -The request for updates is done by the `ping-goals` command of the @triagebot. This returned an error ("Failed to await at this time: connection closed before message completed"), but did actually ping everyone. - -[Multiple times][goals-spam], in fact. +The request for updates is done by the `ping-goals` command of `@triagebot`. This returned an error ("Failed to await at this time: connection closed before message completed"), but did actually ping everyone. [Multiple times][goals-spam], in fact. [goals-spam]: https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Prepare.20const.20traits.20for.20stabilization.20.28goals.23106.29 @@ -147,7 +135,7 @@ As you can see in the thread, this wasn't a new behavior either. Precisely the s Zulip interpreted this as a timeout and retried the requests a few times. -[Here's the fix he opened][ping-goals-fix]. +[Here's the fix he opened][ping-goals-fix]. [ping-goals-fix]: https://github.com/rust-lang/triagebot/pull/2109 @@ -159,11 +147,11 @@ The [Leadership Council][council] is a team charged with the success of the Proj The Council meets every two weeks and after each meeting they publish minutes to [the leadership-council repository][leadership-council-minutes]. -This makes them accountable to the teams they represent and transparent to the Project and the community as a whole. It also helps show if they're missing anything important to the teams who can then bring it to the Council's attention. +This makes them accountable to the teams they represent and transparent to the Project and the community as a whole. It also helps others find if they're missing something important so it can be brought to their attention. -As with every other meeting, when an active participant has to take minutes, this results in diminishing their attention to the topic as well as the quality of their notes (most people can't speak or fully consider what other people said and write at the same time). +As with every other meeting, when an active participant has to take minutes, this results in diminishing that person's attention to the topic as well as the quality of the notes (most people can't speak or fully consider what other people said and write at the same time). -And similarly, going through the minutes, making them legible and publishing them takes additional effort and attention. When these things pile up, they can even lead to burning out. +And similarly, going through the minutes, making them legible and publishing them takes additional effort and attention. When these things pile up, they can even lead to burning out valuable contributors. Having taken over the minutes for the Leadership Council meetings in June, I've now closed the loop by taking over the clean-up and publishing as well.