# Contributing to AppCrane Thanks for your interest in improving AppCrane. Bug reports, feature ideas, and pull requests are all welcome. ## Ground rules - Open an issue before large changes so we can align on the approach. - Keep pull requests focused and match the surrounding code style. - Don't add comments, docstrings, or type annotations to code you didn't change. ## Contributor License Agreement (CLA) AppCrane is **dual-licensed**: the public license is the [GNU AGPL v3.0](LICENSE), and a separate **commercial license** is offered to organizations that cannot accept the AGPL's copyleft (see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md)). For that dual-licensing to remain possible, the project must hold the rights to relicense every contribution — a single AGPL-only contribution would otherwise make the code impossible to offer commercially. **By submitting a contribution (a pull request, patch, or any code or content), you agree that:** 1. You are the original author of the contribution, or you otherwise have the right to submit it under these terms. 2. You **retain your own copyright** in the contribution. 3. You grant the AppCrane project maintainer a **perpetual, worldwide, non-exclusive, royalty-free, irrevocable license** to use, reproduce, modify, distribute, sublicense, and **relicense** your contribution — including under the AGPL v3.0 **and** under separate commercial or proprietary terms — as part of AppCrane or any derivative work. 4. Your contribution is provided "as is", without warranty of any kind. If you cannot agree to these terms, please don't submit a contribution — open an issue to discuss instead. > **Note:** This CLA is a template and has **not** been reviewed by legal > counsel. Before relying on it for commercial licensing, have a lawyer review > it, or adopt a vetted flow (e.g. the Apache Individual CLA, or a > CLA-assistant bot that records agreement per contributor).