Hi all - we're nearing the end of the Puppet 4.x series feature development. It's been almost two years since Puppet 4.0 dropped and it seems like an opportune time to start thinking about the next semver major.
There was some discussion last year[0], but the development work is truly rolling forward now, so I wanted to restart the conversation about Puppet 5 to elicit feedback and make sure to incorporate the community's needs into the plan. The headline here is that the core open-source "Puppet Platform" (puppet-agent, puppet-server, puppetdb) are moving to a more coordinated release model, with compatibility guarantees and consistent versioning among the components. The first release of this "Puppet Platform 5", currently targeted at May, will bring these components' major versions together and provide some nice features without a huge backwards-incompatible break. A couple of FAQs, or rather questions I imagine will be frequently asked: Q: Puppet 5, what the hell eric0?! I just spent a month updating my code to run under Puppet 4. A: No Puppet code that works under Puppet 4 needs changing[1] to work under 5. This is a semver major to release some backwards-incompatible changes that have stacked up, plus some additional feature work, but does not affect the language. Puppet 4 won't be EOL any time soon (and we're guaranteeing commercial customer support until 2018) but we've got to keep the platform moving forward. Plus, it seems like a good opportunity to eliminate the confusion caused by "Puppet 4" being delivered in packages, split between puppet-agent-1.x and puppet-server-2.x .... Q: So what *is* in it? Why should I upgrade? A: Lots of good stuff. Hiera 5 with eyaml is built-in; it's UTF-8 clean; network comms are pure, sweet, fast JSON. Our current Ruby versions are EOL'ed, so we're moving to MRI Ruby 2.4 on the agent and jruby9k on the server. The PE-only puppet-server metrics service is getting some enhancements and will be open-sourced. Q: How's it going to be delivered? Are Puppet Collections still a thing? A: Funny you should ask. As we kicked around a couple of months ago[3], it's been two years and the collections idea just hasn't worked out in practice, so it seems wise to iterate and keep evolving. The current plan is to create a new repo, parallel with the existing PC1 repos, simply named 'puppet'. The platform components will roll into it and future semver-majors will be coordinated across the components, hopefully leading to smaller, easily digestible chunks of change. You can see the complete list of changes (which will evolve as we gather feedback and adjust scope) at this JIRA query[2]. If there's anything on the roster that looks like it'll break your world — or, conversely, if you want to nominate a change that's important to you but isn't currently on the list — this thread is the place to do that. --eric0 [0] https://groups.google.com/d/msg/puppet-dev/RHa2tMPRTx4/sA8RX_gS1ogJ [1] I'm reserving a tiny, tiny asterisk for some Ruby extensions that use internal APIs that may change, like pre-Puppet 4.9 lookup extensions. [2] https://tickets.puppetlabs.com/issues/?filter=12940 [3] https://groups.google.com/d/topic/puppet-dev/3-HSUz5OnHg/discussion Eric Sorenson - eric.soren...@puppet.com <mailto:eric.soren...@puppet.com> director of product, ecosystem and platform -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/6FF107F6-088A-43E2-BECF-772D8C153C49%40puppet.com. For more options, visit https://groups.google.com/d/optout.