You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For full usage, add `clap` as a dependency in your `Cargo.toml` file to use from crates.io:
650
+
For full usage, add `clap` as a dependency in your `Cargo.toml` (it is **highly** recommended to use the `~major.minor.patch` style versions in your `Cargo.toml`, for more information see [Compatibility Policy](#compatibility-policy)) to use from crates.io:
649
651
650
652
```toml
651
653
[dependencies]
652
-
clap = "2"
654
+
clap = "~2.19.0"
653
655
```
654
656
655
657
Or get the latest changes from the master branch at github:
@@ -677,15 +679,15 @@ To disable these, add this to your `Cargo.toml`:
677
679
678
680
```toml
679
681
[dependencies.clap]
680
-
version = "2"
682
+
version = "~2.19.0"
681
683
default-features = false
682
684
```
683
685
684
686
You can also selectively enable only the features you'd like to include, by adding:
685
687
686
688
```toml
687
689
[dependencies.clap]
688
-
version = "2"
690
+
version = "~2.19.0"
689
691
default-features = false
690
692
691
693
# Cherry-pick the features you'd like to use
@@ -754,6 +756,28 @@ There are a few goals of `clap` that I'd like to maintain throughout contributio
754
756
- Once parsing is complete, the memory footprint of `clap` should be low since the main program is the star of the show
755
757
* `panic!` on *developer* error, exit gracefully on *end-user* error
756
758
759
+
### Compatibility Policy
760
+
761
+
Because `clap` takes SemVer and compatibility seriously, this is the official policy regarding breaking changes and previous versions of Rust.
762
+
763
+
`clap`will pin the minimum required version of Rust to the CI builds. Bumping the minimum version of Rust is considered a minor breaking change, meaning *at a minimum* the minor version of `clap` will be bumped.
764
+
765
+
In order to keep from being suprised of breaking changes, it is **highly** recommended to use the `~major.minor.patch` style in your `Cargo.toml`:
766
+
767
+
```toml
768
+
[dependencies]
769
+
clap = "~2.19.0"
770
+
```
771
+
772
+
This will cause *only* the patch version to be updated upon a `cargo update` call, and therefore cannot break due to new features, or bumped minimum versions of Rust.
773
+
774
+
#### Minimum Version of Rust
775
+
776
+
`clap`will officially support current stable Rust, minus two releases, but may work with prior releases as well. For example, current stable Rust at the time of this writing is 1.13.0, meaning `clap` is garunteed to compile with 1.11.0 and beyond.
777
+
At the 1.14.0 release, `clap` will be garunteed to compile with 2.12.0 and beyond, etc.
778
+
779
+
Upon bumping the minimum version of Rust (assuming it's within the stable-2 range), it *must* be clearly annotated in the `CHANGELOG.md`
780
+
757
781
## License
758
782
759
783
`clap`is licensed under the MIT license. Please read the [LICENSE-MIT](LICENSE-MIT) file in this repository for more information.
0 commit comments