Contributors Guide

Welcome to the Kuadrant contributors guide! We are delighted that you are interested in getting involved in our project 🎉

As you get started, you are in the best position to give us feedback on areas of our project that we need help with such as:

If anything doesn't make sense, or doesn't work when you run it, please feel free to either open a Github issue against the relevant component repository or reach out to us directly on Slack or via the Kuadrant mailing list.

Ways to Contribute

We welcome many different types of contributions covering areas such as:

Community Calls

Each week we host a Kuadrant Community call which provides an open forum to discuss all things Kuadrant. Anyone is welcome to come along to this meeting to propose a topic, join in on discussions or just listen in to gain some context into what's going on in the project. For further details on how to join the call, see the Events and Meetings section on the website community page.

Missed a meeting? Don't worry! All of our Community calls are recorded and available from our YouTube channel.

Ask for Help

The best way to reach us with a question when contributing is to ask on:

Reporting Issues

To report an issue in the Kuadrant project, you can create a Github issue in the relevant component repository e.g. Limitador, Kuadrant Operator, Authorino etc. If you are unsure of which component to log against, reach out via Slack or mail. The more information you can provide the easier it will be to help resolve the issue, so please don't be shy on details.

Find an Issue

A list of good first issues can be found from the Kuadrant Github projects board. These issues are categorised per component. If you see an issue you're interested in progressing mark yourself as an assignee and update the issue status to In Progress

On the rare occasion that there are no good first issues available, that’s OK! There is likely still something for you to work on. If you want to contribute but you don’t know where to start or can't find a suitable issue, you can reach out via the Public Slack channel for suggestions and/or guidance.

Submitting Pull Requests

When submitting a pull request against one of the Kuadrant component repositories, should the PR address a particular Github issue please make sure to reference it in the PR description. That said, it is not mandatory for a PR to have an associated issue referenced. In the event of a standalone PR that doesn't have an associated issue, please add a detailed description of the changes included. Adding What and Why sections is a good start. For example, What is the purpose of this change and Why is it required and/or being implemented in this way?

The Kuadrant project owners and maintainers strive to review and/or respond to all newly submitted PRs in a timely manner, however, if you're finding it difficult to get someone to review your PR, please reach out directly on Slack or mail

Finally, it is recommended that you squash your changes into a single commit where possible. If this is not feasible please ensure that your commits are representing a logical piece of work that can be reviewed independently within the PR.

Signing Commits

Licensing is important to open source projects. It provides some assurances that
the software will continue to be available based under the terms that the
author(s) desired. We require that contributors sign off on commits submitted to
our project's repositories. The Developer Certificate of Origin
(DCO)
is a way to certify that you wrote and
have the right to contribute the code you are submitting to the project.

You sign-off by adding the following to your commit messages. Your sign-off must
match the git user and email associated with the commit.

This is my commit message

Signed-off-by: Your Name your.name@example.com

Git has a -s command line option to do this automatically:

git commit -s -m 'This is my commit message'

If you forgot to do this and have not yet pushed your changes to the remote
repository, you can amend your commit with the sign-off by running

git commit --amend -s