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.
Before You Contribute
Before writing code, make sure your contribution has a home in an issue. This keeps the discussion visible to maintainers and other contributors and avoids duplicate or misaligned work.
- Look for an existing issue in the repository you want to contribute to. Someone may already be tracking the bug or feature you have in mind.
- If nothing matches, open a new issue in the corresponding project to describe the problem or idea. Use it to clarify open points and agree on an approach with the maintainers before starting implementation.
- For larger or cross-cutting changes, IronCore uses a central enhancements repository where contributors submit IronCore Enhancement Proposals (IEPs). An IEP is the place to describe the motivation, design, and trade-offs of a substantial idea or solution that affects one or more IronCore projects.
- Even for an IEP, start with an issue. Especially for new contributors, please open an issue in the enhancements repository first to outline the idea and gather early feedback. This makes it much easier for maintainers to engage and for the proposal to land successfully.
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!