Here are my suggested guidelines. Feedback from community members would be greatly appreciated:
In order to keep the project high quality and open for contributions, these are the guidelines that all contributions will be expected to follow:
- Pull Requests will be required to update the main repository. Please make a fork of the project to work on experimental code or new features.
- Consider the project as a whole with changes you want to make to the main repository. Any features that break compatibility with older .cpd files or make major changes to functionality should be discussed ahead of time and agreed upon by the community.
- Pull requests need to be reviewed by an active maintainer before they are merged into the main repository. This is critical to keep the software secure and high quality.
- There is an experimental branch for testing new features before they are added to the stable build. Only important security updates should be directly added to the stable build before it has had time to be tested in the experimental version.
- New features need to be thoroughly tested by the developer before they are submitted as a pull request. Where applicable, pull requests should include sample .cpd files that demonstrate new code works as intended. Pull requests will be rejected for edits if there is not sufficient proof of testing where this is relevant.
- Where possible, merge conflicts should be handled by the developer before code is submitted as a pull request. Where this is not possible, a qualified maintainer should handle the merge conflict.
- AI generated contributions are welcome, but must follow the guidelines above. In the interest of keeping the project maintainable, please do not submit pull requests unless you have coding experience or are working on a non-coding file (such as localization text or documentation). Pull requests with AI generated code that is not quality controlled and tested will be rejected.