-
-
Notifications
You must be signed in to change notification settings - Fork 103
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
consider semver-checks #135
Comments
That is very cool. I am generally very hesitant to add new dependencies to CI. CI failing due to breakages or behaviors I don't understand from other tools is one of my bigger time sinks. Given that I think this has been the only accidental semver violation in |
👋 Hi! I'm Predrag, and I maintain Of course this is your crate and you should do what you think is best. If there's any info I could give you that might change your mind, I'd love to try. I too have been burned often by confusing behaviors of tools, and I've done my best to make I'm also willing to put my The team behind We're planning to publish a blog post on this ~next week. I'd be happy to share our draft with you today, if you'd like to take a look (no pressure!). We'd obviously welcome any feedback you might have! |
(If you aren't interested, I won't be offended if you just close the issue without replying. While I'd love to hear your thoughts, I recognize that's work and not something I'm entitled to — and I already benefit plenty from your work on this crate and many others 🙏) |
All righty, I'm willing to give it a go. Thank you for the lovely reply. :) |
Awesome!
If you'd prefer to use Two other things that might be worth considering:
Ping me anytime if anything seems broken or confusing! If you're open to using GitHub Actions for publishing, I'd also be happy to open a PR to add a |
I think starting with a CI step that is allowed to fail is the way to go for now. I don't publish crates from CI. I'm not in theory opposed to it, but let's do one thing at a time. The last thing I want to do is put CI into the critical path for crate releases. (This is partially why I do so few ripgrep releases. Each release is nearly guaranteed to involve wrangling with CI failures for hours. It's brutal. I do not want to start that across all of my crates unless I get huge wins.) |
Sounds good. There's a pre-made GitHub Action that should be easy to throw into a CI job. I'm also hoping to at some point add a mode to the action for running on a PR and not "pre-publish," and then adjusts the baseline it's comparing against accordingly to be the merge-base commit and not the crates.io published version. That would resolve the "merging breaking changes makes the job stay red until the next release" problem I mentioned. If that problem 👆 proves to be annoying in your crates' workloads, let me know and I'll prioritize building that functionality. You maintain so many crates for the benefit of the Rust community that empowering you to spend less time wrangling CI would be massively beneficial to the community, and I'd be happy to do what I can toward that 😁 |
Thank you! :-) |
Given #133, and how widespread this crate is to the ecosystem, semver related bugs should not be taken lightly.
Perhaps CI could check for the common offenders using
cargo-semver-check
.Running a test locally,
cargo semver-checks
did catch the bug in 133cc @obi1kenobi
The text was updated successfully, but these errors were encountered: