Thank you for your interest in contributing!
This document explains how to contribute changes and the legal terms that apply to all contributions.
By submitting a pull request or otherwise contributing code, documentation, or other material to this repository, you agree to the Contributor License Agreement in the section “Contributor License Agreement (CLA)” below.
If you do not agree to the CLA terms, please do not submit contributions.
- Fork the repository on GitHub.
- Optional: create a feature branch from the latest
mainormasterbranch. - Make your changes in small, focused commits.
- Ensure the code builds and, where applicable, all tests pass.
- Open a pull request (PR) against this repository’s default branch.
- In the PR description, explain:
- What you changed.
- Why you changed it.
- Any potential impact or breaking changes.
By opening a pull request, you confirm that you are legally allowed to contribute the material and that you agree to the CLA below.
- Follow the existing coding style and conventions in the project.
- Keep changes minimal and focused; avoid unrelated refactors in the same PR.
- For user‑visible changes, update any relevant documentation or comments, or mention in the PR description which parts of the documentation need to be updated or extended.
- If the changes require modifications or additions to localized strings, provide the localizations if you have sufficient knowledge of the language(s), or mention in the PR description which localized strings need to be updated or added.
In this Contributor License Agreement:
- “Project” means this software project and its related documentation, as hosted in this repository.
- “Owner” means the copyright holder(s) of the Project. For the purposes of this repository, that is the individual or entity that controls the main repository to which you are contributing.
- “You” (or “Your”) means the individual contributor, or the legal entity on whose behalf the contribution is made.
- “Contribution” means any original work of authorship, including any modifications or additions to existing work, that You intentionally submit to the Project in any form (including but not limited to code, documentation, configuration, or other content), via pull request, issue attachment, patch, or any other method of submission to this repository.
A Contribution is “submitted” when it is sent to the Owner or to the Project’s public version control system, issue tracker, or communication channels with the intention that it become part of the Project.
By submitting a Contribution, You represent and warrant that:
- Originality and rights. Each Contribution is an original work of authorship created by You, or You have sufficient rights and permissions to submit it and to grant the rights described in this CLA.
- No conflicting obligations. Your Contribution does not violate any third‑party rights, including but not limited to copyrights, trade secrets, patents, or contractual obligations.
- Authority. If You are making a Contribution on behalf of an employer or other entity, You have the authority to bind that entity to this CLA, and “You” in this CLA will refer to both You and that entity.
You grant to the Owner an irrevocable, perpetual, worldwide, non‑exclusive, royalty‑free, fully paid‑up, and transferable license, with the right to grant sublicenses, to:
- Use, reproduce, and modify the Contribution, in whole or in part.
- Prepare derivative works of the Contribution.
- Publicly display, publicly perform, distribute, and otherwise make available the Contribution and derivative works thereof, in source or object form, by any means and in any medium now known or later developed.
- Combine the Contribution with other materials and relicense the Contribution and any derivative works (including as part of a larger work) under any terms the Owner chooses, including proprietary or commercial licenses, regardless of the license that applies to the Project for other recipients.
This license grant is intended to be as broad as legally possible so that the Owner may use Your Contribution for any purpose, including commercial purposes, without additional permission from You and without any obligation to pay You.
Except for the rights You already have under the Project’s public license (as described in the LICENSE file of this repository), this CLA does not grant You any additional rights in the Project or in contributions made by others.
The Project’s public license continues to govern:
- What You and other third parties may do with the Project as a whole.
- What permissions (if any) are granted to redistribute or modify the Project outside of Your own Contributions.
The broad license You grant to the Owner in Section 3 applies only to how the Owner may use Your Contribution; it does not expand Your rights to the rest of the Project.
To the extent permitted by applicable law, You waive and agree not to assert any moral rights or similar rights (including rights of integrity or attribution) in Your Contribution against the Owner or the Project, so that the Owner may decide:
- How to attribute the Contribution (for example, via commit history or release notes), and
- How to modify, combine, or distribute it, including in ways that might otherwise require additional consent.
Where such rights cannot be fully waived, You agree not to exercise them in a way that restricts the rights granted to the Owner under this CLA.
The Owner is not obligated to:
- Use, merge, or include any Contribution in the Project, or
- Maintain any Contribution, even if it has been merged previously.
The decision to accept, modify, or reject a Contribution is at the sole discretion of the Owner.
Your Contribution is provided “as is,” without warranty of any kind. To the maximum extent permitted by law, You disclaim all warranties, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, and non‑infringement, with respect to Your Contribution.
To the maximum extent permitted by law:
- You will not be liable to the Owner or to any third party for any indirect, special, incidental, or consequential damages arising out of or related to this CLA or the use of Your Contribution.
Nothing in this CLA limits any liability that cannot be limited under applicable law.
- This CLA is effective from the moment You submit a Contribution to the Project.
- The license granted to the Owner under Section 3 is irrevocable and continues indefinitely, even if You stop contributing or request removal of Your name or account from the Project’s records.
- Termination of Your ability to contribute (for example, if You are banned from the repository) does not affect the rights already granted to the Owner.
Unless otherwise required by the law of the jurisdiction where You reside, this CLA will be governed by and construed in accordance with the laws applicable to the Owner’s principal place of residence or business, excluding its conflict‑of‑law rules.
By submitting a Contribution to this repository (for example, by opening a pull request), You confirm that You have read, understood, and agree to be bound by this Contributor License Agreement.