Contributing to an open-source project is not just about writing code. There are many other ways you can contribute to Strimzi.
You can start by joining the community.
We have a
#strimzi channel on the CNCF Slack workspace that you can join and meet other Strimzi users.
We also have user and developer mailing lists.
We also have community calls every two weeks.
If you come to the community calls, you will meet maintainers and other community members.
You can learn about the current work or future plans.
But you can also raise questions, discuss issues, or just chat about specific Strimzi use-cases or anything Strimzi-related.
We keep things friendly. In all our communications, on whatever platform, we expect everyone to follow a code of conduct.
If you're new to Strimzi, you'll probably have lots of questions.
We hope that our quickstarts, documentation, and tutorials on our YouTube channels help you to get started.
But don’t be afraid to ask if you have any questions or issues.
#strimzi Slack channel, user mailing list, and GitHub discussions are the best places to ask questions or ask for help.
To get useful help fast, it is always good to cover the following points:
Remember that others are helping you for free. They will try their best to help you, but they might be busy with some other work or might live in a different timezone. So be patient.
As a new user, you are always best positioned to suggest improvements to the documentation. If you misunderstood something or you think something is not sufficiently covered, you can feed back on any of our communication channels. Or you can open an issue. Alternatively, you can open a PR and contribute to the documentation directly.
If you already have some experience with Apache Kafka or with Strimzi and Kubernetes, you can try answering questions or providing guidance and suggestions. You can also help by reviewing or contributing to the documentation. Maybe put together a tutorial as part of the documentation, or as a blog post or video.
Our documentation is currently in English. But not everyone speaks English perfectly. So you can also help by translating our documentation or blog posts into other languages.
Feedback is important for Strimzi. Reading about how great Strimzi is always feels good. But negative feedback is also important, because it helps to improve Strimzi. You can share your feedback on Slack or mailing lists.
But feedback can have many different forms. You can provide feedback by creating issues. The issue can be to report a bug, suggest an improvement, or request an enhancement for a feature you would like to see. You can also write proposals describing new features and how they should be implemented. You can propose something even if you do not plan to implement it. If it's a good idea, someone else might.
You can also help us to improve the quality of our releases and help us test Strimzi. As with most modern projects, we rely heavily on automated tests. You can help us improve the tests. You can add new tests to improve the test coverage, improve their execution time, and so on. But you can also help by manually testing Strimzi in different configurations, environments, and in different use-cases. You can report the results and any issues you found.
Every Strimzi release starts with a release candidate. Testing the RCs in your environments with your configurations and making sure everything works before the final release is done is also very helpful. Fixing any bugs before the release is always better and easier than doing patch releases.
If you like using Strimzi, and want the community to grow, the easiest way you can help is by spreading the word. It can be something as simple as starring the Strimzi repositories on GitHub, subscribing to the Strimzi YouTube channel, or following us on Twitter and liking or retweeting our tweets. Talk about Strimzi on your social media accounts. Help more people learn about our project. And don't forget to tag us, so that we can like or retweet your contributions! If you use Strimzi in production, you can add your company to our list of adopters. And you can also add your logo to the Strimzi website. The adopters list helps other users to see who already uses Strimzi. This can be encouraging if they are looking to adopt Strimzi themselves.
Another way to spread the word about Strimzi is by writing blog posts. You might want to write about how you used Strimzi to achieve a particular goal or used it with other projects and technologies. You can contribute a post to our Strimzi blog. Or we can help share a post you published on your personal or company blog with the Strimzi community.
Talking at conferences or meetups is another great way to spread the word about Strimzi. And it doesn’t matter whether it is a small local meetup or a big conference for thousands of attendees. Let us know about your talks and we can share them with the community. If you want, we can also help to review your materials or conference proposals. If you are an organizer of a conference or meetup, and you're looking for someone to talk about Strimzi, we can also try to help you find the right speaker.
Since Strimzi is a software project, you can also contribute by writing code. One of the things which makes Strimzi different from most other cloud-native projects is that most of its parts are written in Java. So if you want to contribute to an exciting project and work with modern technologies such as Kubernetes, but do not want to learn Golang, then Strimzi is the right project for you. And if you are more interested in Apache Kafka than in Kubernetes, you will find Strimzi interesting as well.
Our developer guide should help you to learn how to develop and build the code.
If you are using Strimzi, you can contribute any features or improvements that you are missing.
You can also check the open issues on GitHub and fix bugs or implement enhancements.
We always try to have some issues labeled as good start. These are suitable for beginners.
If you plan to work on a bigger contribution, it might be good idea to check with us first. You could drop your suggestion in the
#strimzi-dev channel on CNCF Slack.
Bigger changes with major impact on the APIs might require a proposal that's approved by the community.
For small changes and bug fixes, you can just open the PR and we will review it.
Programming also doesn’t always mean just new features or bugfixes.
You can also contribute to our tests by writing new system tests.
Kubernetes operators are central to Strimzi. But Strimzi also has many smaller sub-projects, such as the Bridge, the OAuth library, and the Canary. Canary is the only sub-project written in Golang instead of Java. Some of the sub-projects can be also used independently of Strimzi with any Apache Kafka installation. So even if you are not running Apache Kafka on Kubernetes, you can still find a project to contribute to.
Everyone can join the Strimzi community and grow with it. It doesn’t matter what your skills are because you can contribute in many different ways. It also doesn’t matter whether you have just a few minutes to say `Hi` or you can spend several days coding a complicated feature.
When you contribute to Strimzi - in one of the ways described above - you will become a Strimzi contributor. We welcome all kinds of contributors - regardless whether you are implementing a feature needed by your company or whether you are just looking for something to spend your evenings with.
As you contribute more and more, you might focus on some particular areas and become what we call a “component owner”. A component owner has expertise and responsibility for one or more areas of the Strimzi project or sub-projects. As a component owner, you will be one of the go-to persons who will help to solve issues, answer questions, and review and merge PRs. You will also be helping to define the future direction of the area you are responsible for.
Component owners can grow to become a maintainer. But if you don’t want to specialize in one particular area of the Strimzi project, don’t worry. You can keep contributing to different areas and sub-projects and become a maintainer before becoming a component owner first.
Maintainers take the overall responsibility for the whole project. They provide leadership and steer its direction. But they also help to enforce its code of conduct, governance and independence. Maintainers help users, review and approve PRs, and vote on the proposals that cover the major changes or new features of the Strimzi project. As a maintainer, you are also responsible for helping new contributors to grow and become maintainers. You can check our Governance together with the list of current maintainers in our governance repository.
If you are interested in becoming a maintainer, you can just start contributing and we will notice you. You can also let us know so that we can help you grow by guiding you to the areas that might need help. And remember, you do not have to be a world-class programmer who writes hundreds of lines of Java code each day. All kinds of contributions count!