Thank you for your interest in contributing to rust-zmq!
Please describe what you did, what you expected, and what happened instead. Please use https://gist.github.com/ if your examples run long.
If you find a missing feature, such as functionality provided by the
underlying libzmq
library, but not available via the Rust API
provided by the zmq
crate, or a suggestion to improve the existing
API to make it more ergonomic, please file an issue before starting to
work on a pull request, especially when the feature requires API
changes or adds to the existing API in non-trivial ways.
This gives the maintainers a chance to provide guidance on how the feature might be best implemented, or point out additional constraints that need to be considered when tackling the feature.
rust-zmq uses the "fork and pull" model described
here. It
is highly recommended that you create a dedicated branch in your
repository for each pull request you submit, instead of submitting
using your master
branch. This will make it easier on you when you
end up having multiple pull requests outstanding, and will let you
avoid rewriting history on your fork's master
branch (see below).
The rust-zmq project aims to keep the version history useful and reasonably simple. Thus, when preparing and updating your pull request, you should make liberal use of git's history rewriting capabilities, such as amending and squashing commits. Try to observe the following guidelines:
-
Unless you are working on a complex feature that can be implemented in multiple, independent changes, the pull request should contain a single commit. Do not submit "fixup" commits, instead amend your commit (
git commit --amend
) or use interactive rebase (git rebase -i
) to prepare commits that can be considered on their own, instead of requiring a reviewer to take later fixup commits into account. -
Each commit message should give a rough description of what was changed, and why. See "How to Write a Commit Message" for details on what a good commit message looks like, and why it matters.
-
Do not merge the target branch into your pull request branch if you need to update your pull request with changes made in the target branch. Instead, use
git rebase
.
If you add a feature, or fix an issue, think about how it could be tested, and add to the testsuite, if possible. This will make it easier for reviewers to see that your code actually does what it is supposed to do, and will prevent future regressions.