Skip to content
This repository has been archived by the owner on Apr 30, 2024. It is now read-only.

Latest commit

 

History

History
92 lines (77 loc) · 6.34 KB

CONTRIBUTING.md

File metadata and controls

92 lines (77 loc) · 6.34 KB

Contributing to the Project

👍 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; they are commonly used in many open source projects.

All contributions to all projects hosted by the FINOS Foundation must be made with a Foundation CLA in place, and there are additional legal requirements that must also be met.

Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

As a result, PRs submitted to this project cannot be accepted until you have a CLA in place with the Foundation.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email [email protected]

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 running the latest version?
  • 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, then delete the other.
    • Please also tag the new issue with either "Bug" or "Enhancement".
  • 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:

  • Please make sure your PRs will merge cleanly - PRs that don't are unlikely to be accepted.
  • For code contributions, follow the existing code layout.
  • For documentation contributions, follow the general structure, language, and tone of the existing docs.
  • Keep commits small and cohesive - if you have multiple contributions, please submit them as independent commits (and ideally as independent PRs too).
  • Reference issue #s if your PR has anything to do with an issue (even if it doesn't address it).
  • Minimise non-functional changes (e.g. whitespace shenanigans).
  • Ensure all new files include a header comment block containing the Apache License v2.0 and your copyright information.
  • If necessary (e.g. due to 3rd party dependency licensing requirements), update the NOTICE file with any new attribution or other notices

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
🐧 :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!)