# 2026-01-20 Clippy Meeting ## Tentative Rust Project Goal 2026 - Clippy extensibility https://hackmd.io/@plevasseur/r199Y_lS-l - A lot of new lints, might be too many for the Clippy team to review/maintain - Want to have project-specific lints - DSL for lints? - master's thesis, never went into prod - https://doc.rust-lang.org/clippy/development/proposals/syntax-tree-patterns.html - clippy_utils can't provide stability because it exposes rustc APIs - rustc_public might be usable soon? - linting MIR - MIR is currently hard to use from a rustc_driver, rustc_public is about the same - MIR looks very different than the AST - librarification has been floating around for 5-8 years, not much progress - don't just want a fork, splits maintenance time - clippy itself unlikely to be certified, but Ferrocene could have minimal differences from upstream ### possible implementation - separate clippy crate for safety lints? - "safety-critical nursery" - lets us get started now without blocking off future improvements - clippy is already planning to split up its crates - could have separate reviewers for those lints - triagebot already supports this ## Other Project Goals for Clippy? ### performance - hook up rustc-perf? - seems to be mostly done - https://doc.rust-lang.org/stable/clippy/development/infrastructure/benchmarking.html - https://github.com/rust-lang/rustc-perf/pulls?q=is%3Apr+clippy+is%3Aclosed ## Gemini Notes (raw, not cleaned up) ### Summary Pete LeVasseur initiated a discussion about a tentative 2026 Rust project goal concerning Clippy extensibility, specifically motivated by the need for the safety critical Rust consortium to write 50-200 lints, a volume that Philipp Krones agreed would overwhelm the Clippy team's capacity. The team discussed challenges with linter implementation due to reliance on unstable Rust C types and the limited progress of "libraryification," with jyn, Alex Macleod, and Jason mentioning Rustc Public (formerly stable mirror) as a promising direction for cross-version and cross-crate linting. Philipp Krones proposed creating a separate, less scrutinized space within the Clippy repository, such as a new crate or lint group, for the safety critical lints, an idea strongly supported by Pete LeVasseur, and Alex Macleod noted that Jason has already completed technical work for splitting Clippy lints into multiple crates. Philipp Krones suggested adding Pete LeVasseur and jyn as reviewers for this new crate to manage the review burden, and jyn suggested hooking up Rustc Perf to Clippy as another potential project goal, which Philipp Krones agreed to follow up on with Alejandra. ### Details - Clippy Extensibility and Safety Critical Lints Pete LeVasseur initiated the discussion about a tentative Rust project goal for 2026 regarding Clippy extensibility, specifically motivated by the safety critical Rust consortium needing to write a large number of lints, potentially 50 to 200, which they believe would be too much for the Clippy team to review and maintain in a reasonable timeframe. Philipp Krones agreed that the volume of new lints could be overwhelming for the Clippy team's review and maintenance capacity, supporting the value of having a second linter or alternative structure (00:02:36). jyn also highlighted the demand for project-specific lints beyond the Rustc C mono repo, which they suspect both Philipp Krones and Pete LeVasseur are interested in (00:03:38). - Challenges with Stable APIs and Linter Implementation The team discussed the difficulty in providing stability guarantees for Clippy utils because it relies on unstable Rust C types; any changes to those types would break the Clippy API. jyn noted that stable mirror is a promising direction for working across versions and extensibility, which is important to avoid being tied to a specific compiler version (00:09:24) (00:14:25). Alex Macleod and Jason mentioned that the stable mirror project is now called Rustc Public, and Jason clarified that while using mirror is a big jump for newcomers, it is often easier for data flow analysis, and is the only mechanism available for cross-crate linting (00:10:39). - Libraryification and Compiler Versioning Pete LeVasseur inquired about the Rust C library verification project as a means of stabilization for lint writing, but jyn and Jason clarified that "libraryification" has been an ongoing effort for years with little progress and does not inherently mean stabilization (00:11:35). They also noted that using Rust C drivers ties lint writers strongly to a specific compiler version, requiring adaptation to new APIs with every Rust C update and even recompilation if the compiler updates, even without API changes. Pete LeVasseur's main concern was the effort of maintaining lints across compiler versions (00:08:17) (00:14:25). - Proposed Project Goal: A Home for Safety Critical Lints within Clippy Pete LeVasseur proposed a 2026 project goal to enable the consortium to house their lints within Clippy, hoping to eventually migrate them upstream, and sought an infrastructural solution to make maintenance easier (00:15:50). Philipp Krones expressed concern over the idea of a fork due to potential confusion and maintenance burden, and instead proposed making space for the safety critical group within the Clippy repository, such as a new lint group or crate, with a feature flag, clarifying that these lints would not have the same scrutiny and may be considered especially unstable. Pete LeVasseur strongly supported this idea, stating that the consortium wants to avoid a fork and prefers to use the community tool (00:17:05) (00:19:12). - Implementation and Support for the Safety Critical Crate Alex Macleod supported the idea of creating a safety critical crate, noting that Jason has already completed most of the technical work for splitting Clippy lints into multiple crates (00:21:36). To manage the review burden, Philipp Krones suggested adding members of the safety critical group, such as Pete LeVasseur and jyn, as reviewers for their designated crate or area within Clippy using the triage bot (00:22:24). Pete LeVasseur and jyn confirmed their ability to dedicate paid time to this work and offered their support, with jyn offering guidance on how the project works. Philipp Krones also suggested that Ferozene or Toyota might be interested in hiring someone from the Clippy team to work full-time (00:23:27) (00:26:55). - Project Goal Formulation and Initial Support Pete LeVasseur suggested revising the 2026 project goal to focus on establishing a dedicated space for safety critical lints within Clippy, with initial guidance and support from the Clippy team (00:25:29). Philipp Krones agreed with this direction, offering to dedicate initial resources for reviewing PRs, similar to the process for new maintainers, and jyn also offered to provide mentorship (00:26:55). Philipp Krones confirmed that they would raise the proposal for a separate safety critical crate on Zulip to gather more input (00:25:29). - Future Project Goal Ideas Philipp Krones inquired about other potential project goal ideas for the year, looking for something specific, and jyn suggested hooking up Rustc Perf to Clippy (00:27:52). Jason and Alex Macleod recalled that Alejandra may have already been working on this. Philipp Krones agreed to follow up with Alejandra about formulating this as a project goal, noting that Clippy benchmarks are already running for Rustc Perf (00:28:57). ### Suggested next steps - [x] Philipp Krones will look up the link to the RFC or the abandoned project mentioned in the Clippy documentation. - [ ] Pete LeVasseur will revise the project goal for 2026 to focus on creating a separate space within Clippy for safety critical lints, rather than focusing on the extensibility aspect. - [ ] Philipp Krones will raise the suggestion of creating a separate crate for the safety critical lints on Zulip to gather more input. - [ ] Philipp Krones will ask Alejand about her interest in formulating a project goal related to performance. - [ ] jyn and Pete LeVasseur will chat offline about the possibility of full-time employment for Clippy team members with Ferrisene or Toyota, considering the location requirements.