Thank you for your interest in contributing to quartzctl! We welcome contributions from the community and are committed to maintaining a safe, inclusive, and high-quality open source project.
This guide outlines how to contribute effectively, responsibly, and in alignment with CNCF and OpenSSF best practices.
We welcome:
- New features
- Bug fixes
- Documentation improvements
- CI/CD and security enhancements
- Test coverage and performance optimizations
Please start by searching for existing issues. If none exist, feel free to open one to discuss your idea before submitting a PR.
-
Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/quartzctl.git cd quartzctl -
Install dependencies:
go mod tidy
-
Install taskfile:
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -
Build the CLI:
task build
-
Run tests:
task test -
Run linter (required):
task lint
- Fork the repo and create a new branch from
main. - Write clear, atomic commits. Use conventional commit messages (see below).
- Test locally and ensure the code lints and passes all tests.
- Include tests for new functionality.
- Update documentation if applicable.
- Open a pull request against the
mainbranch.
Before submitting a PR, ensure that:
- Code compiles without errors.
- Unit/integration tests cover the changes.
-
go fmt,go vet, andgolangci-lint runshow no issues. - All existing and new tests pass.
- Documentation is updated, if necessary.
- PR description clearly explains what the change does and why.
We follow the Conventional Commits specification:
<type>(optional scope): <description>
feat: A new featurefix: A bug fixdocs: Documentation-only changesstyle: Changes that do not affect meaning (white-space, formatting)refactor: Code change that neither fixes a bug nor adds a featuretest: Adding missing tests or correcting existing testschore: Changes to build process or auxiliary tools
feat(config): add support for multiple environmentsfix(apply): prevent crash when terraform is missingdocs: update usage examples in README.md
PRs that do not follow this format may be asked to rebase before being merged.
If you discover a security vulnerability, please do not open a public issue. Instead, follow the responsible disclosure process defined in our SECURITY.md.
This project follows the CNCF Code of Conduct. By participating, you agree to uphold this standard.
All contributions are subject to the terms of the Apache 2.0 License. By submitting a pull request, you certify that:
- You have the right to submit the code or documentation.
- You release your contributions under the project license.
We follow the Developer Certificate of Origin (DCO). Please ensure your commits are signed with --signoff:
git commit -s -m "feat: add new stage validation logic"Your contributions help make quartzctl better for everyone. We value your input and look forward to your ideas, improvements, and suggestions.
For questions or to get involved in deeper discussions, please join or open an issue.