class: center, middle, inverse # Vox Pupuli - Empowering the Puppet Community --- background-image: url(blue-skies.jpg) background-size: cover ## $ whoami * Tim 'bastelfreak' Meusel * Systems Engineer for heg.com * Puppet Contributor since 2012 * Merging stuff on Vox Pupuli since 2015 * Vox Pupuli PMC member --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## What is Vox Pupuli? ] .right-column[ * Provide a home for orphaned Puppet modules * Unite lonely module and tooling authors to a collective * Ensure continued development for our code ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Who is Vox Pupuli? ] .right-column[ * Currently 80 people with merge permissions * 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 for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Who is Vox Pupuli? ] .right-column[ * Many git newbies * Many administrators of legacy infrastructures * Puppet2.7, Ruby187 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Why is Vox Pupuli? ] .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 ] .footnote[@bastelsblog for @voxpupuliorg] --- ## Vox Pupuli .left-column[ ## How? ] .right-column[  ] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ] .right-column[ * We are managing more than 70 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 for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ] .right-column[  * Free platform * rpsec-puppet common Puppet*Ruby versions * release modules to the forge * 10-60min per module, doesn't scale :sadface: ] .footnote[@bastelsblog for @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 for @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 for @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 * on our own infra with docker or QEMU/Virtualbox ] .footnote[@bastelsblog for @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 ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## How? ### modulesync ### travis ### beaker ### Tooling ] .right-column[ * http://voxpupuli.bastelfreak.de/ * IRC stats * https://github.com/bastelfreak/contributorstats * count contributions ] .footnote[@bastelsblog for @voxpupuliorg] --- ## Vox Pupuli .left-column[ ## Governance? ] .right-column[  ] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Governance? ###PMC ] .right-column[ * We elected a Project Management Committee this fall! * PMC enforces CoC * Brings Vox Pupuli into the Software Freedom Conservancy * PMC guidelines are created by the community https://tinyurl.com/voxpupul-governance-md ] .footnote[@bastelsblog for @voxpupuliorg] --- background-image: url(blue-skies.jpg) background-size: cover ## Vox Pupuli .left-column[ ## Governance? ### PMC ### Contributors ] .right-column[ * Review pull requests * Explain why we don't support ruby187 anymore * Trigger the automated release process ] .footnote[@bastelsblog for @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 for @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 ] .footnote[@bastelsblog for @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 #voxpupli on freenode * Slack: #voxpupuli on puppetcommunity.slack.com * pmc@voxpupuli.org * tim@bastelfreak.de ### Thanks for your attention! ]