-
Ensure the bug was not already reported by searching on GitHub under Issues.
-
If you're unable to find an open issue addressing the problem, open a new one.
- Be sure to include a title and clear description.
- Be sure to include the actual behavior vs the expected.
- As much relevant information as possible, a code sample or an executable test case demonstrating the expected vs actual behavior.
-
Ensure that all bugs are first reported as an issue. This will help others in finding fixes through issues first.
-
Open a PR referencing the issue for the bug.
We are open to all Pull Requests, its best to accompany the requests with an issue.
-
The PR requires the github actions to pass.
-
Requires at least one maintainer to approve the PR to merge to master.
While the above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
Since this library is a core client for interacting with Zookeeper, we do SemVer releases to ensure predictable changes for users.
Zookeeper itself maintains a compatibility check on the main codebase as well as maintaining backwards compatibility through all Major releases, this core library will try to uphold similar standards of releases.
-
Code that is merged into master should be ready for release at any given time.
- This is to say, that code should not be merged into master if it is not complete and ready for production use.
-
If a fix needs to be released ahead of normal operations, file an issue explaining the urgency and impact of the bug.
Some good external resources for style:
All code should be error-free when run through golint
and go vet
. We
recommend setting up your editor to:
- Run
goimports
on save - Run
golint
andgo vet
to check for errors
You can find information in editor support for Go tools here: https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins
- We have zero external dependencies, and would like to maintain this. Use of any external go library should be limited to tests.