Skip to content

Latest commit

 

History

History
90 lines (73 loc) · 5.61 KB

CONTRIBUTING.md

File metadata and controls

90 lines (73 loc) · 5.61 KB

Contributing

👍 First off, thanks for taking the time to contribute! 👍

Contributor License Agreement (CLA)

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:

  1. Your contribution is your original work (you own the copyright) or you otherwise have the right to submit the work.
  2. You grant the project a nonexclusive, irrevocable license to use your submitted contribution in any way.
  3. You are capable of granting these rights for the contribution.

By submitting a contribution to the project you agree to the above statements.

Contributing Issues

Prerequisites

  • 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?

Raising an Issue

  • 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.

Contributing Pull Requests (Code & Docs)

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.

Commit and PR Messages

  • 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!)