👍 First off, thanks for taking the time to contribute! 👍
A CLA is a document that specifies how a project is allowed to use your contribution. We want a CLA that is simple and as clear as possible so that it doesn't impede contributions to the project.
When you make a contribution to the project, you agree:
- Your contribution is your original work (you own the copyright) or you otherwise have the right to submit the work.
- You grant the project a nonexclusive, irrevocable license to use your submitted contribution in any way.
- You are capable of granting these rights for the contribution.
By submitting a contribution to the project you agree to the above statements.
- Have you searched for duplicates? A simple search for exception error messages or a summary of the unexpected behaviour should suffice.
- Are you sure this is a bug or missing capability?
- Create your issue here.
- New issues contain two templates in the description: bug report and enhancement request. Please pick the most appropriate for your issue.
- Please use Markdown formatting liberally to assist in readability.
- Code fences for exception stack traces and log entries, for example, massively improve readability.
To make review of PRs easier, please:
- Reference an issue from your PR. If there isn't an existing issue for your PR, please create an issue first before submitting the PR.
- This helps expedite review by keeping the problem statement (the issue) explicitly separate from one of potentially many solutions (the PR).
- Make sure your PRs will merge cleanly - PRs that don't are unlikely to be accepted.
- For code contributions, follow the existing coding style.
- For documentation contributions, follow the general structure, language, and tone of the existing docs.
- Keep PRs small and cohesive - if you have multiple independent contributions, please submit them as independent PRs.
- Minimise "spurious" changes (e.g. whitespace shenanigans).
- Ensure all updated files include your copyright information at the top.
- Ensure all new files include a header comment block containing the Apache 2.0 license header and your copyright information.
- Reference issues, wiki pages, and pull requests liberally!
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move button left..." not "Moves button left...")
- Limit the first line to 72 characters or less
- Please start the commit message with one or more applicable emoji:
Emoji | Raw Emoji Code | Description |
---|---|---|
🎉 | :tada: |
initial commit |
🚧 | :construction: |
WIP (Work In Progress) commits |
🚑 | :ambulance: |
when fixing a bug |
🐛 | :bug: |
when identifying a bug, via an inline comment (please use the @FIXME tag in the comment) |
🆕 | :new: |
when introducing new features |
🎨 | :art: |
when improving the format / structure of the code |
📝 | :pencil: |
when performing minor changes / fixing the code or language |
☑️ | :ballot_box_with_check: |
when completing a task |
⬆️ | :arrow_up: |
when upgrading dependencies |
⬇️ | :arrow_down: |
when downgrading dependencies |
🐎 | :racehorse: |
when improving performance |
🔥 | :fire: |
when removing code or files |
🔈 | :speaker: |
when adding logging |
🔇 | :mute: |
when reducing logging |
📚 | :books: |
when writing docs |
🔖 | :bookmark: |
when adding a tag |
💎 | :gem: |
new release |
⚡ | :zap: |
when introducing backward incompatible changes or removing functionality |
💡 | :bulb: |
new idea identified in the code, via an inline comment (please use the @IDEA tag in the comment) |
❄️ | :snowflake: |
changing configuration |
💄 | :lipstick: |
when improving UI / cosmetic |
☔ | :umbrella: |
when adding tests |
💚 | :green_heart: |
when fixing the CI build |
🔒 | :lock: |
when dealing with security |
👕 | :shirt: |
when removing linter / strict / deprecation / reflection warnings |
⏩ | :fast_forward: |
when forward-porting features from an older version/branch |
⏪ | :rewind: |
when backporting features from a newer version/branch |
♿ | :wheelchair: |
when improving accessibility |
🌐 | :globe_with_meridians: |
when dealing with globalisation / internationalisation |
🚀 | :rocket: |
anything related to deployments / DevOps |
🚱 | :non-potable_water: |
when plugging memory leaks |
⚖️ | :balance_scale: |
when making legal changes (e.g. licensing) |
🐧 | :penguin: |
when fixing something on Linux |
🍎 | :apple: |
when fixing something on Mac OS |
🏁 | :checkered_flag: |
when fixing something on Windows |
👜 | :handbag: |
when a commit contains multiple unrelated changes that don't fit into any one category (but please try not to do this!) |