Clap 3.1: A step towards 4.0

clap 3.1 is here! Clap is a CLI argument parser for Rust and the v3.1 releases focuses on API cleanup slated for clap 4.0. See the CHANGELOG for details.

clap 3.0 was in development for 4 years and though we saw comparisons to Half-life 3 in response to the release, we also saw people who cited the long gaps between breaking releases as a motivation for using it. For clap to stay relevant we feel we need to avoid the stagnation of long release cycles while keeping things smooth for the users where clap is already "good enough". The v3.1 release is a major step in trying to strike that balance. See my blog post for more on how we are handling this.

10 Likes

Every app using clap 3 now spams innocent users with deprecation warnings on installation with cargo install, right? I find this really unpleasant, I’m afraid.

To be frank, I liked the ‘stagnation’ but I perceived it more positively as ‘stability’.

Generally [[bin]]s will have a Cargo.lock, so they'll explicitly decide when to upgrade. They can make the choice of how many to resolve between upgrade and release.

I can understand the desire for stability. Each persons care abouts are different but we we have big enough of bugs and performance issues (.text size, compile time) that can only effectively be solved by making breaking changes.

My hope is that we can settle on some designs that will leave the door open for more evolution without as many breaking changes in the future.

1 Like

Cargo install hides warnings for dependencies. Plus there are no "innocent" cargo user, every cargo user should be somewhat technical.

1 Like

thanks for the awesome information.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.