|
| 1 | ++++ |
| 2 | +path = "inside-rust/9999/12/31/clippys-feature-warming-up" |
| 3 | +title = "What we learned with Clippy's feature freeze" |
| 4 | +authors = ["blyxyas"] |
| 5 | + |
| 6 | +[extra] |
| 7 | +team = "the Clippy team" |
| 8 | +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#team-clippy" |
| 9 | ++++ |
| 10 | + |
| 11 | + |
| 12 | +The [feature freeze affecting Clippy][feature-freeze] has reached its end date. This means that the Clippy project has been accepting pull |
| 13 | +requests that add new features (and new lints) for a while. |
| 14 | + |
| 15 | +The Clippy has reviewed the results, and we can say that it's been a success 🎉. It has been so great that we managed |
| 16 | +to create an all-time peak in the number of pull requests opened in a week. |
| 17 | + |
| 18 | +In this plot we can observe that peak (the red lines mark the start and end of the feature freeze) |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | +After some data crunching of those pull requests opened after June 26th, we had 18 pull requests open in that period |
| 23 | +that added lints. With 326 pull requests open by both and old contributors, we want to highlight all the new people |
| 24 | +that started contributing to Clippy, 47 new contributors who opened a total of 195 pull requests. |
| 25 | + |
| 26 | +On a team meeting, we concluded that the results of the feature freeze were positive enough to warrant a future one. |
| 27 | +The cadence and duration of these is still being decided. |
| 28 | + |
| 29 | +58% of all pull requests by new contributors were opened by the same person. This single contributor opened 114 pull requests of the |
| 30 | +total 195. We held a meeting with her ([ada4a] on Github) to iron out some of the details of |
| 31 | +the codebase and our procedures for new contributors. We are currently analyzing that meeting in order to improve |
| 32 | +the experience for future and current contributors. |
| 33 | + |
| 34 | +We also asked some questions to Ada (ada4a) to include as a mini Q&A, here are some of the answers. |
| 35 | + |
| 36 | +## Ada's Q&A |
| 37 | + |
| 38 | +> Why do you like contributing to Clippy? What's so fun about it? |
| 39 | +
|
| 40 | +I came to enjoy improving the suggestions that Clippy makes: they are |
| 41 | +fascinating in how they point out of the exact part of code that is |
| 42 | +problematic, and show the (sometimes pretty complex) manipulations required to |
| 43 | +fix it. Also, It has been empowering to learn the machinery behind the |
| 44 | +compiler, and use that knowledge to refine these diagnostics even further. |
| 45 | + |
| 46 | +> Would you recommend contributing to Clippy? Why or why not? |
| 47 | +
|
| 48 | +Yes, for multiple reasons: |
| 49 | +- Rust is (in)famously hard to learn, and to me, Clippy is one of the parts of the |
| 50 | +toolchain most helpful for beginners, as it teaches idiomatic style and helps |
| 51 | +discover helpful functions from std -- thus, contributing to it helps reduce the |
| 52 | +entry barrier of the language. |
| 53 | +- If you, like me, wanted to learn the inner workings of the compiler and contribute |
| 54 | +to it some day, but were intimidated by the [development setup required for that][rustc-dev-guide], |
| 55 | +Clippy could be a nice stepping stone, as hacking on it doesn't require compiling |
| 56 | +rustc, but it interacts with a lot of compiler's data structures and APIs. |
| 57 | + |
| 58 | +[rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html |
| 59 | +[ada4a]: https://github.com/ada4a |
| 60 | +[feature-freeze]: https://blog.rust-lang.org/inside-rust/2025/06/21/announcing-the-clippy-feature-freeze/ |
0 commit comments