Hiera 1.2.0 is a feature release in the 1.x series with
new features and bug fixes.
Downloads are available at:
* Source:
https://downloads.puppetlabs.com/hiera/hiera-1.2.0.tar.gz
RPMs are available at
https://yum.puppetlabs.com/el or /fedora
Rubygem available at
http://rubygems.org/gems/hiera
Debs are available at
https://apt.puppetlabs.com
Mac package is available at
https://downloads.puppetlabs.com/mac/hiera-1.2.0.dmg
Please report feedback via the Puppet Labs Redmine site, using a
affected version of 1.2.0:
http://projects.puppetlabs.com/projects/hiera/
Fixes targeted at the final of this version in our bug tracker:
http://projects.puppetlabs.com/versions/332
========================
## Hiera 1.2.0 Release Notes ##
========================
# Features
Add deep-merge feature to backend lookups
- Config option :merge_behavior => :native|:deep|:deeper
- Add optional requirement on deep_merge gem to support
:deep and :deeper options
- Update Yaml backend to use Backend.merge_answer
- Update Json backend to use Backend.merge_answer
(#16644) Add a generic file cache
Add a general file cacher in Hiera::Filecache based on the work that was
done in the YAML backend.
Adjust the YAML and JSON backends to use this cache
(#18718) Create logger to handle fallback
Sometimes a logger has been configured, but is not suitable for being
used. An example of this is when the puppet logger has been configured,
but hiera is not being used inside puppet. This adds a FallbackLogger
that will choose among the provided loggers for one that is suitable.
# Bug Fixes
(#17434) Detect loops in recursive lookup
The recursive lookup functionality was vulnerable to infinite recursion
when the values ended up referring to each other. This keeps track of
the names that have been seen in order to stop a loop from occuring. The
behavior for this was extracted to a class so that it didn't clutter the
logic of variable interpolation. The extracted class also specifically
pushes and pops on an internal array in order to limit the amount of
garbage created during these operations. This modification should be
safe so long a new Hiera::RecursiveLookup is used for every parse that
is done and it doesn't get shared in any manner.
(#17434) Support recursive interpolation
The original code for interpolation had, hidden somewhere in its depths,
supported recursive expansion of interpolations. This adds that support
back in.
=====================
## Hiera 1.2.0 Changelog ##
=====================
Andrew Parker (13):
26311b7 (#18718) Load logger classes eagerly
2520aa3 (#18718) Create logger to handle fallback
074f5c8 (#18718) Enable console fallback when logger not suitable
8db2949 (#18718) Implement suitablity check for puppet logger
dc98e2d (#17434) Add YARD for #parse_string
06dcf8e (#17434) Clarify tests for #parse_string
dc6c538 (#17434) Add tests to exclude unwanted lookups
3a2660d (#17434) Stronger assertion about how keys are looked up
4d85f92 (Maint) Describe desired behavior in backend specs
023001d (#17434) Simplify string interpolation
9a3f1fd (#17434) Simplify logic around looking up values
453b489 (#17434) Support recursive interpolation
9a62bfd (#17434) Detect loops in recursive lookup
Jeff McCune (4):
b2623d9 (maint) Add Travis CI Support
fcecdbf (maint) Add Travis CI support to active branches
5262050 (maint) Add Ruby 2.0.0 to Travis build matrix
d9db368 Add contributing document to Hiera
Justen Walker (7):
4ac8372 Add deep-merge feature to backend lookups
3da83b2 Allow both symbols and strings when deciding behavior of
merge_answer
950076b Fix undefined method `[]' for nil:NilClass error in
yaml_backend_spec.rb
b317d10 Add deep-merge feature to backend lookups
13b79ef Allow both symbols and strings when deciding behavior of
merge_answer
d84cd11 Fix undefined method `[]' for nil:NilClass error in
yaml_backend_spec.rb
a4bbc76 Fix #19792 - cryptic error when missing deep_merge gem
Matthaus Owens (7):
5828192 (maint) Remove natty from build_defaults, changelog
2d9f4f1 (maint) Remove rc_mocks from build_defaults
7097b58 (maint) Add f18 mocks to build_defaults
0fd72a1 (packaging) Update lib/hiera.rb for Hiera 1.2.0-rc1
6414532 (packaging) Update lib/hiera.rb for 1.2.0-rc2
8f25616 (packaging) Update lib/hiera.rb for 1.2.0-rc3
636ad58 (packaging) Update lib/hiera.rb for 1.2.0
Moses Mendoza (1):
b8f77fb [packaging] Update mocks for rpmbuilder mock format
Patrick Carlisle (3):
ea485ab (#16089) Reduce scope lookups in parse_string
3c24788 (#16089) Reduce scope lookups in parse_string
bd2e3d3 (#17434) Revert "Merge pull request #29 from
timurbatyrshin/puppet-style"
R.I.Pienaar (2):
c8e3e90 16644 - should have a generic file cache
aceca79 (#16644) Add a generic file cache
Sharif Nassar (1):
ab7fc5a Spelling.
floatingatoll (1):
e3c8045 comment typo fix in lib/hiera/backend.rb