We held our first Puppet Contributor Summit on February 3 and 4 at CfgMgmtCamp.eu in Ghent, starting the day after FOSDEM. I had a great time, and it was lovely seeing so many people who have made contributions to the Puppet community over the years!
The day was kicked off at CfgMgmtCamp.eu with presentations from the founders of CFEngine (Mark Burgess), Puppet (Luke Kanies) and Chef (Adam Jacobs), and it was fascinating to see the contrast between the three. Luke spent his time talking about the progress we've made in the industry, with a focus on how there is still a lot left to do.
After lunch, we moved to the Puppet Contributor Summit room where we had a mix of
- People who have submitted pull requests and contribute code to our projects
- Community members working on related projects
- Module developers and publishers
- Key community members who answer a lot of questions about using Puppet
- Long-time Puppet users who are interested in doing more
On the first day, we focused on the current state of the open source projects and contribution processes. Eric Sorenson talked about the current state of the project and the community of contributors, followed up by Deepak Giridharagopal talking about low-friction contribution from bug report to shipping. We followed this up with a lot of discussion about how to improve our processes around feature requests (ARMs), pull requests and much more. Here's a short re-cap of a few of those items:
ARM process improvements
- The overall goal is to increase participation by simplifying process and tools, so more things go through ARM and we get more interaction on each ARM as it goes.
- There have been some notable successes whose characteristics Eric would like to identify and try to replicate. Specifically the NTFS ARM involved a lot of people and was highly constructive. Similarly, Andy's GDoc on Subcommands showed the power of having low-friction commenting.
- We have more work to do, since many people were not aware of the existence of the process.
- Diane Mueller, Red Hat OpenShift evangelist, suggested a Trello-based workflow similar to what Red Hat uses, with one card per topic. The cards link to GDocs and the columns are indicative of the state, so once they hit “done,” it’s not ambiguous.
Pull Request (PR) triage improvements
- Those who engaged in the Hangout-based PR triage found it rewarding and beneficial. The biggest issue now is mostly physical constraints around time zones, and finding ways to make the time work a little better for contributors in Europe. We're currently looking at ways to make this better.
- Good concrete suggestions for ways to improve the process:
- Publicly build a “docket” of PRs to be triaged a few days beforehand, by pinging people on the PR with a @username mention
- Let people nominate/request a triage slot through similar means so they know to show up
- Maybe do the scheduling through a "Google+ Community," a site feature that lets you calendar and broadcast events. Make them more visible by mentioning them in the CONTRIBUTING.md so it shows up via the GitHub link when PR is submitted.
Ticket triage improvements
- Rebuild and popularize the "tickets with simple fixes" queue for people to work on, either in Triage-A-Thon or on their own. Most people show up wanting to actually fix a bug or two, so just working through a list of tickets in order to assign them is not particularly rewarding.
- Talk up the value of testing and documenting simple repro cases. This maps well to practitioners who might not be able to dig down into the guts of Puppet to fix something, but can help determine if it's actually a problem.
Before we moved on to Belgian beer and other tasty beverages at the afterparty, I took a few minutes to recognize just a few contributions from community members (many, but not all of them were attending the summit):
- Kris Buytaert (KrisBuytaert): Chief Trolling Officer, organizing and speaking at events
- Erik Dalén (dalen): Pushing the limits of Puppet at Spotify and contributing back to Puppet
- Alessandro Franceschi (example42): 90 modules on the Puppet Forge
- John Bollinger (jcbollinger): Amazing amount of support and help for other users on the mailing lists
- Felix Frank (ffrank): Contributions to Puppet around cron
- Daniele Sluijters (daenney): Puppetboard, Puppet dinner meetup at FOSDEM, general helpfulness
- Brice Figureau (masterzen): Planet Puppet, long-time contributor to Puppet in so many ways
- Jasper Lievisse Adriaanse (jasperla): Great contributions to Puppet for OpenBSD
- Dominic Cleal (domcleal): augeas, Foreman, long-time contributor to Puppet
- Stefan Goethals (zipkid): Historical MCollective ML data, answers a lot of questions on IRC
- Belgian PUG: Thanks to Johan De Wit and others for running the FOSDEM community stand and much more!
On Day 2, we kicked off the summit with Luke doing an open Q&A where people could ask him anything. It took people a few minutes to warm up to it as their morning coffee was still taking effect, but pretty soon, they were keeping him busy with questions.
After the Q&A, we moved into a series of talks about various projects and contributions that people have been making to various Puppet projects.
- Felix Frank talked about the work he is doing around cron in Puppet.
- Daniele Sluijters (daenney) talked about Puppetboard, a visual interface into PuppetDB.
- Dominic Cleal provided some insight into writing your own augeasproviders.
- Marek Hulán showed us Kafo, a framework for creating shiny installers based on Puppet.
- Johan De Wit and Jan Vansteenkiste talked about TDD with rspec and other testing topics.
- Erik Dalén walked through just a few of his many contributions to Puppet.
At that point, we moved into some unstructured hacking time where people could work on their favorite Puppet project together, or just talk about Puppet projects. To wrap up the day, a group of us went into Ghent for dinner and drinks.
I had a terrific time at this first Puppet Contributor Summit, and it went so well that we are doing a second one at PuppetConf 2014 on Monday, September 22! We want to see both existing and new contributors to Puppet, related projects and modules.
While we did this as a single track in Ghent over two days, we only have a single day for the upcoming summit, so we are hoping to split this one into two tracks: module contributions and contributions to Puppet core projects. Don't forget to register for the Contributor Summit at PuppetConf 2014 on Monday, September 22.
We will announce agendas as we get closer to PuppetConf. I hope to see you there!