8. ASIDE: WORKING IN THE COMMUNITY =>
WORKING FOR PUPPET LABS
• Developers
• Professional Services
• Sales Engineers
• ...and other roles
Monday, 21 May 12 8
10. BE TRANSPARENT
• Tell you what is happening
• Make decisions in public
• Work together on roadmap
• Work together on design
• Open by default
Monday, 21 May 12 10
12. DATA/MODEL SEPARATION
• Lookup of class parameters
separate from the manifest
• You can assume it is there!
• No manifest changes needed
• Uses Hiera as the back-end
Monday, 21 May 12 12
13. RUBY 1.9.3
...is finally a first class citizen.
This is part of 3.0.0
Fully supported.
All bugs fixed.
(Probably)
Monday, 21 May 12 13
14. PUPPET MODULE TOOL
• Project Geordi La Forge
• PMT ships with 3.0.0
• Making it more awesome!
• Buffing up publishing
• Enhance the forge
Monday, 21 May 12 14
15. VARIABLE SCOPE FIXED
• No more dynamic scope
• Killed deprecation warnings!
• Local, then inherited...
• ...then node, then global.
Monday, 21 May 12 15
16. GIVE BACK MEMORY
• Daemon mode used to
grow and grow...
• Now, we return memory to
the OS
• Part of our performance
improvement strategy
Monday, 21 May 12 16
17. ENC VS ENVIRONMENTS
• You could set the client
environment from the ENC
• The client would ignore you
(sometimes)
• Now it doesn’t
• Bug fix, not feature
• Still great!
Monday, 21 May 12 17
18. PLUGIN SYNC
• This worked unevenly
• Failures on first run
• Oddities about what can by
synced and used successfully
• Now, uniform and standard
Monday, 21 May 12 18
19. DSL POLISH
• Add “unless” to the language
• Allow keywords as resource
parameters and properties
• Fixed some parser bugs
(like ‘-’ in variable names)
• More of this coming...
Monday, 21 May 12 19
20. HIDDEN CHANGES
• Lots of bugs fixed
• Code cleanup
• Performance improvements
• Correctness fixes
• None of them visible
Monday, 21 May 12 20
24. MAJOR
VERSION
Breaking Changes
Monday, 21 May 12 24
25. MINOR
VERSION
Compatible new features
Monday, 21 May 12 25
26. PATCH
VERSION
Bug fix with no other
behavioural or functional
changes
Monday, 21 May 12 26
27. WHICH MEANS?
• You have version numbers
that match the way we write
and ship code
• You can be confident about
the scope of changes in any
release
Monday, 21 May 12 27
30. MONTH DEVELOPMENT RELEASES
• Waldorf is the next major
release after Telly (3.0.0)
• We will ship a tested version
every month as a preview
• This way you don’t have
changes a year old before
they ship to the community
• Plus OS packages!
Monday, 21 May 12 30
32. OLD MISTAKES STILL HAUNT US
• Parameterized classes don’t
work everywhere
• undef vs nil
• classes with ‘-’ in the name
Monday, 21 May 12 32
33. SLOW MOVING ECOSYSTEM
• Dashboard has not gotten a
lot of love recently
• Puppet Labs modules need
more attention
• ...but we are starting to
invest in them.
Monday, 21 May 12 33
34. BROKEN (OR DELAYED)
PROMISES
• import isn’t deprecated
• The static compiler isn’t the
default
• Facter doesn’t have typed or
structured facts
Monday, 21 May 12 34
36. THE ECOSYSTEM
• Shipping structured and
typed facts without the
ecosystem is a no-go
• On release, new features
should work everywhere
Monday, 21 May 12 36
37. THE NEXT CHALLENGE
Waldorf, kicking ass and taking names
Monday, 21 May 12 37
38. EXPERIMENT ONE
We are going to fix some high-voted tickets
Monday, 21 May 12 38
39. VOTES SHAPE THE ROADMAP
• We said votes matter before
• It wasn’t really true
•I don’t expect you to believe
me this time...
• ...so we are gonna fix
tickets, then ask you to
believe us
Monday, 21 May 12 39
40. VOTES SHAPE THE ROADMAP
• We want community input
into the roadmap
• This seems a solid choice
• Success is that votes get
used by the community
• ...and that we use them to
shape the roadmap!
Monday, 21 May 12 40
45. GONNA FIX THAT UP
• Target open tickets at the
next numeric version
• Means “trying to fix for that
release”
• Stillshipping time-based
product, so things will miss
Monday, 21 May 12 45
47. TECH FOR WALDORF
This is all speculative, no promises.
Monday, 21 May 12 47
48. SYSTEM MODULE PATH
• Modules can move fast
• Batteries-included is great
• Combine them!
• Best of both worlds
Monday, 21 May 12 48
49. STATIC COMPILER
• Missed Telly, but only just
• Content reference, not URI
• Single file catalog?
• Easier push model?
Monday, 21 May 12 49
50. STRUCTURED FACTS
• Really, structured and typed
• JSON is the template for
supported types and
structures
• Full ecosystem support
• Third party facts only, initially
Monday, 21 May 12 50
51. BETTER GRAPH PROCESSING
• Improve graph handling in
the Puppet Agent
• Fix the “anchor” pattern
• Improves from O(N^2)
worst case to O(N)
• Allows future improvements
to the catalog and graph
Monday, 21 May 12 51
52. BETTER ENVIRONMENTS
• Different versions of a type
in different environments
• Turns out that is pretty hard
(thanks, Ruby)
• We will make it easy
• Fix performance cost too
Monday, 21 May 12 52
53. CLEANER, DOCUMENTED CODE
• Easier to use Puppet as a
library or extend it
• Better API definitions
• Richer integrations
Monday, 21 May 12 53