Thanks for taking the time to contribute!
The following is a set of guidelines for contributing to Heroic.
- Please open an issue for discussion before submitting any major changes.
- Be sure to add a title and description to your PR explaining the reason for the change. Please include some context behind a bug or issue you ran in to, or your use case and why you need a particular feature added. If you're unsure about formatting, you can follow this article which dives into writing a proper commit message.
- Include tests for any large changes. Read here to learn how to run the tests.
- Include new or updated documentation in the related PR.
Unsure where to begin contributing to Heroic? You can start by browsing through these starter issues.
Working on your first Pull Request? You can learn how from this free series, How to Contribute to an Open Source Project on GitHub.
We use GitHub to manage issues. You can follow along and create issues here.
- Make sure you format the code using the provided formatter in idea. Even if you disagree with the way it is formatted, consistency is more important. For special cases, see Bypassing Validation.
-
If possible, limit your changes to one module per commit. If you add new, or modify existing classes. Keep that change to a single commit while maintaining backwards compatible behaviour. Deprecate any old APIs as appropriate with
@Deprecated
and add documentation for how to use the new API. -
The first line of the commit should be formatted with
[module1,module2] my message
. -
module1
andmodule2
are paths to the modules affected with anyheroic-
prefix stripped. So if your change affectsheroic-core
andmetric/bigtable
, the message should say[core,metric/bigtable] did x to y
. -
If more than 3 modules are affected by a commit, use
[all]
. For other cases, adapt to the format of existing commit messages.
- Before setting up a pull request, run the comprehensive test suite as specified in Testing.
- PRs with failing tests will not be merged.
Please open an issue under the bug label and we will prioritize it based on the severity.
If you find yourself wishing for a feature that doesn't exist in Heroic, you are probably not alone. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work.
This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.