Thank you for your interest in contributing.
- Fork the repository and create a branch from
main. - Make your changes, adding or updating tests for any changed behavior.
- Run the full test suite and confirm it passes (
./build.sh test). - Open a pull request against
mainwith a clear description of what changed and why.
Keep pull requests focused on one logical change. If a refactor is needed to support a feature, split it into a separate PR.
Be respectful, be constructive, assume good intent. Disagreements about code are welcome; personal attacks are not. Everyone contributing here is volunteering their time - treat them accordingly.
Harassment, discrimination, and deliberately hostile behavior will not be tolerated. If something feels off, raise it with the maintainers.
Open an issue with a clear description, steps to reproduce (for bugs), expected vs. actual behavior, and your server version and OS.
The project uses .editorconfig for formatting - ensure your editor respects it. Code should be self-documenting; comments are only for things that cannot be understood by reading the code.
Review the architecture and plugin docs before making structural changes.
Use of AI tools (code generators, assistants, autocomplete) is welcome. All contributions are held to the same standard of quality and review regardless of how they were produced.
By submitting a contribution, you certify that you have the right to do so under the project's license. You are the author of record for any code you commit and you accept full responsibility for it, including code produced with the assistance of AI tools.
By contributing, you agree that your contributions will be licensed under the MIT License.