Announce: Puppet 2.7.20 Available

Skip to first unread message

Moses Mendoza

Nov 19, 2012, 9:25:30 PM11/19/12
Puppet 2.7.20 is a maintenance release for Puppet in the 2.7.x series
with bug fixes and backwards-compatible performance improvements
back-ported from the 3.0.x series.

Downloads are available at:
* Source

Windows package is available at

RPMs are available at or /fedora

Debs are available at

Mac package is available at

Gems are available via rubygems at
or by using `gem install puppet --version=2.7.20`

See the Verifying Puppet Download section at:

Please report feedback via the Puppet Labs Redmine site, using an
affected puppet version of 2.7.20:

To take a look at fixes targeted for this release, check out

## Contributors ##

Adrien Thebo, Andrew Parker, Ashley Penney, Branan Purvine-Riley, Dan
Bode, Daniel Pittman, Dominic Cleal, Dustin J. Mitchell, Eric
Sorenson, Eric Stonfer, Gleb Arshinov, James Turnbull, Jeff McCune,
Jeff Weiss, Josh Cooper, Ken Barber, Ken Dreyer, Lee Lowder, Markus
Roberts, Matthaus Owens, Michael Stahnke, Moses Mendoza, Neil
Hemingway, Nick Fagerlund, Patrick Carlisle, Roman Barczyński, S.
Zachariah Sprackett, Sean E. Millichamp, Stefan Schulte, Todd

## Special notes about 2.7.20 ##

Puppet 2.7.20 address,
which means if you had specifically enabled `managehome => true` for
user resources expecting it not to work on Windows, be aware that it
**works now** for both creation with `ensure => present` AND deletion
with `ensure => absent`. Previously deleted users will not have their
orphaned home directories removed, however.

Puppet 2.7.20 also addresses concerns regarding a change
introduced in Puppet 2.7.16, "b26699a (#10146) `-` is not legal in
variable names.", which disallowed the use of dashes in variable
names. Puppet 2.7.20 introduces a configuration option,
which can be set to `true` to restore earlier behavior, although this
is strongly discouraged. The option is set to false by default to
maintain current behavior.

(#10146) `-` in variable names should be deprecated!

In commit b26699a2 I fixed an accidentally introduced change to the lexer,
allowing `-` to be part of a variable name. That had lasted for
a while and
was surprisingly popular. It was also hugely ambiguous around
`-` as minus,
and led to all sorts of failures - unexpected interpolations to nothing -
because of that.

A much better strategy would have been to deprecate the feature,
issue proper
warnings, and include an option to allow users to toggle the behaviour.

Initially defaulting that to "permit", and eventually toggling
over to "deny",
would have made the whole experience much smoother - even if this
was totally
documented as not working, and was a clear bug that it changed.

So, thanks to prompting from Benjamin Irizarry, we do just that:
introduce the
configuration option, default it to "deny" to match current behaviour, but
allow users the choice to change this back.

Please be aware that allowing variables with `-` might break all sorts of
things around, for example, Forge modules though. Most people
write code to
the documented standard, and their code might well totally fail
to work with
this changed away from the default!

Signed-off-by: Daniel Pittman <>

## Puppet 2.7.20 Changelog ##

Adrien Thebo (1):
367926a (#15264) Custom title patterns can fail cryptically.

Andrew Parker (15):
65b35a8 (Maint) Simplify
9e26fe0 (#10915) Fix tests to work with new parameter checking
d2e5268 (#10915) Add test for provider throwing NoMethodError
b48a172 (Maint) Fix syntax and semantic erros in test
5e3fbca (Maint) Remove fragile test
dc50ec7 (#16922) Quote strings that contain ":"
13ab956 (#16791) Revert "Merge branch
'perf/2.7.x/backport-activesupport-hook-disabling' of into 2.7.x"
1e5baee (#16791) Revert "Maint: Fix intermittently failing spec test"
3cda4f4 (#16791) Revert "Merge branch
'feature/2.7.x/json-terminus-backport' of into 2.7.x"
aba3c67 (#16791) Re-instate deprecated symbolize and symbolizehash!
d892859 (#16791) Remove tests for unused behavior
bd0caf5 (#17260) Warn when variables contain hyphens
5c61f32 (#17260) Include link to information about deprecation
b5ed15b (#17458) Load 'puppet' at the right time
d16d357 (#17458) Add acceptance test for executing external subcommands

Ashley Penney (1):
5ceb55c (Maint) Add logging for when Puppet is enabled/disabled.

Branan Purvine-Riley (1):
dff6e53 (maint) Confine pty-based test to non-Windows hosts.

Dan Bode (1):
0524a0a (#7422) Support arrow syntax with metaparams

Daniel Pittman (43):
b8ca748 (#11727) Support STDIN for `puppet parser validate`
536b68c Check that function loading worked correctly.
f10d364 maint: remove .rspec entirely
8fa6575 Make SELinux internal helper functions private.
13cb623 (#8714) Don't follow symlinks in SELinux FS detection
294fae2 Port the SemVer test from Test::Unit to RSpec.
d260b90 RSpec 3 is deprecating `expect {}.should` - respect that.
81c8afa Skip symbolic link demanding test on Windows
0e7fc8d Update copyright years in LICENSE
f0ef301 (#16330) Update ZAML to latest upstream.
312b467 Git ignore an .rvmrc file in the root of the project
fe1f4a2 (#4680) Reject CA network operations when master CA is disabled
a0287bf Implement a JSON file terminus to mirror YAML.
141c83b Add catalog JSON terminus to improve performance.
c0e5f4d Implement Symbol#intern when it is missing.
fbd5105 Use `intern` rather than `symbolize` it Puppet::Type
4d4a75a zaml: statically determine the to_ascii8bit implementation.
fd8343a zaml: unify on a single definition of `to_zaml` for Symbol
8173a6e Avoid object creation/destruction when possible.
aca7959 type: memoize key_attributes for types.
9176f5c tagging: document why fixing this horror is hard.
54c4f0a lexer: remove some unused stats collection
397dfa8 monkey_patch: cache Symbol to_proc result.
89e0f14 type: support implicit "identity" transformation
912ed34 FileCollection is a memory loss, not a memory win.
275c94d Eliminate remaining uses of FileCollection.
58f6ca1 parser/files: use a cheaper test for "is this path absolute?"
20efe94 util: don't rebuild regexp every time we invoke absolute_file?
9099a42 zaml: don't sort object attributes for output
e70273b whit: cache the `to_s` result.
33c127b zaml: speed micro-optimization for Time output
b54f8cd log_paths: memoize the entire value, not just part of it.
314c3da file_serving: avoid rewriting paths if possible.
f60e402 tagging: use a static regexp rather than rebuilding it
69315c2 Implement `Fixnum#ord` for Ruby 1.8.5
83defc0 zaml: rework strings for correctness and speed
4f6289b zaml: add whitespace for readability.
fbca3b0 zaml: avoid calling emit when we don't have anything to output
67e5957 zaml: don't use backreferences on strings
68dea3d zaml: handle multi-line map keys and array values correctly.
5e7cce5 Disable ActiveSupport::Dependencies hooks.
65b5c5c Eliminate `symbolize` everywhere, and remove it.
5ee2558 (#10146) `-` in variable names should be deprecated!

Dominic Cleal (2):
c6e1aa3 (#14822) Re-evaluate features if they previously were false
1a2e8fc (#14822) Use feature confine for feature tests during run

Dustin J. Mitchell (4):
da7cd8e Don't mask NoMethodErrors
cb3c912 (#16208) Better error messages for failed parameter validation
f30af22 (#16208) use #{ref} instead of #{type} #{title} as
suggested by dpittman
d9ab06f (#16208) fix tests

Eric Sorenson (4):
d2012ae (#15797) Change the argument to chkconfig from 'on' to 'reset'
700caba (#15739) Bump report_version since #10064 change its format
775d0dc Revert "(#15797) Change the argument to chkconfig from
'on' to 'reset'"
0620497 (#15797) Update chkconfig test to reflect reality

Eric Stonfer (1):
e9d10ca (#15346) add --source to the gem list command

Gleb Arshinov (1):
c8152d4 (#15920) Make forward-sexp ignore comments in puppet-mode.el

James Turnbull (1):
fbede51 Fixed #11686 - Updated documentation for exec timeout

Jeff McCune (29):
9c60ed3 (Maint) Whitespace cleanup of
9862940 Add HOWTO hint on topic branches in CONTRIBUTING
cf04e5e Make the example in CONTRIBUTING imperative and concrete
6f7303a Mark git diff --check as inline code
07aeef3 (#15940) Add test coverage for rdoc exclude option
dd25c9e (#15346) Add spec test for --source when checking latest
83cfe9d (Maint) Fix rspec options file
1c1a383 (#15464) Make contributing easy via bundle Gemfile
b33d517 Move Puppet version into lib/puppet/version.rb
07f0b0e (#15464) Make Puppet usable as a Gem from source
d7cb3c7 (#15464) Make Puppet.version settable via Puppet.version=
76ef99b Revert "Merge branch
into 2.7.x"
54ea4fe Revert "Revert "Merge branch
into 2.7.x""
48a9cc2 (#15464) Exclude gem command from bundler
7ca6b70 (#15797) Add test coverage for redhat service provider
5ef0df0 (Maint) Whitespace only cleanup
65dbdea (#15797) Disable RedHat services in all run levels
576fd56 Whitespace only cleanup
1820927 (Maint) Stop watchr from reading non-existent spec.opts
1a432fd (#15193) Document how to use the static compiler
2bbc4e4 Document the different forms of catalogs to help test writers
58f9679 (#15193) Add spec test coverage for static compiler
94aaf15 (#15193) Fix StaticCompiler#store_content
2b06b7e (#15193) Fix windows failing on unix style paths
315ebad (#2888) Add settings catalog info to README_DEVELOPER
61a34d3 (#2888) Fix race condition with puppetdlockfile
e6865c4 (maint) Update mailmap for git shortlog
b55d885 (#16798) Update revocation by serial number documentation
92f0688 (#16798) Add more tests to cover revoke by serial number

Jeff Weiss (5):
6dcf122 (#15731) Full certificate metadata for pson
b61d041 (#15731) explicit fingerprint digest for pson
60a6a2a (#14515) Tests fail with mocha 0.11.4
7b4ac10 (#15731) Move explicit fingerprints to hash
f9463ea (#15731) Add clarifying comments to host.rb

Josh Cooper (32):
ed22b06 (maint) Include backtrace in re-raised exception
c95bda7 (maint) Whitespace cleanup
f2a4cca (maint) Remove spurious `puts` line
bbdbb06 (maint) Consolidate flat file tests
d9c7698 (maint) Refactor filetype specs
7a72361 (#14283) Raise an error when crontab returns non-zero on AIX
1d80007 (#14283) Call Tempfile#close and #unlink separately
86dac63 (Maint) Skip crontab filetype tests on Windows
e067c2a (#15693) Allow restart command to be specified
4ffc02d (Maint) Enable colorized rspec output on Windows
13e0109 (#15591) Skip test that causes segfault on Windows
1075b74 (#15560) Refactor LogonUser
67b9227 (#15560) Create the user's profile if managehome is true
5e84c97 (#15560) Delete user's profile after deleting account
489352b (#16119) Recognize carriage return escape sequence
b67e4dc (#16019) Don't add Unix paths to Windows search path
1a9d122 Maint: Fix leaked tempfile handle
a753b86 Maint: Fix inconsistent expect-should usage
bd875f5 (#16208): Correct spec test to match new failed parameter message
68c61fa (#16347) Replace \x92 character with apostrophe
e84f448 (#16347) Qualify references to windows-pr gem
e45961f Maint: Fix intermittently failing spec test
da3aea4 (#16581) Refactor code for converting string and binary sids
be848e6 (#16581) Use win32-security gem to resolve SIDs
3d360e7 (#16581) Documentation changes
9291ae2 (#16581) Use native Win32 APIs to resolve SIDs in providers
c86e685 (#16581) Use native Win32 APIs to resolve SIDs in file provider
c60a82d (#16581) Deprecate sid_for_account
f08fc39 (#16581) Refactor code for sid validation
5c96254 (#16581) Fix mis-stubbed test
28229d7 Revert "(#17458) Load 'puppet' at the right time"
fd92eb1 (#17458) Partial revert of "don't rebuild regexp every time"

Ken Barber (1):
fcd4957 (#15521) Convert to using host stub wrapper

Ken Dreyer (2):
e0b1e40 (#7442) solaris: add tests for password_max_age attribute
08c62da (#7442) solaris: return "-1" for password_max_age when
password aging is disabled

Lee Lowder (1):
f08dd53 (#15940) Update puppet doc to ignore files and templates
in modules

Markus Roberts (1):
368a1cb Fix for #3984 -- SELinux warns about changes it doesn't
actually make

Matthaus Owens (2):
f8a4ddc (#16376) Fix rails compatibility layer for activerecord < 3.0
858e4b4 Update Rakefile to make rspec optional

Michael Stahnke (1):
0c1991f Remove the asc file from the source of spec file

Moses Mendoza (16):
77afeba Add yaml files
db74432 Switch off building gem for 2.7.x
5dc896b Move redhat spec file to erb template in ext/redhat
302248b Add debian packaging artifacts and template
a670a4f Move and template all apple pkging artifacts to ext/osx
b1648b2 Fixup Rakefile to use packaging repo
2ea1e98 Add in manpage listings that should have been there
67f8b0b Remove broken dual build-requires of facter in redhat spec
82ebe28 Remove version check regex from puppet
0a72c5c Fix yum repo path in yaml file
a1c4467 Fixup apple package plist for use with packaging repo
b2e31b5 fail better in package repo rake tasks
6da5aa8 Replace dashes with dots for gem version
b1adcd2 Fix build targets for 2.7.x
fc6571e rm packaging artifacts in rpm spec, debian rules
1d01f2a Update lib/puppet/version.rb for 2.7.20-rc1

Neil Hemingway (1):
c305a32 (#11042) indirect via the property to convert group
names to numbers

Nick Fagerlund (4):
adfc27e Maint: Fix borked help/man output for node clean
b2c3675 Fix typo in create_resources function's description string
7efbfc6 Maint: Large or complex HEREDOC strings w/ no
interpolation should be single-quote type
35b9ff2 Edit description of hyphenated variables compatibility setting

Patrick Carlisle (13):
6d3d591 Fix stubbing on nil in some specs
9c361f1 Don't require mocha in spec_helper
fdb8ca3 Rename specs to end in _spec.rb
abc7885 Avoid stubbing Thread::new due to issues in newer mocha
279c323 Clear Environment.current when calling Environment.clear
a7d6c3d Add Puppet::Parser::Functions::clear for specs
9815de4 Convert expect..should to in configurer spec
b47e910 Use TestHelper in old unit tests
0a41053 Always set log functions on root environment
f9cfec7 (#15912) Make function access consistent
6f556ef Don't pollute Functions namespace in shellquote function
ca36893 Backport fix for commandline spec
14d1fdc Don't make executables in /tmp in posix_spec

Roman Barczyński (1):
31fac81 (#15665) Fix issue with eix-update on newer eix (>=0.25.2).

S. Zachariah Sprackett (1):
04ba8e2 Add stdin parsing to puppet parser validate

Sean E. Millichamp (1):
5e8236f (#16798) Fix certificate revocation by serial number

Stefan Schulte (9):
d2b4f08 maint: Refactor suntab and aixtab filetype
4cd6686 (#14283) Fix suntab filetype when run as normal user
e111f56 maint: Rearrange tests in useradd unittests
03c7ddf1 maint: Reduce stubbing in useradd spec
5e64c1f (#15959) Do not support system user on Solaris and HP-UX
c50f552 maint: Rearrange tests in groupadd unittests
c404d99 maint: Reduce stubbing in groupadd spec
6350e6c (#15959) Do not support system group on Solaris and HP-UX
da24d54 (#15959) Fix groupadd/useradd spec when run on non-linux systems

Todd Zullinger (1):
0cc80ad Preserve timestamps when installing files
Reply all
Reply to author
0 new messages