Contributing to IronCore
Welcome to the IronCore contributor guide! Whether you're fixing a typo, reporting a bug, or building a new feature, your contributions are welcome at any time. This guide applies to all repositories under the ironcore-dev GitHub organization.
Prerequisites
Before your first contribution, please complete the following:
- Create a GitHub account if you don't already have one.
- Sign the Developer Certificate of Origin (DCO) — all commits must be signed off (
git commit -s) to certify that you wrote the code or have the right to submit it. This is checked automatically on every pull request. - Read our Code of Conduct — we follow the Linux Foundation Code of Conduct and are committed to providing a welcoming and respectful community for everyone.
Find Something to Work On
Not sure where to start? Here are a few ways to find your first contribution:
- Browse
good first issuelabels — these are issues where maintainers have committed to providing extra guidance. - Look for
help wantedlabels — these are issues open for community contribution. - Improve documentation — clarify existing docs, fix typos, or add missing content. See the documentation conventions in the style guide.
- Report a bug — if you've found an issue, open a GitHub issue with steps to reproduce it.
- Propose a feature — open an issue to discuss your idea before starting implementation.
Tip: Before working on a larger change, open an issue first to discuss your approach with the maintainers. This avoids unnecessary work and helps align your contribution with the project's direction.
Making a Contribution
Fork and Clone
Fork the repository you want to contribute to and clone it locally:
git clone git@github.com:<your-username>/<repository>.git
cd <repository>Create a Branch
Create a feature branch from main:
git checkout -b my-featureIf needed, rebase to the current main before submitting your pull request:
git fetch upstream main
git rebase upstream/mainMake Your Changes
- Follow the coding and documentation style guides for code, testing, and documentation standards.
- Keep commits small and focused — each commit should be correct independently.
- Write clear commit messages that explain why, not just what.
- Include tests for any new functionality or bug fix.
- Sign off every commit for DCO compliance:
git commit -s -m "Add support for feature X"Submit a Pull Request
Push your branch and open a pull request against main:
git push origin my-featureIn your pull request description:
- Explain what the change does and why it's needed.
- Reference any related issues (e.g.,
Fixes #123). - Tag a relevant maintainer if you need a specific reviewer — check the
CODEOWNERSfile in the repository.
Run Checks
Before submitting, run the project's checks locally to catch issues early. See Running tests in the coding style guide for details:
make test # Unit and integration tests
make lint # Linter checks
make verify # Code generation and manifests are up to dateCode Review
All contributions go through code review before merging. Here's what to expect:
- A maintainer will review your PR and may request changes. This is normal — reviews improve code quality for everyone.
- Address feedback by pushing additional commits or amending existing ones.
- Mark resolved comments as resolved in GitHub and leave a comment when your changes are ready for another look.
Reviews are a collaborative process. Don't hesitate to ask questions or push back if you disagree with feedback — respectful discussion leads to better outcomes.
Reporting Issues
We use GitHub issues to track bugs and feature requests. When opening an issue:
- Check if a similar issue already exists.
- Provide enough context to understand and reproduce the problem.
- Use the issue templates provided in each repository when available.
Licensing
All contributions to IronCore projects are licensed under the Apache 2.0 License.
Need Help?
- Ask questions on any issue or pull request — maintainers are happy to help.
- Join our Slack workspace to chat with the community.
Thank you for contributing to IronCore!