Case study: porting the whole world to a new API
2020-02-04, 14:50–15:15, B.1.015

Designing the perfect v2 of your API is never enough: look at Perl6 or Python3. In the case of Puppet, look at the cleverly named "modern 4.x function API". The original function API was kind of a mess. It allowed global object pollution, was slow, leaked across environments, and in general contributed to Puppet master instability. But it was "good enough" and so building a new function API that addressed these issues didn't mean that people updated their modules. So I did it for them. I built a tool that ports functions from the old API to the new API and submitted a few hundred auto-generated pull requests to Puppet modules all over the Internet (maybe even to one of yours…)

I'll show you how the tool itself works, and the pull request workflow, and then talk about what this means for raising the bar on ecosystem engagement.