First off, thank you for considering contributing to gocontainerruntime! It's people like you that make the open-source community such an amazing place to learn, inspire, and create.
To contribute to this project, you will need:
- Go >= 1.22 (Standard Go compiler)
- Linux Operating System (Required for namespaces and cgroups)
- Root access (Required to run the container)
- Make (Optional but recommended for build automation)
We follow the standard Go coding conventions:
- Follow Effective Go
- Use
gofmtto format your code - Document all exported functions and types with high-quality GoDoc comments
- Keep functions and packages focused (Single Responsibility Principle)
- Fork the Repository and create your branch from
main. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes by running
make test. - Make sure your code lints by running
staticcheck ./...(if available). - Submit a Pull Request describing your changes and the problem they solve.
We use a simplified version of Conventional Commits:
feat:for new featuresfix:for bug fixesdocs:for documentation changesrefactor:for code changes that neither fix a bug nor add a featuretest:for adding missing tests or correcting existing tests
If you have any questions, feel free to open an issue or contact the maintainers.