class: center, middle, inverse # Vox Pupuli - Empowering the Puppet Community ## ~~Spontaneous OSDC 2019 Edition~~ ## Spontaneous Contributor Summit Edition --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### What? ] .right-column[ * Maintain many many Puppet modules * Be helpful and polite to each other * Be open-minded to people and technology * Provide a home for orphaned Puppet modules * Unite lonely module and tooling authors to a collective * Ensure continued development for our code ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### What? ### Who? ] .right-column[ * Currently 134 people with merge permissions * We were 113 in February 2018 * We were 107 in October 2017 * We were 80 in November 2016 * Just a few people work for Puppet Inc. * Most of the contributors participate in their free time * Normal administrators that have to deal with puppet at work ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### What? ### Who? ] .right-column[ * Many git newbies * Rebasing a feature branch against upstream master is hard * Many newcomers to test frameworks * Dealing with rspec/rubocop/beaker is hard as well * Many administrators of legacy infrastructures * Stuff older than Puppet 5 without proper hiera5/datatype support ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### What? ### Who? ### Why? ] .right-column[ * Maintaining a module on your own is hard * Changing best practices, vacations, losing interest * Proper testing of a module requires a lot of stuff from the ruby ecosystem * Ruby ecosystem and related tools are changing too fast for a single person * Everything has to work on multiple Ruby/Puppet versions * Rubocop * Rubocop ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- ## Vox Pupuli .left-column[ ## How? ] .right-column[ ![Right-aligned image](automate.jpg) ] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ] .right-column[ * We are managing more than 113 modules * modulesync was developed by Puppet Inc, moved to Vox Pupuli * It takes a config file + templates, throws it into every modules git repo * Everybody can start it ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ] .right-column[ ![Right-aligned image](travis.png) * Free platform * rpsec-puppet common Puppet*Ruby versions * release modules to the forge * 10-60min per module ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### beaker ] .right-column[ * creates a virtual machine or docker instance * starts a complete OS in it * executes puppet in it * checks if everything looks as expected ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### beaker ] .right-column[ Can be executed: * on your notebook before you contribute a patch (same for rspec) * with docker on travis ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### beaker ### Tooling ] .right-column[ * https://github.com/underscorgan/community_management * Open Issues and PRs sorted in different ways * https://voxpupuli-open-prs.herokuapp.com/ * Also open PRs * https://github.com/voxpupuli/thevoxfox * IRC bot, allows us to merge stuff + trigger modulesync (soon, maybe) * https://github.com/bastelfreak/contributorstats * count contributions * https://voxpupuli.org/docs/#reviewing-a-module-pr * Really Awesome review guidelines! ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### Summary ] .right-column[ * We have great tooling and automation * We have great people ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### Summary ] .right-column[ * We have great tooling and automation * We have great people * You need help with Puppet? * Let us know, we help out! * You have an orphaned module? * Ping us, migrate it to us * You have domain specific knowledge? * Ruby, Python, Rspec, Beaker, $software we automate ] .footnote[[@bastelsblog](https://twitter.com/bastelsblog) for [@voxpupuliorg](https://twitter.com/voxpupuliorg)] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ### Summary ] .right-column[ * You want to help out? * We are always looking for new Collaborators and Maintainer Contact: * IRC #voxpupuli on freenode * Slack: #voxpupuli on puppetcommunity.slack.com * voxpupuli@groups.io * pmc@voxpupuli.org * tim@bastelfreak.de * More talks at [https://github.com/bastelfreak/talks](https://github.com/bastelfreak/talks#collection-of-talks-proposals-and-related-stuff) ### Thanks for your attention! ]