-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roadmap for 2021 #6462
Roadmap for 2021 #6462
Conversation
r? @llogiq (rust-highfive has picked a reviewer for you, use r? to override) |
Thanks so much for Clippy! It's super-invaluable. The roadmap looks great. To be honest, the increasing Clippy false-positive rate is a bit annoying. I would like to see a policy that has all new lints introduced into Clippy as A few examples from my repos:
For a wonderful, comprehensive tool like this I doubt there will ever be defaults that will make everyone happy. I personally would prefer a conservative approach though: it is customary for me to tell my students that I won't look at their code until they've fixed the Clippy warnings, so I want that to always seem like a worthwhile activity. Looking forward to Clippy in 2021! |
In general, I think this is a great roadmap for the coming year. For me personally, by far the most important feature is the "no output after |
I actually think the first two examples here are not false positives, they're the lint working as intended. The last one ... iffier. I'll point out that Clippy is meant to be used with a decent amount of lint toggling, since preferences vary wildly. I'd encourage you to file issues on things you feel are false positives; but it does seem like your preferences are more conservative than most, and given that it might be useful to turn off some lints or groups. One thing we might end up doing is improving the lint categorization to make this easier. |
I assumed that new lints needed to be stabilised before they were run in stable. As for false positives / controversial lints maybe we should think of them as optimisation levels and o1 would have the rock solid no false positives ones and that o3 might contain more aspirational lints? To do that scientifically we need stats on which are specifically denied - It would be great if we could gather that data like Estaban’s suggestion of capturing stats on compiler errors. |
@BartMassey That probably won't happen. What we have in mind is to release them only in nightly and to make sure that they have to pass $some_test before they're released to stable. No specific plan yet though, but we'll work on improving this.
@gilescope Until recently (sometime this year) there was no need for that and our process (just putting them out there) worked great. Something changed and now we'll need such a process. We'll work on improving this situation.
@kykosic This might actually be one of the first things we'll get fixed. @ebroto did great work towards this recently.
Metrics like this are definitely a want have. Thanks for your opinions on this. This will definitely help prioritizing things! |
Some feedback from reddit that has not been mentioned yet:
(link) |
A refactor of Clippy is definitely something interesting to look at. As a first step merging lint passes and building more modules like the On reddit was another complaint about a FP slipping into stable, with the result that they stopped using Clippy. We should make implementing a test system a priority. Idea to improve the FP rate situationA bit of Off-topic, since the roadmap is about the "What", not the "How" One idea on reddit was, to compile a list of crates that pass Clippy. We can ask people to submit their crate if they require it to pass Clippy on their CI, and then we can use it in some mini-crater to check new lints. So we would make a deal with crate authors: If you adhere to (stable) Clippy, we make sure, that Clippy doesn't break something on your end with a FP. |
FWIW, I basically never use clippy in CI because I use rust-analyzer and so local clippy only gives me results if I As for the FP rate, maybe an idea would be to put newly stable lints in pedantic first for the one or two release cycles? People who enable pedantic are supposedly a little more invested in clippy and less likely to be bothered by false positives. |
Isn't that a reason to use it in CI, so you don't accidentally miss the Clippy errors? 🤔
I don't want to do this, because this would be abusing the pedantic group and will involve quite a bit of work to determine when they should get out. I think the better idea would be to release lints nightly-only so people who want FP "free" lints can use stable Clippy, and people who want to help test Clippy can use nightly. Or even better: just additionally run nightly Clippy in CI and report if lints report FPs. |
Rust analyzer allows you to set a custom command instead of |
Yeah, it's possible to use clippy with rust-analyzer in the way @matthiaskrgr described. @djc It's possible to just do |
@jhpratt, @djc I have gotten into the habit of inserting and then deleting a space in my editor before running (Sadly, I will probably be doing this for the rest of my life, since by the time this issue is fixed my finger macro will be cemented forever. I still type |
We already have the nursery group for this. We have the nightly cycle for unforseen issues crop up, and we downgrade lints to nursery if there are major ones. |
From my perspective, this looks great! Anyone have any concerns or should I r+ this? |
I want to add a prioritization chapter to it. I quickly go through my remaining 100+ GitHub notifications (by marking all as "done" where I'm not mentioned and not participating 😄) and then get right to it. |
Can/should we merge this? |
Discussed in the Clippy meeting today and we're ready to get started 🎉 @bors r=flip1995,llogiq,killercup,Manishearth,oli-obk,matthiaskrgr,phansch,mikerite,mcarton,yaahc,ebroto |
📌 Commit d141cdc has been approved by |
☀️ Test successful - checks-action_dev_test, checks-action_remark_test, checks-action_test |
Rendered link 404 |
Rendered
This is the first time Clippy gets its own roadmap. The reason for this roadmap is, that with the Rust language growing, also Clippy is growing. With this keeping track of and implementing bigger projects gets quite hard. This roadmap should help in exactly this regard.
After having the approval of this roadmap by the Clippy team, we want to know from the community:
We're looking forward to getting your feedback!
changelog: Add roadmap for Clippy 2021
r? @rust-lang/clippy