Openness means nothing without community. At the same time, community is not made up of lines of code. Community is people. Vincent Hardy, Director of Engineering at Adobe Inc. has eloquently described in his article, “Why Do Developers Contribute to Open Source Projects?” what motivates people to contribute to open source projects, and more precisely, how collaboration benefits the contributors — worth checking out!
Growing with open source
Let me briefly describe my own personal experience with open source by emphasizing some of the points in Vincent’s article. After a long lasting relationship with communities for instance, founding linux local user groups or even contributing to big projects like the KDE software compilation, I found myself working in a professional project using Mule ESB.
My relationship with Mule could have ended there, just do the work with it and jump to the next thing. Yet, I found the integration problem so exciting that I decided to go further. This drove me to the MuleSoft forums, and the forums eventually led me to reporting bugs and improvement suggestions on the issue tracker.
I’m a developer, and we developers find joy in fixing thing — not just pointing out the problem. As a result, I started sending patches that fixed those problems to MuleSoft.
At that point, I had already grown within my company thanks to this attachment to the source. It didn’t stop there. My patches and forum posts gave me enough recognition to be invited to coauthor a book: Mule In Action, Second Edition. Writing this book made me develop a close relationship with MuleSoft, and eventually making a living out of being part of the community I love.
Many of my colleagues have a similar background; and I’m sure every open source contributor has an exciting story to tell. And I’m sure most of them share the Vincent’s view on the goodness of contributing to an open source project.
How to contribute to Mule
Let me invite you to become an open source contributor, and if you let me go even further, I’d like to invite you to be part of the Mule ESB open source community.
There are different ways to participate in this community, and each of them requires a different abilities, not necessarily just development skills. Let’s review:
Request an improvement or report a problem in the issue tracker
There’s no perfect piece of software in the world. If you find a problem or you have a suggestion to improve Mule ESB, sign into our issue tracking system, make sure the issue is not already reported, and then report the new issue.
If you are reporting a problem, it’s especially important to include, if possible, a mechanism to reproduce the error, either in the form of a minimal app to reproduce the problem or in the form of a comprehensive list.
If the problem cannot be reproduced easily, the odds that someone else in the community picks up that issue and submits a pull request to fix it are low.
Submit a Pull Request
If you are a developer who wants to contribute code, we’d be happy to receive your contribution and incorporate it to the mainstream repository.
Mule ESB is hosted in GitHub, along with many other related open source projects that are willing to join forces with contributors. Once you visit the repository in GitHub, your first step should be to read the Contributor’s Guide.
Three very relevant but often forgotten steps of this guide are:
Sign the contributors agreement. A necessary step, common to all big open source project. Thankfully it is quick and painless.
Include the issue identifier in the commit description. This is very necessary as we need to keep record of the issue related with every single commit.
Cover your changes with tests. No contribution is completed if there are no tests covering its functionality.
If you need ideas around what bug to fix, or which new functionality to implement, just take a look at the issue tracker and find an unassigned issue. And remember, new functionality that breaks backwards compatibility should be merged against mule-4.x otherwise you can use mule-3.x.
Improve the documentation
If you find any area of improvement in the documentation there are two options:
- The quick one is to use the Rate this page and leave feedback area at the top/bottom of every documentation page. Make sure you add some written feedback to your rating to make sure we understand exactly what can be improved.
- Or to send your improvement request to email@example.com.
Help in forums on Stack Overflow
If you want to test your Mule skills you can visit those tags or our forum and try to help some other users in exchange of some stack overflow karma. This is a very relevant site which reputation system is becoming a very well considered knowledge measurement in hiring.
Help through social networks
Share your knowledge in a meet up or in a blog post
Meetup is a very trendy site for organizing events. You might want to organize your own event or to propose one to any of the existing groups.
Get rewarded for becoming a champion
At MuleSoft, we’re thankful for our vibrant community and all the contributions we’ve had along the years. As a gesture of recognition we have created the MuleSoft Champions Program!
With the MuleSoft Champions Program you get rewarded with cool prizes for expanding and sharing your knowledge:
- USB powered mini-fridges
- Your own flying drone
- Conference tickets
- MuleSoft swag
If you contribute to the MuleSoft community make sure you register in the Champions program for rewards!