Skip to content
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

Add clippy into CI and fix clippy warnings #1569

Closed
wants to merge 3 commits into from

Conversation

ikrivosheev
Copy link

@ikrivosheev ikrivosheev commented Oct 28, 2022

Improvements

  • add cargo clippy
  • fix all clippy warnings (some of them are allow)
  • increase minimal rust version up to 1.50

CI example: https://github.com/ikrivosheev/nom/actions/runs/3344876947

@ikrivosheev ikrivosheev force-pushed the feature/clippy branch 2 times, most recently from ce94466 to be0dff0 Compare October 28, 2022 10:42
@ikrivosheev
Copy link
Author

Tests are failed on nightly and beta after rustc enable niche-filling optimization.

Issue: rust-lang/rust#46213
MR: rust-lang/rust#94075

@@ -14,7 +14,7 @@ edition = "2018"
autoexamples = false

# also update in README.md (badge and "Rust version requirements" section)
rust-version = "1.48"
rust-version = "1.50"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MSRV bump shouldn't be neccesary once #1549 is merged.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, you can see there is an error now: https://github.com/Geal/nom/actions/runs/3040066364

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR fix error and also add some improvements.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, and #1549 fixes that by using min() instead of clamp().

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh, sorry, I see that!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I don't see a problem to drop support for rust version which had a release 2 years ago.

Copy link
Contributor

@cky cky Dec 10, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ikrivosheev It is a huge problem, because it would require a major version bump. Quoting the README (emphasis in original):

The 7.0 series of nom supports Rustc version 1.48 or greater. It is known to work properly on Rust 1.41.1 but there is no guarantee it will stay the case through this major release.

The current policy is that this will only be updated in the next major nom release.

MSRV guarantees are serious business for widely used libraries. It's fine if your library doesn't commit to an MSRV (but that means no library that has an MSRV can use your library as a dependency), but if your library does make such a commitment, you cannot break it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hopefully 8.0 changes the MSRV guarantee to minor compatibility breaks (8.x.0) rather than major (x.0). This is the approach of most libraries I work with and it seems to work out well. Having more MSRV smarts in cargo would he,lp though.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MSRV will probably change for nom 8 yes, but will stay the same for nom 7. Contrary to some libraries that bump MSRV in minor versions, we can't do that for nom because those versions have to be shipped in software for distributions like debian

@Geal Geal added this to the 8.0 milestone Dec 28, 2022
@Geal
Copy link
Collaborator

Geal commented Jan 1, 2023

closing this in favor of #1585, thanks for the help though!

@Geal Geal closed this Jan 1, 2023
@ikrivosheev ikrivosheev deleted the feature/clippy branch January 1, 2023 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants