Welcome to the HiveMQ Community! Glad to see your interest in contributing to HiveMQ MQTT Client. Please checkout our Contribution Guide to make sure your contribution will be accepted by the HiveMQ team.
For information on how the HiveMQ Community is organized and how contributions will be accepted please have a look at our HiveMQ Community Repo.
If you would like to contribute code, do the following:
- Fork the repository on GitHub
- Open a pull request targeting the
develop
branch
By contributing your code, you agree to license your contribution under the terms of the Apache License, Version 2.0.
All files must contain the license header from the HEADER file.
master
: release branch, protecteddevelop
is merged intomaster
by creating a merge commit if a new version is released- The release is tagged with the version
vX.Y.Z
develop
: snapshot branch, protected- Contains features for the next release
- Feature/bugfix/... branches are merged into
develop
by rebasing and merging
- Every feature/bugfix/... will have its own branch
- Branched off from
develop
- Pull request targeting the
develop
branch - Mandatory code review of the pull request
- Branched off from
gh-pages
: documentation branch, protected
- Branch types: feature, bugfix, improvement, cleanup (same as the label of a corresponding GitHub Issue)
- Branch names:
- Starting with type:
feature/
,bugfix/
,improvement/
,cleanup/
- + task: lower case, spaces replaced with
-
- Starting with type:
- Commits should be as atomic as possible.
- Commit messages should describe the changes clearly.
- Commit messages should start with a capital letter for consistency.
- Commit messages should avoid exceeding the line length limit. Instead use multiple lines, each describing one specific change.
- The project uses Nullability annotations to avoid NullPointerExceptions:
@NotNull
,@Nullable
. Every non-primitive parameter/return type/field should be annotated with one of them. - For IntelliJ IDEA the codeStyleConfig and the inspectionProfile are provided in the
.idea
folder.