At Chef, we recently doubled down on open source. There were a few changes in the Chef 12 time frame that illustrate that.
First, Chef Server is fully open source, there is “enterprise Chef” and “open source Chef”. Chef Server is Chef Server and that’s it. There are premium features (read “for pay” over 25 nodes), but they build on the existing open source Chef Server. If you subscribe to the premium features and decide you don’t like them or they don’t add enough value, you don’t get locked out of your Chef Server and you don’t loose any functionality (outside of the premium features you no longer subscribe to). You are not locked in and we need to earn your business with real value. To me, this is awesome. To not be locked in gives you the freedom to move forward with Chef, without fear of being locked in to a product you no longer want to pay for.
Second, and the reason for my quick post here, is that we also have established guidelines on how anyone who is invested in the Chef ecosystem can contribute code, documentation, tests, and (if they want to) become a maintainer (have commit rights) of our various open source projects. That effort is still underway, but we’ve been actively using it with our core Chef project (chef-client, knife, etc..).
What to me is most awesome about this is not that we are actively trying to get community members commit rights to our projects, but that we, as Chef Software, are following that same process. If a developer at Chef Software wants to have a vote on whether a Pull Request should be merged, they need to follow our RFC process and become a maintainer of the project.
Earlier this year, I became a maintainer for the Windows-focused bits in the Chef project. That meant that I had a voice in approving or voting against pull requests that affect behavior and functionality on the Windows platform. I also gained the responsibility to help triage issues around Windows and Chef and review pull requests on Windows and Chef.
Today, I was approved as a maintainer for core chef. That means that I, a relative newcomer to the Chef community, have the rights and responsibilities of a maintainer (as defined by our Chef RFCs). Now, that is also kind of my day job, but the bigger point is that in order for me to get that privilege, I had to follow the same process as anyone in the community that would like to get commit rights to our Chef projects.
If you want to get started on the path to becoming a maintainer, we are looking for help with our projects. Or if you are interested in our RFC process, stop in to our weekly developer meetings in IRC (#chef-hacking on Freenode). Finally, we’ve got mailing lists (one for general Chef issues and usage and one for Chef developers).