The public Supermarket is the place to share cookbooks and other tools and plugins with the Chef community. There are more than 2400 cookbooks currently available for download on the Supermarket. Many people in our community use cookbooks from the Supermarket to automate and manage applications and infrastructure every day. Hundreds of people have shared cookbooks that they’ve written with the community on the Supermarket. There is no better source for finding and sharing Chef cookbooks than the Supermarket.
However, it is not all sunshine and lollipops. There are certainly problems with the Supermarket in that the cookbooks, tools, and plugins shared there are not all delightful. While most cookbooks likely accomplished the goals of the author when they were written and shared, these goals are likely not the same as your goals and the cookbook may no longer meet those goals for a variety of reasons. There is no easy way to determine which of the ten or more redis cookbooks are likely to meet your needs. Determining the relative quality of a cookbook is an onerous task and the Supermarket does very little to help you with making this determination.
Taking, for a minute, the cookbooks that are managed and published by Chef. There are currently 148 cookbooks with a total of 380 open pull requests and 516 open issues against those cookbooks. Not only is this problematic, it’s also very unfriendly to the people who have generated these issues and pull requests.
I am sorry that the Supermarket isn’t living up to your expectations or mine. We have a plan to make improvements and will work together with you and the rest of the community to improve things for everyone. And to do so, we will need your help (more on that at the end of this post).
Cookbook Engineering Team
We have built a team internally at Chef who will be focused full-time on improving the quality of cookbooks available on the Supermarket. Today, this team includes Jennifer Davis, Sean O’Meara, and Tim Smith.
This team is working towards the following outcomes:
- Increased velocity of releases for the cookbooks managed by Chef Software, Inc.
- Improved ability for community members to find and write awesome cookbooks.
- Decreased time required for the community to automate key systems.
Increasing the velocity of releases will require additional collaboration with the community and more maintainers for each of the cookbooks. We will be aggressive in distributing commit access to GitHub repositories and collaborator privileges on the Supermarket.
Improving the community’s ability to find and write awesome cookbooks will require that we understand and agree on some qualities that make a cookbook awesome. We must have an automated way of measuring these qualities and must also recognize that there are many different use cases for cookbooks. Sometimes, you just want to add a recipe to your run list and have a working Squid proxy server running at the end. At other times, you want to fine tune all of the configuration and deployment options of that Squid server. Both are valid use cases and both can be accomplished in a number of ways with Chef.
Decreasing the time required to automate key production systems requires that we improve the velocity of release, improve the ability of the community to find and write better cookbooks, and that we understand the technologies used in some of those key systems.
Sharing Cookbooks
Almost four years ago, I shared my first cookbook with the Chef community. I was proud of the cookbook I’d written. It saved me time and I wanted to save someone else some time and help them automate something. Was the cookbook perfect? Would it meet the goals of everyone? Hell no!
Shortly after publishing the cookbook I learned from twitter that someone else was using it but had to fork it to meet her own needs. Then, an amazing thing happened: I received the first pull request. This pull request came from someone I did not know at the time. I was overjoyed to receive help from the community and my feeling of belonging and bonds with the community grew even stronger. I was getting better at open source, I was growing professionally, and I was getting better at my job.
Looking at the current state of that cookbook is embarrassing. I’ve moved on. I’m not managing it anymore. It is still published on the Supermarket. There are plenty of open pull requests and issues for the cookbook. I wouldn’t recommend anyone use the cookbook today. I’m not even sure if it works. It should be deprecated. (I may deprecate it after some time but not before publishing this post).
There are likely many other cookbooks on the Supermarket that are in a similar state as my first cookbook: abandoned by the author(s), out-of-date, and possibly broken. The thing that’s awesome about these authors and their cookbooks is that the author took the time to share his or her work with the rest of the community. Sure, maybe the cookbook could be more complete, easier to use, and follow the current practices. As a community, we don’t shun the people or their contributions, we strive to give them guidance on how to make their contributions better.
We Need Your Help
Improving the quality of the cookbooks on available on the public supermarket is a community concern and will take effort from the community. I hope you’ll help us in this endeavor. There are a number of ways that you can help.
Would you like commit and collaborator access to one or more of the cookbooks managed by Chef? Let us know by sending an email to cookbooks@chef.io or commenting in your PR. And let us know if we can return the favor. Which cookbooks can we help you with?
Are you using some cookbooks from the public Supermarket today? Let us know which ones you’re using. We’ll need help prioritizing which cookbooks we should focus on first.
Have patience. We did not get where we are overnight and things will not be magically better immediately. We will make steady, visible, progress.
The Chef community seeks diversity. Diverse backgrounds, opinions, composition, and beliefs are all welcome and respected. We have a set of community guidelines that help us reinforce these values. If you’re new to the community, welcome, we are glad you are here and appreciate your contributions!
Community Summit
We will be hosting Community Summits in Seattle and London soon. Join us at one of these Summits to discuss how we can make things better in the community, how we can write better cookbooks, how we can help each other succeed!