4

I've got a copy of the Pulling Strings with Puppet book (written in 2007) but given that it has a bunch of equivocal language, I'm wonder how much has changed since then? I've found this Release Notes page and a (short) summery table at the top of the language tutorial but neither have dates, so I don't know where to start (and the more detailed notes make for rather dry reading).

Does anyone know of a page that list thing that have changed since that book was published?

BCS
  • 1,065
  • 2
  • 15
  • 24

4 Answers4

9

The main user-visible differences since 0.23.x are:

  • more language features like better conditionals - the Language Tutorial that you found is definitely the best way to find out what's available in manifests now.
  • all your manifests and plugins (custom facts, custom types and providers) should now be in a module directory structure and you should be using 'include mymodule::classname' instead of 'import /path/to/manifest.pp'
  • as a corollary, puppet:// URLS for file sources now need to have the module path in them, like puppet:///modules/mymodule/classname/file.txt would live on the filesystem at _modulepath_/mymodule/files/classname/file.txt
  • the CLI has been unified to a 'git' or 'svn' style single program with command arguments, like 'puppet agent' instead of a separate 'puppetd'. That's described on the Tools page
  • there are more built-in types and providers available, like the yumrepo, and zfs types, and zypper, freebsd , portage package providers.

There are big structural changes under the hood (on-the-wire communication moved from XMLRPC to a REST interface) but they're mostly invisible for every day use. The ones above are probably what trip up the most people, based on mailing list/irc inquiries.

BCS
  • 1,065
  • 2
  • 15
  • 24
eric sorenson
  • 971
  • 8
  • 10
  • 1
    Some elaboration on that first point wouldn't go unappreciated. – BCS Jan 31 '11 at 20:52
  • re: conditionals - you can now do 'if { a } elsif { b } else { c }' and use regexps for the conditions instead of just substring matches. – eric sorenson Feb 01 '11 at 06:10
  • So the "more language features" is actually just "better conditionals"? OK. Just checking. – BCS Feb 01 '11 at 15:30
  • @BCS: no, there's other subtle language features, like "require => Package['foo','bar']" as a cleaner way to say "require => [Package['foo'],Package['bar']]" – freiheit Feb 19 '11 at 21:30
2

See the Changelog. There were quite a few updates in the past months.

wazoox
  • 6,918
  • 4
  • 31
  • 63
  • Well that gives me a better idea where to start (2007 -> `ver < 0.24.x`) but I'd rather not read 3 years/+2K lines of change log. Given that book is a rather prominent stake in the sand, I'd expect a delta from there from the end user's perspective would be valuable. – BCS Jan 31 '11 at 18:07
  • Sorry, I don't have the book so I can't tell you more. – wazoox Jan 31 '11 at 19:13
2

Here's an easier to parse list compared to the changelog: http://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes

Nan Liu
  • 514
  • 2
  • 4
  • sadly it doesn't have dates so somewhere around 0.24.x I can't be sure of things are covered by the book or not. – BCS Feb 03 '11 at 22:09
  • 1
    I wouldn't use the date as a hard cut off. Also the new book is expected in March/April of this year which will cover 2.6. You can easily find the release dates by looking at git tag on github. Here's a few to get you started: 2008-07-24 01:20:17 +0200 Updated to version 0.24.5 2008-03-25 21:27:38 +0100 Updated to version 0.24.4 2008-03-17 06:27:36 +0100 Updated to version 0.24.3 2008-03-03 17:33:08 +0100 Updated to version 0.24.2 2007-12-22 01:37:33 +0100 Updated to version 0.24.1 2007-12-13 17:41:52 +0100 Updated to version 0.24.0 – Nan Liu Feb 03 '11 at 22:49
1

The Development Code Names should help:

http://projects.puppetlabs.com/projects/puppet/wiki/Development_Code_Names