Hi all, I screwed up and didn't give haus the latest version of the release notes before the release ship sailed -- just a couple of tweaks below that will be important if you want to browse the YARD api docs:
# Puppet 3.1 Release Notes ## A word about versioning This is the first "minor" release in the Puppet 3 series. It introduces some new functionality and fixes a number of bugs, but is intended to be completely backwards-compatible with 3.0. There will be no further 3.0.x point releases, so any current Puppet 3 users should upgrade to 3.1.0. For users upgrading from a 2.x series release, please read through the [long-form Puppet 3 release notes](http://docs.puppetlabs.com/puppet/3/reference/release_notes.html) for a full list of new features, deprecations, and backwards-incompatible changes. ## Headline Features ### New Ruby DSL Puppet 3 now includes a brand-new way to configure your systems: a new Puppet Ruby DSL. The Puppet Ruby DSL provides a powerful way for advanced Puppet users to write catalogs "closer to the metal" than the Puppet DSL permits. Originally written by Mateusz Lenik as a 2012 Google Summer of Code project, it's now ready to see the light of day, backed with solid documentation and real-world use cases. Even so, please consider it experimental -- if it was semantically versioned separately from puppet, it'd be an '0.9.x' release. Read more here: http://docs.puppetlabs.com/puppet/3/reference/ruby_dsl.html ### Improvements When Loading Ruby Code A major area of focus for this release was loading extension code. As people wrote and distributed Faces (new puppet subcommands that extend Puppet's capabilities), bugs like [#7316](https://projects.puppetlabs.com/issues/7316) started biting them. Additionally, seemingly simple things like retrieving configuration file settings quickly got complicated, causing problems both for Puppet Labs' code like Cloud Provisioner as well as third-party integrations like Foreman. The upshot is that it's now possible to fully initialize puppet when using it as a library, loading Ruby code from Forge modules works correctly, and tools like puppetlabs_spec_helper now work correctly. ### YARD API Documentation To go along with the improved usability of Puppet as a library, we've added [YARD documentation](http://yardoc.org) through selected parts of the codebase. YARD generates browsable code documentation based on in-line comments. This is a first pass through the codebase but about half of it's covered now. To use the YARD docs, simply run `gem install yard` then `yard server` from inside a puppet source code checkout (the directory containing `lib/puppet`). ### YAML Node Cache Restored on Master In 3.0.0, we inadvertently removed functionality that people relied upon to get a list of all the nodes checking into a particular puppet master (#16753). This had actually flip-flopped a few times but now it's enabled for good, added to the test harness, and available for use as: # shell snippet export CLIENTYAML=`puppet master --configprint yamldir` puppet node search "*" --node_terminus yaml --clientyamldir $CLIENTYAML ### Other bugfixes and improvements In addition to the headline features, Puppet 3.1 includes a number of improvements and bugfixes, many of which were community-contributed -- many thanks to the community members who submitted documentation, test, and code improvements. Some of the more interesting ones follow. * The Solaris package manager now supports the `holdable` feature (aka "freezing") (#16120) * `managehome => true` now works on Oracle Enterprise Linux 6 (#18298) * `create_resources` can now create virtual and exported resources (#15081) * SRV record improvements for fileserving and certificate service (#18161, #18162) ## Complete list of bugs fixed in this release For a hyperlinked list of bugs addressed in the release, please visit the [Puppet Version 3.1.0 Roadmap](https://projects.puppetlabs.com/versions/288) page. On Jan 9, 2013, at 2:57 PM, Matthaus Owens wrote: > Puppet 3.1.0-rc1 is a feature release for the 3.x series of Puppet. To > see a list of the issues addressed by this release, check out the > 3.1.0 version in our issue tracter at: > https://projects.puppetlabs.com/versions/288 > > This is the first "minor" release in the Puppet 3 series. It > introduces some new functionality and fixes a number of bugs, but is > intended to be completely backwards-compatible with 3.0. There will be > no further 3.0.x point releases, so any current Puppet 3 users should > upgrade to 3.1.0. For users upgrading from a 2.x series release, > please read through the [long-form Puppet 3 release > notes](http://docs.puppetlabs.com/puppet/3/reference/release_notes.html) > for a full list of new features, deprecations, and > backwards-incompatible changes. > > Downloads are available at: > * Source https://downloads.puppetlabs.com/puppet/puppet-3.1.0-rc1.tar.gz > > Available in native package format in the pre-release repositories at: > http://yum.puppetlabs.com and http://apt.puppetlabs.com > > For information on how to enable the Puppet Labs pre-release repos, see: > http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#enabling-the-prerelease-repos > > Gems are available via rubygems at > https://rubygems.org/downloads/puppet-3.1.0.rc1.gem > or by using `gem install puppet` > > Mac packages are available at > https://downloads.puppetlabs.com/mac/puppet-3.1.0-rc1.dmg > > Windows packages are available at > https://downloads.puppetlabs.com/windows/puppet-3.1.0-rc1.msi > > Please report feedback via the Puppet Labs Redmine site, using an > affected puppet version of 3.1.0-rc1: > https://projects.puppetlabs.com/projects/puppet/ > > =========================== > ## Puppet 3.1.0-rc1 Contributors ## > =========================== > Adrien Thebo, Andrew Parker, Branan Purvine-Riley, Chris Barker, > Curtis Ruck, Dave Dash, Dominic Cleal, Dustin J. Mitchell, Eric > Sorenson, Erik Dalén, Garrett Honeycutt, Gary Larizza, Henrik, Henrik > Lindberg, Hunter Haugen, Jeff McCune, Joachim de Groot, Josh Cooper, > Lauri Tirkkonen, Mateusz Lenik, Matthaus Owens, Michael Hall, Moses > Mendoza, Nick Fagerlund, Nick Lewis, Patrick Carlisle, Paul Morgan, > Peter Eisentraut, Rahul Gopinath, Ryan Gozar Collins, Ryan Uber, > Steven Lindberg, jmccann > > ============================ > ## Puppet 3.1.0-rc1 Release Notes ## > ============================ > ## Headline Features > > ### New Ruby DSL > > Puppet 3 now includes a brand-new way to configure your systems: a new > Puppet Ruby DSL. The Puppet Ruby DSL provides a powerful way for > advanced Puppet users to write catalogs "closer to the metal" than the > Puppet DSL permits. Originally written by Mateusz Lenik as a 2012 > Google Summer of Code project, it's now ready to see the light of day, > backed with solid documentation and real-world use cases. Even so, > please consider it experimental -- if it was semantically versioned > separately from puppet, it'd be an '0.9.x' release. > > Read more here: http://docs.puppetlabs.com/puppet/3/reference/ruby_dsl.html > > ### Improvements When Loading Ruby Code > > A major area of focus for this release was loading extension code. As > people wrote and distributed Faces (new puppet subcommands that extend > Puppet's capabilities), bugs like > [#7316](https://projects.puppetlabs.com/issues/7316) started biting > them. Additionally, seemingly simple things like retrieving > configuration file settings quickly got complicated, causing problems > both for Puppet Labs' code like Cloud Provisioner as well as > third-party integrations like Foreman. The upshot is that it's now > possible to fully initialize puppet when using it as a library, > loading Ruby code from Forge modules works correctly, and tools like > puppetlabs_spec_helper now work correctly. > > ### YARD API Documentation > > To go along with the improved usability of Puppet as a library, we've > added [YARD documentation](http://yardoc.org) throughout the codebase. > YARD generates browsable code documentation based on in-line comments. > This is a first pass through the codebase but about half of it's > covered now. To use the YARD docs, simply run `gem install yard` then > `yard server --nocache` from inside a puppet source code checkout (the > directory containing `lib/puppet`). > > ### YAML Node Cache Restored on Master > > In 3.0.0, we inadvertently removed functionality that people relied > upon to get a list of all the nodes checking into a particular puppet > master. This had actually flip-flopped a few times but now it's > enabled for good, added to the test harness, and available for use as: > > # shell snippet > export CLIENTYAML=`puppet master --configprint yamldir` > puppet node search "*" --node_terminus yaml --clientyamldir $CLIENTYAML > > ### Other bugfixes and improvements > > In addition to the headline features, Puppet 3.1 includes a number of > improvements and bugfixes, many of which were community-contributed -- > many thanks to the community members who submitted documentation, > test, and code improvements. Some of the more interesting ones follow. > > * The Solaris package manager now supports the `holdable` feature (aka > "freezing") (#16120) > * `managehome => true` now works on Oracle Enterprise Linux 6 (#18298) > * `create_resources` can now create virtual and exported resources (#15081) > * SRV record improvements for fileserving and certificate service > (#18161, #18162) > > ## Complete list of bugs fixed in this release > > For a hyperlinked list of bugs addressed in the release, please visit > the [Puppet Version 3.1.0 > Roadmap](https://projects.puppetlabs.com/versions/288) page. > > ========================= > ## Puppet 3.1.0-rc1 Changelog ## > ========================= > Adrien Thebo (1): > 71f70f3 (maint) remove unused attributes from transaction > > Andrew Parker (79): > e7d3c3e (Maint) Tighten up assertion to find the cause of a flicker > cfe8bd4 (Maint) Pull config file parsing into a class > 6928905 (Maint) Move config file parser to its own file > 0e60b11 (Maint) Create a config file parser only once > 58e36f5 (Maint) Raise a Puppet ParseError instead of a RACC::ParseError > cbb73d8 (Maint) Add test coverage around config file parsing > 7bdd38e (Maint) Move initialize near top > b232d69 (Maint) Extract class to encapsulate value translation > bd07485 (Maint) Extract value translator for settings > 74d70fb (Maint) Use value translator directly > 2d00869 (Maint) Remove unneeded parse_file method > f3d0c73 (Maint) Remove unused method sectionlist > 462d9a5 (Maint) Remove code to support multiple config files > 55043e3 (Maint) Clean up config file parsing > eb34c6b (#7622) Deprecate and remove features.pson? > f65890d (Maint) Remove unimplemented tests > fa7504a (Maint) Remove unimplemented tests > fa148a5 (Maint) Remove unimplemented tests > a62b91a (Maint) Remove pending tests > 22ab8c3 (Maint) Remove unimplemented tests > d295ae8 (Maint) Remove unimplemented tests > a8d9ea5 (Maint) Remove unimplemented tests > 534adcc (Maint) Remove pending test > b2235d7 (Maint) Remove the hiera-puppet readme > 3c754b3 (Maint) Test interplay of colliding names > ad3f0c8 (Maint) Stop changing internals of object during test > 74df53a (#7316) Use the public API for initializing settings > cc5258f (#7316) Load puppet/util as early as possible > 649f7b5 (#7316) Do not try to require the application > 576d07f (Maint) Remove distracting comments > 042581c (#7316) Reorder subcommand handling logic > 88d87cb (Maint) Extract classes to handle different subcommand types > 1390fae (Maint) Remove unused instance variables > 3719b81 (#7316) Clarify parameters to construct a CommandLine > 46f6725 (Maint) Simplify logic to find subcommand name > 7a8577d (Maint) Separate discovery of subcommand name from args > e1135d6 (#7316) Document API used by CommandLine > 2cf09c1 (Maint) Create a mutation preserving wrapper for CommandLine > 87993c8 (#16753) Change name of 'Woy' to 'WriteOnlyYaml' > 2027a40 (#16753) Improve test to check contents of written file > cff8ef1 (#16753) Verify by using puppet node search > ed07df8 (#16753) Remove use of routes file in test > 067e9e0 (Maint) Clarify what the options to less are > c882090 (#7316) List subcommands in a supported manner > f1f7d66 (Maint) Allow creating a test file with default options > 6c0ea17 (#7316) Use tempfile utilities for managing files > 44edc94 (Maint) Fix syntax error in module generate template > 849aaf4 (#7316) Test faces from modules using a module > 23fedf2 (#7316) Do not run on windows > 728fcc7 (#7316) Give test file a more descriptive name > a3f7ace (#15496) Expand testing of Time serialization to cover more cases > c5ee6d9 (#15496) Remove duplication of checks in ZAML tests > 3d5463c (Maint) Canonization is for saints > a6fba38 (Maint) Reformat collector test to make it easier to read > 570297f (Maint) Change collector tests to be more intent revealing > b2793b8 (#10963) Test resource collection inside a class/define > 6e103be (Maint) Cleanup tests for owner to actually test the logic > bb3fd8f (Maint) Cleanup tests for group to actually test the logic > e885702 (Maint) Move variable closer to point of use > 4bf2095 (Maint) Remove duplicate tests > 7a38045 (Maint) Clarify error message for invalid group and owner > c140ce5 (Maint) Show the actual allowed values for group > b2204d0 (Maint) Remove duplication in parameter checking > a0430b4 (#9862) Allow group to be root > 006c5de (#9862) Do not manage the group if it doesn't exist > 73dfca1 (Maint) Invert logic to make it more straightforward > 1cf7eca (#9862) Add acceptance test for issue > 42d09d5 (Maint) Ensure tests are hitting the right ascpect > f9646a8 (#9862) Promote user/group logic to first class > 6d71054 (#9862) Document management of file owners and groups > d531225 (#17371) Add acceptance test for applying correct privileges > 0709e33 (Maint) Exclude ownership test from windows > b6e4cc1 (Maint) Use string for exclusion instead of symbol > 42359af (Maint) Update the supported ruby versions > f39607c (Maint) Point users to mailing list and IRC > 3125c13 (Maint) Remove "RVM considered harmful" > 9b16379 (Maint) Remove references to 'I' > 9568988 (Maint) Create sections of information > d7244e7 (Maint) Change to README.md for yard frontpage > > Branan Purvine-Riley (1): > 2f9706c (maint) Confine pty-based test to non-Windows hosts. > > Chris Barker (1): > f24192d Adds additional check for osx puppet group creation > > Curtis Ruck (1): > 8b05f2a (#16137) Ensure HOME is set before attempting ~ expansion > > Dave Dash (1): > 39d34ca Removing -e options from pip provider. > > Dominic Cleal (2): > 0bc1a80 (#15529) Initialize app settings before all and each test > 4036d92 (#17371) Re-initialize settings metadata after run_mode > determined > > Dustin J. Mitchell (1): > 28edee7 Fix a small docs typo - umounted vs. unmounted > > Eric Sorenson (3): > 2ea29e5 (#16768) Clarify documentation about the purpose of --no-client > d2c816a (#15496) Correctly determine timezone offset > e0577e1 (#15496) Adds tests for our Time#to_zaml serialization > > Erik Dalén (7): > a5b6c2a (#15989) Allow setting arity on functions > 9ed6fce (#15989) Set arity on functions > b1e6de2 (#15989) Tests for function arity > 7af8c6e (#15081) Make virtual resources work with create_resources > 51bbc2f (#4695) Puppet should not reset locale for services > d5a9ad0 (#18161) Honor CA SRV record for all types of CA requests > 15c4388 (#18162) Honor fileserver SRV record for file metadata requests > > Garrett Honeycutt (3): > 5025fa5 (#18298) Make useradd use osfamily not operatingsystem > fab9f76 (maint) Whitespace only cleanup of useradd provider > d7bbaa2 (#18298) Use `==` not `include?` in useradd provider > > Gary Larizza (1): > 4bfafdb [12833] Refactor directoryservice user provider > > Henrik (1): > 1399c94 (Maint) fixing all lint warnings > > Henrik Lindberg (17): > b22eb3c (#4388) Fix false negative test using removed authconfig setting > 5a29b81 Make spec_helper manage tmpdir. > 4dd67d9 (#17844) Change 'my' to 'ruby_eval' for evaluation in > Object's scope. > ab0d104 (#17845) - Add YARD doc to [] and []= in scope (= API) > 2c8fc1e (#17845) Add @since 3.0.x EXPERIMENTAL to Puppet::DSL > (transitive). > 882a457 Correct change of [] and []= to have additional options. > 61bdb05 (yardoc) Correct @since information in the Ruby DSL files. > 8703898 (yardoc) Fix Ruby DSL yardoc. > bd4a566 (yardoc) Add @status (transitive) and @comment (hidden) doc tags. > 1c26453 (yardoc) Refactor status for Puppet DSL; from @since to @status. > 6bbec30 (#16753) Add write only YAML cache for nodes. > b530a1d (#16753) Add acceptance test for write only yaml cache. > 6b2ab70 (#16753) Make it possible to turn off the woy cache. > 4025e44 (#16753) Fix issue with facter terminus not being set to yaml. > b3bcb6d (maint) Fix spelling error in message for interrupt. > a8f6b71 (#17994) Fix wrong (decimal) mode causes sticky bit to be set. > 79889af (#18023) Document user facing classes using yardoc and show api. > > Hunter Haugen (1): > a8aef51 (#10963) Collector overrides should work in Ruby 1.9 > > Jeff McCune (19): > 58b78c8 Revert "Revert "Merge branch > 'fix/3.x/7316_load_faces_from_modulepath_try3' into 3.x"" > 9b16fe0 (#7316) Add spec coverage for > Puppet::Application::Master#app_defaults > 3b7977a (#7316) Do not set default values for confdir and vardir > in the master > 217c396 Revert "Merge pull request #1190 from > jeffmccune/fix/master/7316_load_faces_from_modulepath_try4" > 3350feb (maint) Update mailmap for git shortlog > 7174058 (#15081) Update create_resources() inline documentation > 96dfb12 (maint) Add expectation pip does not use -e flag > f04763a (maint) Document Puppet::Parser::Functions.newfunction > 7f6adf1 Improve Puppet.version API to help automate releases > f980e17 (maint) Fix spec failure in hiera_spec > 62d36c9 (maint) Fix spec failure in hiera_spec try 2 > 4573e70 (maint) Update bundle dependencies > 1227c5f (maint) Skip IPv6 examples that cannot pass on MRI 1.9.3-p327 > e58102e (maint) Use conditional pending mechanism for ruby issue 7477 > 2c220ca Fixup use of conditional pending > 3b75ad2 (maint) Add Travis CI Support > 625b85f Future proof authstore ruby issue 7477 > 0350afd (maint) Add Travis CI support to active branches > 8e38dd9 Relax gem dependencies on Facter and Hiera > > Joachim de Groot (1): > bf901d0 Add support for DragonFly BSD. > > Josh Cooper (24): > 7ddfcca Maint: Refactor code for loading ssl files > beaea04 Maint: Cleanup order dependent test failure > 386293f Maint: Fix poorly mocked test > 4cbeaba Maint: Fix typo > 66afb1a (#7316) Ensure changes to mutable CommandLine wrapper > don't affect ARGV > bc11a77 (#7316) Restore unknown subcommand behavior > b240673 (#7316) Add method to expand autoloaded paths > 070cf4a (#18041) Remove Autoload.list_loaded method > cdd3385 (#7316) Refactor listing and requiring of applications > 38571f5 (#7316) List faces using an autoloader > 4f99f25 (#7316) Append module plugin directories to $LOAD_PATH > 6131fb6 (#7316) Warn if script action is reloaded > 182071c (#7316) Add acceptance test for loading face from module > 9fc77df Maint: Skip yaml/timezone specs on Windows > 0cf232b Maint: Only validate that 6 digits of precision can be > roundtripped > 3bd5e67 (#15529) Initialize settings before executing puppet specs > 704643b Revert "(Maint) Remove unused method sectionlist" > 5b554c2 Revert "(Maint) Remove unneeded parse_file method" > 19307a9 Maint: Cleanup spec test > 2fe21cc Maint: Remove duplicate tests > 2ec0005 (#17994) Add tests for directory creation > 7e3e79d (#17994) Rework symbolic mode acceptance test > 076a5d5 (#17994) Generate a new file and dir each time > 8b740ef (#17994) Handle setgid bit on Solaris specially > > Lauri Tirkkonen (1): > 49aed48 (#17861) start agent with no options on Solaris > > Mateusz Lenik (1): > c71da18 Add new Ruby DSL by Mateusz Lenik. > > Matthaus Owens (5): > 14a23bc (maint) Remove non-existent files from puppet.spec.erb > 1d2660a (maint) Remove xargs rm on empty file list from puppet.spec.erb > fbd859f Warn when using --[no-]tests flags in install.rb > dd66ae9 Add postflight for OSX packages to add puppet user, group > a5ebbcf Update PUPPETVERSION to 3.1.0-rc1 > > Michael Hall (1): > 2aa2e40 Clarifying description for key attribute. > > Moses Mendoza (1): > b73b289 (#18394) Remove puppet-queue.conf from redhat spec > > Nick Fagerlund (14): > 5a52dd6 (#4388) Remove the dead `authconfig` setting > e45fbc1 Maint: Document every terminus, especially static_compiler > 96fea41 Docs: Clarify that the "puppet" filebucket is magic to > the static compiler > 87ee7db Maint: Remove example namespaceauth.conf files > dad411e Maint: Remove outdated example puppet.conf > 2f3e5eb Maint: Remove a lot of messy and ancient do-nothing code > from examples > 30d122d Maint: Remove conf/epm.list > 604e568 Maint: Move example fileserver.conf and tagmail.conf files to > conf > d6b44bc Maint: Remove "ghost file" to obtain extra power from > deathless wraiths > 966d6ab Maint: Remove mac_dscl and pkgdmg examples > f2505b9 Maint: Remove sample_module example > 1fbb4dc (#17448/#17449/#18045) Update fileserver.conf and > auth.conf examples > c43cb68 Maint: Improve example tagmail.conf file with comments > ade52f7 Maint: Remove example puppet-queue.conf file > > Nick Lewis (1): > 57e1db0 Keep Scope#[]/[]= signatures the same as lookupvar/setvar > > Patrick Carlisle (10): > af4f755 Whitespace and formatting cleanups > 368587a Don't remove validate_arguments from backtraces > a0bb51b Get YARD for the Puppet module to show up correctly. > 72307e1 Fix Puppet::Parser::Functions.arity > 0947915 Flesh out documentation for Puppet::Parser::Functions > 67d6b6f Add docs for lookupvar > a576f25 Begin exposing Puppet::Type as public API. > 314b506 (#18023) Preliminary YARD docs for Faces > 59c8729 (Maint) Only show YARD docs for methods tagged with @api > 7490e18 (Maint) Use --api instead of generic --query in yardopts > > Paul Morgan (1): > a58e4db tagmail: s/reportform/reportfrom/ > > Peter Eisentraut (1): > c018d2d Make envpuppet print warning to stderr > > Rahul Gopinath (2): > 24dce7c (#16120) ips package provider gets feature holdable. > ba3c2a9 (#16120) ips package provider gets feature holdable. > > Ryan 'Gozar' Collins (1): > 33a398a Bug #17898 - pkgdmg provider broken since version 2.7.13 > under OS X 10.5 Leopard http://projects.puppetlabs.com/issues/17898 > > Ryan Uber (1): > d3f6f67 Fix for logdir perms regression in puppet.spec.erb (#17866) > > Steven Lindberg (1): > 7825e9d (#7962) Added description of 'duration' settings format. > > jmccann (1): > 0f408e9 (#16112) Add Augeas clearm command support > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" group. > To post to this group, send email to puppet-...@googlegroups.com. > To unsubscribe from this group, send email to > puppet-dev+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-dev?hl=en. > Eric Sorenson - eric.soren...@puppetlabs.com #puppet irc: eric0 -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.