-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Deprecate plugin-clippy #2712
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
Deprecate plugin-clippy #2712
Conversation
cc @Manishearth @llogiq @mcarton @phansch opinions? |
Just FYI I use pinned (clippy, rustc) versions on CI to get a consistent Any way you could easily auto-publish crates.io releases or git tags that map to nightlies so I can easily determine which rev to install? E.g., push a You should also adjust |
I think we should continue publishing numbered versions (for use cases like killercup's, but also just since git installs are weird) but stop providing the plugin interface. But I don't have a strong opinion. |
It would be easier to auto-tag the every merge with the rustc version that it works with than to auto-publish versions to crates.io |
As long as it's easy for me to get the right clippy version for a given Rust version, and that works with travis caching, I don't think it matters much. That said, I think auto publishing to crates.io makes much more sense than publishing differently than the rest of the ecosystem. |
I totally agree that we have to find ways to fix clippy faster and to have less failures overall. But I don't think that not publishing on crates.io would make things better. Users would have to come here to figure out the last working commit and We can advertise using the master branch as an emergency workaround maybe? |
I'm happy to type |
Perhaps we could have clippy-beta and clippy-stable releases on crates.io at some point? :) |
Ok. This PR is now just about deprecating the #![plugin(clippy)] api. Users will get an unsilenceable warning after this PR telling them to move to rls+clippy or cargo clippy. In a month or so we can nuke the API entirely if noone complains too loudly ;) |
Is this the right place to complain loudly? 😄 |
sure. But I haven't seen a complaint yet ;) |
@sgrif did you have a complaint? I really really want to get rid of the plugin API. And even though for a week there's been an unconditional warning that should be fairly annoying, everything has been very quiet around that. |
I've been on vacation, sorry. Haven't updated our minimum clippy version in a while either since there's a bug in recent nightlies that breaks Diesel. I don't like getting rid of the plugin API personally. We have it set so that when Diesel's test suite is run locally, it's linted as well. |
rustc will get rid of it at some point. At that point there's no recovery solution. Right now you can run clippy both as a plugin and as a Let's continue the discussion for diesel in diesel-rs/diesel#1709 |
Can you explain how to get clippy to work the way it did as a plugin? Right now, this is a regression for me, unless I accept the plugins-are-deprecated warning spew. I use Clippy in the first place because I take warnings seriously. In the plug-in world, I run After Am I missing something? -- Another vote for continuing crates.io. One of the strengths of the Rust/Cargo ecosystem is its consistency. The idea of handling some crates differently from others feels like a step back, to me. Instead, is it possible to invest in automation for publishing to crates.io so that publishing is not painful? |
We will continue publishing normally via crates.io as long as you cannot obtain clippy via rustup.
|
@oli-obk perhaps the problem is I'm not using Given
which is the expected behavior--code is built strictly, with clippy lints enforced, and tests are run.
which now makes some sense since you mention that How do I build strictly and test in one step now? Hopefully I'm missing something simple here, because compiling twice now for every edit/build/test cycle doesn't seem right? |
This is still hacky, but should work:
We will work on improving the experience around this. |
Happy to hear this. In my case, the usage pattern is exactly
That did the trick. Thank you. |
You merged this PR w/ the warning only after clippy had become so flaky that we had been forced to make it optional on Travis. So, we haven't really been looking at the clippy results so much, and only saw the deprecation warning belatedly. Maybe that is what happened to others, too. |
Yea I'm keeping this open for a while. Maybe even moving to reporting an error with "you need to enable a magical environment varable to keep using the plugin API", that'll break everybody's workflow, but they have a trivial fix. Sorry to hear about the flakiness. All these changes are moving towards simplifying clippy and finally getting it into rustup. Note to anyone reading this: Currently there are only plans to move the |
Ack. Thanks for the hard work. |
I don't think anybody gains much from our crates.io releases, as it's a mess to figure out and breaks often.
Fixing the master branch is usually much better, since contributors can do so and we just have to punch the merge button instead of having to do the release dance on a local machine.
The plugin method is also something that the rustc devs are trying to phase out, so lets stay ahead of the curve