Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 2.8 KB

CONTRIBUTING.md

File metadata and controls

48 lines (32 loc) · 2.8 KB

Contributing to Cerana

Reporting Bugs and Issues

All bugs, issues, and feature requests are tracked in Github Issues. For a better overview of the project management, you can use the Zenhub browser extension.

Check whether the bug of feature has already been reported by searching the issue database. If an open issue is found, click the +1 button on the first post and comment if you have additional information to share. If this has not yet been reported, follow the template provided when creating a new issue

Patches

  1. Make sure an issue exists, or create one. It is best to discuss new features and enhancements before implementing.
  2. Fork the repository and create a feature branch named xxxx-something, where xxxx is the number of the corresponding issue. Branches should be made off of master.
  3. Ensure the style and testing guidelines are met
  4. Use git rebase -i (and git push -f) to clean up the branch history into working, logical chunks (e.g. remove WIP commits, combine commits and subsequent minor fixups, etc.).
  5. Create a Pull Request via Github following the template provided.
  6. Check that the PR merges cleanly. If not use git rebase master and fix any issues.
  7. Make sure the TravisCI tests pass for the PR.
  8. Follow along with code review discussion. Comment in the PR after pushing any fixes.
  9. When all is in order and the maintainers agree, the PR will be merged.

Conventions

Documentation

All exported methods and variables should have an accompanying comment following the godoc format. Regenerate READMEs using make godocdown.

Code

For code consistency and catching minor issues, please run the following on all Go code and fix accordingly:

  • gofmt -s ./...
  • goimports ./...
  • golint ./...
  • errcheck ./...
  • go vet ./...
  • go vet --shadow ./...

Testing

Submit unit tests for all changes. Before submitting a pull request, make sure the full test suite passes, using go test ./...

TravisCI is configured to run a build on pull request. Results can be found here

Dependencies

All go dependencies are vendored and managed using glide. Use glide install to get the current set of dependencies. When introducing a new dependency glide get [package name] and commit both the updated glide.yaml and glide.lock. See the glide README for for more information.

Contact

  • Internet Relay Chat (IRC) - #cerana on irc.freenode.net