mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 06:42:33 +00:00
cd516006e3
It was de-stabilized in 2.0.0 but hasn't been changed since. This commit also updates docs to reflect that the "unstable" feature does nothing now.
2.9 KiB
2.9 KiB
How to Contribute
Contributions are always welcome! Please use the following guidelines when contributing to clap
- Fork
clap
- Clone your fork (
git clone https://github.com/$YOUR_USERNAME/clap-rs && cd clap-rs
) - Create new branch (
git checkout -b new-branch
) - Make your changes, and commit (
git commit -am "your message"
)
- I use a conventional changelog format so I can update my changelog using clog
- In addition to the conventions defined above, I also use
imp
,wip
,examples
. - Format your commit subject line using the following format:
TYPE(COMPONENT): MESSAGE
whereTYPE
is one of the following:feat
- A new featureimp
- An improvement to an existing featureperf
- A performance improvementdocs
- Changes to documentation onlytests
- Changes to the testing framework or tests onlyfix
- A bug fixrefactor
- Code functionality doesn't change, but underlying structure maystyle
- Stylistic changes only, no functionality changeswip
- A work in progress commit (Should typically begit rebase
'ed away)chore
- Catch all or things that have to do with the build system, etcexamples
- Changes to existing example, or a new example
- The
COMPONENT
is optional, and may be a single file, directory, or logical component. Can be omitted if commit applies globally
- Run the tests (
cargo test --no-std-features && cargo test --features yaml
) git rebase
into concise commits and remove--fixup
s (git rebase -i HEAD~NUM
whereNUM
is number of commits back)- Push your changes back to your fork (
git push origin $your-branch
) - Create a pull request! (You can also create the pull request first, and we'll merge when ready. This a good way to discuss proposed changes.)
Another really great way to help is if you find an interesting, or helpful way in which to use clap
. You can either add it to the examples/ directory, or file an issue and tell me. I'm all about giving credit where credit is due :)
Goals
There are a few goals of clap
that I'd like to maintain throughout contributions.
- Remain backwards compatible when possible
- If backwards compatibility must be broken, use deprecation warnings if at all possible before removing legacy code
- This does not apply for security concerns
- Parse arguments quickly
- Parsing of arguments shouldn't slow down usage of the main program
- This is also true of generating help and usage information (although slightly less stringent, as the program is about to exit)
- Try to be cognizant of memory usage
- Once parsing is complete, the memory footprint of
clap
should be low since the main program is the star of the show
- Once parsing is complete, the memory footprint of
panic!
on developer error, exit gracefully on end-user error