linebender / kurbo

A Rust library for manipulating curves
Apache License 2.0
727 stars 71 forks source link

Add the linebender lint set #369

Open PoignardAzur opened 3 months ago

PoignardAzur commented 3 months ago

We should add a standardized set of rustc lints and clippy lints to all our projects. If we raise MSRV to 1.74, we can add them directly to Cargo.toml.

See zulip discussion for what our lint set should be. See https://github.com/linebender/peniko/pull/47/ for our current lint set.

Aside from the Cargo.toml lints, we should also add the following annotation to our crate root:

#![warn(clippy::print_stdout, clippy::print_stderr, clippy::dbg_macro)]

(We don't want a workspace-level lints for those because we want to tolerate prints in tests and examples.)

See this zulip thread for details.

We should add the following annotation at the crate roots:

We should also remove leftover prints, if any, or give them an opt-out.

PoignardAzur commented 2 months ago

See https://github.com/linebender/linebender.github.io/pull/68

0xdevcollins commented 1 month ago

Hi @PoignardAzur, Could I be assigned to this task?

waywardmonkeys commented 1 month ago

@devcollinss No one is currently working on this, so feel free to submit self-contained patches for the various lints.

I have some reservations about some of the lints, so if something is a big change, feel free to talk with us about it!

Maybe a good structure is a draft PR that has a lot of commits in it so that we can review them separately but still squash it down when it is ready to hit main?

0xdevcollins commented 1 month ago

@PoignardAzur I just made a draft PR #391

xStrom commented 1 month ago

If we raise MSRV to 1.74, we can add them directly to Cargo.toml.

We don't need to raise the MSRV to add them to Cargo.toml. Older toolchains will just issue a warning and that is fine. The warning does not trigger if Kurbo is used as a dependency.