Skip to content

Latest commit

 

History

History
68 lines (45 loc) · 3.51 KB

File metadata and controls

68 lines (45 loc) · 3.51 KB

Contributing to Open Device Partnership

The Open Device Partnership project welcomes your suggestions and contributions! Before opening your first issue or pull request, please review our Code of Conduct to understand how our community interacts in an inclusive and respectful manner.

Contribution Licensing

Patina code is distributed under the Apache 2.0 License, and when you contribute code that you wrote to our repositories, you agree that you are contributing under those same terms. In addition, by submitting your contributions you are indicating that you have the right to submit those contributions under those terms.

Other Contribution Information

If you wish to contribute code or documentation authored by others, or using the terms of any other license, please indicate that clearly in your pull request so that the project team can discuss the situation with you.

Contribution Guideline

  • Format the code with cargo make all.
  • Use meaningful commit messages. See this blogpost

AI Policy

Patina does not accept contributions directly from AI tools (e.g. GitHub Copilot). If you use an AI tool to assist in the development of a Patina contribution, ensure that:

  1. You have the legal right to submit the code generated by an AI tool under Patina's contribution and licensing guidelines.
  2. You fully understand the changes being made to the codebase and can explain the changes to other contributors.
  3. You have thoroughly reviewed the code to ensure it meets Patina contribution guidelines.
  4. You have thoroughly tested the code. Firmware changes must be tested on QEMU and a physical platform.

If you do not fully understand the changes being made to the codebase, please ask for help from the Patina community before submitting a pull request. You can start a GitHub discussion to get more background on a topic or submit a GitHub issue to report a bug or request.

At a minimum, contributors submitting firmware changes should have a working understanding of the Rust programming language and UEFI firmware development. If you are new to either topic, the Patina community is happy to help you and there are many existing resources available for both subjects on the Internet.

Patina maintainers reserve the right to reject or close a pull request at any time if it is determined to violate this policy, including cases where AI‑assisted contributions lack sufficient human understanding, review, testing, or legal clarity. If a user repeatedly violates this policy, they may be temporarily or permanently banned from contributing to the Patina project.

PR Etiquette

  • Make sure that GitHub status checks ("PR gates") pass in your PR.

Careful Use of Unsafe

Working with low-level software, unsafe usage is a necessity. However, please wrap unsafe code with safe interfaces to prevent unsafe keyword being sprinkled everywhere.

RFC Draft PR

If you want feedback on your design early, please create a draft PR with title prefix RFC:.

Forks

Contribute to this repo by creating a fork. Pull requests can be made into the appropriate target branch such as the main branch or a feature branch from your fork.

Regressions

When reporting a regression, please ensure that you use git bisect to find the first offending commit, as that will help us finding the culprit a lot faster. File issues using GitHub issues in the relevant repository.