|
| 1 | +# **Coding Guidelines Subcommittee Meeting on 2025-12-10 @ 1700 CEST / 1100 EDT** |
| 2 | + |
| 3 | +[Link](https://www.worldtimebuddy.com/?qm=1&lid=5,100,2643743,12,1850147,2193733,8,6,2673730,1261481&h=5&date=2025-12-10&sln=11-12&hf=1) to meeting time in common time zones. |
| 4 | + |
| 5 | +| Search Key | Description | |
| 6 | +| ----- | ----- | |
| 7 | +| \[todo\] | Action Item | |
| 8 | +| \[decision\] | Something decided on | |
| 9 | +| \[important\] | Key information | |
| 10 | + |
| 11 | +## **Agenda** |
| 12 | + |
| 13 | +1. Solicitation of notetaker |
| 14 | +2. Acceptance of [Previous Meeting Minutes](https://github.com/darkwisebear/safety-critical-rust-consortium/blob/f63c6e4e3faf967e7a56157d6947300aa034b04f/subcommittee/coding-guidelines/meetings/2025-11-19/minutes.md) |
| 15 | +3. Introduction of new members |
| 16 | +4. Review progress on guidelines incorporated from CERT |
| 17 | + * [High-level mapping of CERT rule groups to Rust](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/152) |
| 18 | + * Integers \- Félix Fischer |
| 19 | + * Arrays \- Alex Celeste |
| 20 | + * Floating Point \- Andrew Fernandes |
| 21 | +5. Merging of [Add GOALS.md, revise contribution process, freshen up to use arewesafetycriticalyet.org](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/149) has happened |
| 22 | + * Any comments & updates here? Any new issues created? |
| 23 | + * [Issue 237](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/237): We need to document how to add labels. Would we want to define them? |
| 24 | +6. Improvements to the markdown have been merged: |
| 25 | + * [Issue \-\> PR conversion of hyperlinks](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/226) |
| 26 | + * [Issue \-\> PR conversion of code blocks](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/227) |
| 27 | + * [Issue \-\> PR conversion of tables](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/228) |
| 28 | + * Example: [Bot Comment: RST Preview for Coding Guideline](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/246#issuecomment-3618884352) |
| 29 | +7. Call for opinions: What’s the role definition of a producer? |
| 30 | +8. Proposals and ideas for new rules |
| 31 | +9. Progress on ongoing tasks |
| 32 | + * [Defensive Programming Rules](https://corrode.dev/blog/defensive-programming/) |
| 33 | + * (Félix) The [fallible\_impl\_from](https://rust-lang.github.io/rust-clippy/master/index.html#fallible_impl_from) lint is in the nursery group, which means it’s not even close to production ready. So I don’t like that they recommended it. |
| 34 | + The other lints are fine (at least technically) |
| 35 | + * [PR 220 (merged)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/220): alignment done between David and Felix? |
| 36 | + * [Issue 97 (\[Guideline\] Avoid Complex or Recursive Macro Constructs)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/97): |
| 37 | + No update. Should we just let it linger? |
| 38 | + * (Felix) I’ve been researching this: |
| 39 | + [\#wg-macros \> What would you say makes a Decl. Macro hard to maintain?](https://rust-lang.zulipchat.com/#narrow/channel/404510-wg-macros/topic/What.20would.20you.20say.20makes.20a.20Decl.2E.20Macro.20hard.20to.20maintain.3F/with/562037901) |
| 40 | + * Also [I've formalized a proof that macro expansion is Turing Complete](https://lukaswirth.dev/tlborm/decl-macros/minutiae/turing-completeness.html) |
| 41 | + This constrains our static analysis capabilities re: declarative macros |
| 42 | + * [Issue 133 (\[Guideline\] Prevent OS command injection)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/133): |
| 43 | + Imo mergeable, can we proceed? |
| 44 | + * [Issue 259 (\[Guideline\] Do not perform ordering comparisons on pointers from different allocations)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/259): Needs a reviewer |
| 45 | + * [Issue 257 (UCG \- Rust's Unsafe Code Guidelines)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/257): How do we organize the work? |
| 46 | +10. Round table |
| 47 | + |
| 48 | +## **Check-in area** |
| 49 | + |
| 50 | +Please add your name, and an emoji that describes your day. |
| 51 | + |
| 52 | +* Pete LeVasseur 🖍️ |
| 53 | +* Markus Hosch |
| 54 | +* Robert C. Seacord 😣 |
| 55 | +* Christof Petig 🎄 |
| 56 | +* Fernando Jose 🙂 |
| 57 | +* Félix Fischer 😪☕ |
| 58 | +* Lachlan Dowling |
| 59 | +* Oreste Bernardi 🫥 |
| 60 | +* Kaneko Satoshi |
| 61 | + |
| 62 | +Notetaker: |
| 63 | + |
| 64 | +* Pete LeVasseur |
| 65 | + |
| 66 | +For tips on how we take notes in the Safety-Critical Rust Consortium, please see the [Meeting Notetaker Role](https://github.com/rustfoundation/safety-critical-rust-consortium/blob/main/docs/notetaker-role.md) doc. |
| 67 | + |
| 68 | +## **Housekeeping section** |
| 69 | + |
| 70 | +* Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines) |
| 71 | +* Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines) |
| 72 | +* [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3) |
| 73 | + * [contributor experience](https://github.com/orgs/rustfoundation/projects/1/views/4) view |
| 74 | + * [coding guideline](https://github.com/orgs/rustfoundation/projects/1/views/5) view |
| 75 | +* [Un-promoted Guideline Issues grooming list](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues?q=is%3Aissue%20state%3Aopen%20-label%3A%22sign-off%3A%20create%20pr%20from%20issue%22%20label%3A%22coding%20guideline%22) |
| 76 | + |
| 77 | +## **Tasks** |
| 78 | + |
| 79 | +* See **\[todo\]** tags below in Meeting Minutes |
| 80 | + |
| 81 | +## **Meeting Minutes** |
| 82 | + |
| 83 | +* 2\. Acceptance of [Previous Meeting Minutes](https://github.com/darkwisebear/safety-critical-rust-consortium/blob/f63c6e4e3faf967e7a56157d6947300aa034b04f/subcommittee/coding-guidelines/meetings/2025-11-19/minutes.md) |
| 84 | + * Accepted, merged |
| 85 | +* 4\. Review progress on guidelines incorporated from CERT |
| 86 | + * Integers \- Félix Fischer |
| 87 | + * Progress on-going, some guidelines have been merged |
| 88 | + * More inflow from folks seen on Rust Zulip, helps give additional insights and credibility |
| 89 | + * Make the check-in still a regular cadence, but monthly rather than each meeting |
| 90 | +* 5\. Merging of [rustfoundation/safety-critical-rust-coding-guidelines\#149](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/149) has happened |
| 91 | + * Any comments & updates here? Any new issues created? |
| 92 | + * [Issue 237](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/237): We need to document how to add labels. Would we want to define them? |
| 93 | + * Good to have in documentation on how to do it |
| 94 | + * \[todo\] Pete to tackle this issue |
| 95 | + * \[todo\] Markus to create issue ([https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/267](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/267)) for generating from `src/conf.py` into some part of the rendered document and/or the documentation in Markdown in the repo in an automated fashion |
| 96 | + * \[todo\] Robert to document the ISO document he’s using for tags |
| 97 | +* 6\. Improvements to the markdown have been merged |
| 98 | + * Feel free to open issues if you have thoughts on how to improve contributing |
| 99 | +* 7\. Call for opinions: What’s the role definition of a producer? |
| 100 | + * As we get more coding guidelines contributions, it’ll be important to provide more consistent feedback |
| 101 | + * Pete shared [proposal](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/.5BChange.20Proposal.5D.20Coding.20Guidelines.20Producers.20to.20Review/with/562990966) |
| 102 | + * Feedback welcome on that Zulip topic |
| 103 | + * Tip shared on using bot like in Clippy repo. [Example](https://github.com/rust-lang/rust-clippy/pull/16211#issuecomment-3637592322) |
| 104 | + * \[todo\] Pete to open issue on how to automate in similar manner if we’d like to proceed if it fits |
| 105 | +* 8\. Proposals and ideas for new rules |
| 106 | + * Robert posted up a few sets of ideas |
| 107 | + * [https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/233](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/233) |
| 108 | + * [https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/254](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/254) |
| 109 | + * Suggestion to start to open coding guidelines issues for the ones that have rationale at a minimum |
| 110 | + * MISRA / CERT coverage? |
| 111 | + * Worthwhile to go through for ideas |
| 112 | + * No need to limit, can still create issues |
| 113 | + * Being transparent on what’s being worked on in issues and pull requests is worthwhile here to ensure double work isn’t done |
| 114 | + * Kanban-style board would be worthwhile |
| 115 | + * Exists here, open to improve how it works: [https://github.com/orgs/rustfoundation/projects/1/views/5](https://github.com/orgs/rustfoundation/projects/1/views/5) |
| 116 | + * Usage of AI for guidelines discussion |
| 117 | + * Initial quality seems quite low from what was seen on a couple of them |
| 118 | + * Concern over reviewers wasting time |
| 119 | + * Thought: Do a poll regarding what sorts of practices cause issues in safety-critical to derive some common items in Rust that could be targeted. |
| 120 | + * Concern over burning credibility with Rust Project folks |
| 121 | + * Two ways to get feedback on the internet: |
| 122 | + * Please help: nobody helps |
| 123 | + * Write something stupid: people want to jump in and help |
| 124 | + * Ideally our internal group reviews it first, then having outside folks, e.g. Rust Project have review |
| 125 | + * Goes back to same challenge: getting people in the group more actively reviewing PRs |
| 126 | + * Posting somewhat incomplete, perhaps vague things happens and this is still worthwhile for soliciting feedback |
| 127 | + * Until close to “release” it’s possible that up till now folks had not been reviewing in great detail. Once we’re close to release, we’ll probably get a lot of feedback in a burst. |
| 128 | + * Suggestion for improvement: it’s possible to start PRs as draft to iterate among coding guidelines group, then upgrade from draft |
| 129 | + * Issues already kind of like this? |
| 130 | + * Found issues to be wrong place to iterate on coding guidelines, cannot pick a particular line to comment on |
| 131 | + * Would suggest contributor to create PR right away to make review easier |
| 132 | + * Issue more as a quick check for whether it makes sense |
| 133 | +* 9\. Progress on ongoing tasks |
| 134 | + * [Defensive Programming Rules](https://corrode.dev/blog/defensive-programming/) |
| 135 | + * \[todo\] Oreste to open general issue to capture this so we keep track of it |
| 136 | + * Some of the suggestions in the linked article above might not be a good fit, since it might entail turning on a Clippy rule which is not mature enough yet (i.e. in nursery) |
| 137 | + * [Issue 97 (\[Guideline\] Avoid Complex or Recursive Macro Constructs)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/97) |
| 138 | + * Félix added some of the links he’s aware of for context to the linked issue |
| 139 | + * [Issue 133 (\[Guideline\] Prevent OS command injection)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/133) |
| 140 | + * \[todo\] David Svboda \- Let’s proceed to having a PR opened |
| 141 | + * [Issue 259 (\[Guideline\] Do not perform ordering comparisons on pointers from different allocations)](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/259) |
| 142 | + * Should we be doing `unsafe` keyword guidelines right now? |
| 143 | + * Yes, it’s a part of the language and important to highlight these and do the work |
| 144 | + * Rust’s memory model is not clearly enough specified in some cases, so we should be careful in what we right down |
| 145 | + * It’s good to post when there’s an “uncharted area” to make sure it’s clear |
| 146 | + * Some areas where consensus has been reached are more in the clear for guidelines |
| 147 | + * \[todo\] Félix to add a tracking issue on what’s been settled when it comes to Rust’s memory model to help guide us |
| 148 | + |
| 149 | +## **Material** |
| 150 | + |
| 151 | +Any material to read before the meeting should be included here. |
| 152 | + |
| 153 | +* Milestone: [Prepare for launch to wider Rust community](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1) |
| 154 | +* FLS Maintenance: [FLS Team \- North Star](https://hackmd.io/@plevasseur/HJb6qomOge/edit) |
| 155 | +* [Github Issue to discuss about panicking in Safety Critical](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/158) |
0 commit comments