# Contributing to Project Aura First off, thank you for considering contributing to Project Aura! It's people like you that make the open-source community such an amazing place to learn, inspire, and create. ## Legal: The Contributor License Agreement (CLA) Project Aura uses a **Dual Licensing** model (GPLv3 for open source, Commercial for proprietary use). To maintain this model, I require all contributors to agree to a Contributor License Agreement (CLA). Agreement is explicit, not automatic. When you open your first pull request, the CLA check will ask you to read [CLA.md](CLA.md) and post this exact comment in the pull request: `I have read and agree to the Project Aura Individual Contributor License Agreement v2.0, and I hereby sign it.` The pull request cannot be merged until every contributor has signed the current CLA version. The signature is normally required only once; a changed CLA version may require a new signature. This agreement gives Volodymyr Papush personally the right to use your contribution in both the open-source and commercial versions of the firmware, while you retain copyright ownership of your code. The agreement allows those rights to be licensed or transferred to a company later. If an employer, client, university, or another organisation may own rights in your contribution, obtain its written permission before signing. If the organisation owns the contribution and you cannot bind it, contact the maintainer before submitting; an authorised representative must sign a separate written agreement before the contribution can be accepted. Disclose all third-party code or other material, together with its source and license, in the PR. ## Found a Bug? If you find a bug in the source code or a mistake in the documentation, please [submit an issue](https://github.com/21cncstudio/project_aura/issues). **Before you submit:** 1. **Search** existing issues to avoid duplicates. 2. **Check** [GitHub Discussions](https://github.com/21cncstudio/project_aura/discussions) for Q&A. ## Contributing Code I love pull requests! Here's a quick guide: 1. **Fork** the repository and create your branch from `main`. 2. **Code**: * Keep changes focused and well-scoped. * Follow the existing code style. * Add SPDX headers to new files (copy from existing files). 3. **Test**: Run tests (`scripts/run_tests.ps1`) or verify on hardware. 4. **Pull Request**: * Open a PR against the `main` branch. * Describe your changes clearly. * Complete the CLA signature requested by the automated check. ## Questions? For general questions, hardware help, or showing off your build, please join the GitHub Discussions. Thanks!