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.

Reply via email to