Thank you for your interest in contributing to Reglet! We welcome contributions from the community to help make compliance as code more secure and accessible.
- Fork the repository on GitHub.
- Clone your fork locally.
- Install prerequisites:
- Go 1.25+
- Make
golangci-lint(for linting)
We use a Makefile to automate common development tasks:
# Build the binary
make build
# Run all tests
make test
# Run linter
make lint
# Build and run locally
make devReglet uses WASM plugins for all system interactions. When making changes to plugins:
- Go to the plugin directory (e.g.,
plugins/file). - Run
make buildto compile the WASM module. - Ensure the updated
.wasmfile is in the correct location for the loader.
- Go Version: We use Go 1.25+.
- Formatting: run
make fmtbefore committing. - Linting: We check code with
golangci-lint. - Testing: New features must include tests. We aim for high test coverage.
We follow Conventional Commits:
feat(scope): description- New featurefix(scope): description- Bug fixdocs(scope): description- Documentation changestest(scope): description- Adding missing testschore(scope): description- Maintenance tasks
Example: feat(engine): implement parallel execution for independent controls
- Create a new branch for your feature or fix.
- Commit your changes using descriptive, conventional commit messages.
- Push your branch to your fork.
- Open a Pull Request against the
mainbranch. - Ensure all CI checks pass.
If you find a bug or have a feature request, please open an issue on GitHub. Provide as much detail as possible, including:
- Reglet version
- Steps to reproduce
- Expected vs. actual behavior
By contributing to Reglet, you agree that your contributions will be licensed under its Apache-2.0 License.