We are proud to announce Hiera 1.0.0 is available. Downloads are available: * Source http://puppetlabs.com/downloads/hiera/hiera-1.0.0.tar.gz * Apt and yum repos * Mac packages http://puppetlabs.com/downloads/mac/hiera-1.0.0.dmg * Gem http://rubygems.org/downloads/hiera-1.0.0.gem It includes contributions from the following people: Craig Dunn, Gary Larizza, Kelsey Hightower, Ken Barber, Matthaus Litteken, Michael Stahnke, Mitchell Hashimoto, Moses Mendoza, Patrick Carlisle, Roman H, Timur Batyrshin, and Will Hopper See the Verifying Puppet Download section at: http://projects.puppetlabs.com/projects/puppet/wiki/Downloading_Puppet#Verifying+Puppet+Downloads Please report feedback via the Puppet Labs Redmine site, using an affected version of 1.0.0: http://projects.puppetlabs.com/projects/hiera ## Hiera 1.0.0 Release Notes ## (#14867) Add windows support Without this patch Hiera does not work on Windows and fails with the following error: Failed to start Hiera: RuntimeError: Config file /etc/hiera.yaml not found Following the standard set by the Puppet installer, Hiera now uses the following configuration and var directories on Windows: C:\ProgramData\PuppetLabs\hiera\etc C:\ProgramData\PuppetLabs\hiera\var This patch introduces a new `Hiera::Util` module which utilizes the `win32-dir` gem for locating the correct base directories on Windows. (#12122) Correctly fall through backends during loop When calling lookup for hash or array types Hiera would incorrectly return an empty result from a backend that did not find a value instead of checking the next backend. This happened because the empty hash and empty array were used internally to represent a failed lookup. This changes it to use nil everywhere. A distinct sentinel value would be ideal, but since Hiera currently has no way to communicate to the outside world the difference between lookup up nil and a failed lookup, it is sufficient to use nil internally. (#12122) Merge arrays and hashes across backends This implements merging for arrays and hashes across the returned values for all backends, using the same logic as merging within a backend. (#14514) Use default config when hiera.yaml is missing Hiera no longer raises an exception when the hiera configuration file is missing; instead log a warning and use the following default config: { :backends => ["yaml"], :hierarchy => "common", :logger => "console" } This patch includes updated tests. Commit caching on YAML Backend Previously, the YAML backend would read from disk every time it needed to check a hierarchy. This commit introduces memoization through an instance variable so a file is read only if the instance variable is empty, and only if the file has not changed. To check if the file has changed (or if the cache is stale), we stat the file and compare the mtime, size, and inode. Tests have been added for this new functionality. Fix Bugs and Commit Tests (#13641) Fix Hiera::Backend#parse_string to support :undefined in extra_data The method #parse_string supports an extra field ''extra_data'' which is used by hiera-mysql. When combined with hiera-puppet, sometimes the symbol :undefined is returned, to signify that the data is undefined in Puppet. While we do have tests and code to capture this state, the method does not support falling back to ''extra_data'' in this situation. This patch supports the proper fallback to extra_data if it sees the special symbol :undefined, so that these backends can be properly combined. ### Packaging Notes ### Shift to using packaging repo for packaging tasks This release introduces Hiera''s use of the packaging repo at https://github.com/puppetlabs/packaging for packaging automation. From source, doing a rake package:bootstrap clones packaging tasks into ext/packaging and adds rake tasks for packaging of tar, gem, srpm, rpm, and deb using tools such as rpmbuild and debuild, as well as puppetlabs-namespaced tasks that use chroot environment tools and are keyed to specifically interacting with the puppetlabs environment. The packaging repo works in tandem with the new package-builder modules designed to set up hosts for packaging, https://github.com/puppetlabs/puppetlabs-rpmbuilder, and https://github.com/puppetlabs/puppetlabs-debbuilder. This is very much a work in progress, but a model for how packaging automation could improve across many Puppet Labs projects. ## Hiera 1.0.0 Changelog ## Craig Dunn (1): 122b891 (#13641) Fix Hiera::Backend#parse_string to support :undefined in extra_data Gary Larizza (1): e6dea8e Commit caching on YAML Backend Kelsey Hightower (16): 794265f (maint) Code base cleanup, use 2 space indention. 602c526 (maint) Fix failing spec test on Ruby 1.9.3 b7b3280 (maint) Make noop logger work on Ruby 1.9.x 540d2d6 (#14460) Add Puppet parser functions 9808a64 (#14514) Use default config when hiera.yaml is missing 7312a95 (maint) Add Hiera acceptance tests 0067cd2 (maint) Additional tests for Hiera array and hash lookups 22a98ee Remove Puppet parser functions b6218b9 (maint) Hiera should raise an error when config is missing cdd7364 (#14867) Add windows support 1b7f787 Add specs for Hiera::Util 07366d8 Use File::ALT_SEPARATOR to test platform 92a148f (maint) Fix failing Hiera::Util specs fcd3d2c (maint) Hiera now has a LICENSE file 4698cf1 (#15105) Update README YAML examples 6887137 (maint) Add Getting Started tutorial Ken Barber (1): f6c9f5d (#14124) Load rake tasks directly to fix tests for Ruby 1.9.x Matthaus Litteken (26): 67f91d6 (#14147) Handle lack of rubygems gracefully 7ef2821 (#14148) Add docs to Hiera packaging 82881e3 (#14150) Use tar_gz instead of tar 24ef7b9 (#13600) Monkey patch mktmpdir on ruby 1.8.5 29c5ad7 Add hiera.spec for building hiera on redhat f697b7f Updated hiera.spec to include puppet functions and put in the right place. dbf9fe3 Update README to reference deb and rpm packages 6de3d4c Moving CHANGES.txt to CHANGELOG. Updating CHANGELOG with git log from initial commit to v0.3.0 tag. fa3081c Updating hiera.spec, CHANGELOG for Hiera 1.0.0rc1 361dfc6 Updating CHANGELOG, ext/redhat/hiera.spec, lib/hiera.rb for 1.0.0rc2. fe3d509 Remove empty Puppet class definition fd644b6 Add require hiera/backend to test 10f930f Add mac packaging to hiera 1df7201 Update mac packaging to dynamically generate preflight 6910d2d Move conf to ext, replace spec with erb 182fa17 Add debian packaging for hiera e927da2 Add package task for deb, srpm 2b8f0d3 Updating changelog for 1.0.0rc3 d0fcc57 Add default config to hiera ca47463 Remove datadir value in hiera.yaml 7947dd6 Consolidate changelog, update erb templates 091fea3 Overhaul Hiera packaging 772ff45 Update CHANGELOG for 1.0.0rc4 4332f46 Fix debian package task to create correct orig.tar.gz and use debversion in directory creation. ba34a74 (#15291) Add Vendor tag to Hiera spec file 1a4214a Updating CHANGELOG for Hiera 1.0.0 Michael Stahnke (1): ddd5b66 Fix VERSION contant in lib/hiera.rb Mitchell Hashimoto (1): cfd0925 Additional logging when finding keys in the YAML backend Moses Mendoza (9): e1922ca Change debhelper depends to 7 c5ff482 Rework packaging to use packaging repo 7b6766a Fixup redhat spec erb for F17 6f2da41 Change debhelper depends to 7 1084d13 Add apple packaging file_mapping file 28cef87 Use read-only packaging repo for public access f21f908 Replace sed with real vars in preflight.erb 451fd0c fix redhat spec release template variable fba40d1 Fix yum repo path in yaml file Patrick Carlisle (2): 480d86c (#12122) Correctly fall through backends during loop 16c3dd3 (#12122) Merge arrays and hashes across backends Roman H (1): 50f9771 hiera working on ruby 1.9.2/1.9.3, issue #10975 (http://projects.puppetlabs.com/issues/10975) Timur Batyrshin (1): 3ec4165 match data in puppet ${::fact} style to get rid of puppet deprecation warnings Will Hopper (1): 22f1775 Update Debian packaging rake task to correctly create the orig.tar.gz -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.