(packaging) Update PUPPETVERSION to 3.2.0-rc1
(#17811) Add test for group name to gid conversion

On OS X, the primary group for a user must be specified as a numeric id and not
a string. There was code to ensure this happens, but it was guarded by a faulty
logic statement and there was no test to catch the bug.
(#17811) Ensure PrimaryGroupID is converted to Int

On OS X, the PrimaryGroupID for a user must be an integer. Ensure this happens
by running `:gid` attributes through `Puppet::Util.gid`.
Maint: Lambda arity must match number of arguments

Running `puppet apply --parseonly` fails on ruby 1.9, because the arity
of the option method was 0, yet was being invoked with an argument, the
manifest to parse. Under ruby 1.8, this mismatch was allowed, but not
1.9.

See acceptance/tests/ticket_6928_puppet_master_parse_fails.rb
(#20303) Don't rely on automatic array conversion

Previously, we were unwittingly relying on ruby's automatic conversion
from an array to a string, which fails in ruby 1.9. This was noticed
when running `puppet resource user` as it reported all users were
absent.

Now we explicitly convert from an array to a string.

This commit doesn't have any tests, because the existing acceptance
tests catch this when run under 1.9
(#20284) Output one item per line for arrays in console output

To make it easier to read, pipe output and make shell loop from output
from faces it is good if they are printed one item per line for arrays.
Merge pull request #1608 from joshcooper/ticket/stable/20303-user-provider-ruby19

(#20303) Don't rely on automatic array conversion
Merge pull request #1606 from dalen/array_render_as_s

(#20284) Output one item per line for arrays in console output
Merge pull request #1600 from Sharpie/17811-os-x-fix-gid-conversion

(#17811) Fix group id conversion for OS X users
Revert "(Maint) Remove disused puppet.gemspec"

This reverts commit 588b874f2fc42cf1b9d21016aa36d98288df2479.

This commit is being reverted because the change to remove the gemspec
was based on incorrect information.  According to the commit message,
the gemspec file was removed for two reasons.  First, it was thought the
gemspec was not being used for anything other than local development of
Puppet.  Second, the gemspec produced a warning about redefining the
PUPPETVERSION constant.

The gemspec is actually being used in our automated testing of other
projects, specifically stdlib.  The standard library testing matrix uses
the gemspec located in Puppet to satisfy the dependency of stdlib on
Puppet.  The gemspec allows the `stable` and `master` branch to be used
in addition to the officially released Puppet gem on rubygems.org.

Second, the warning is a not a result of the gemspec itself but rather a
result of the way the gemspec is loading 'puppet/version'  We can avoid
the warning while also preserving the gemspec.
(maint) move puppet.gemspec to .gemspec

Without this patch some users assumed the puppet.gemspec is intended to
build the Puppet Gem.  This is a problem because the packaging rake
tasks are what actually build the official Gem.

This patch addresses the problem by moving the gemspec to a hidden file
so that other people are less likely to be confused by the presence of
the gemspec file.
(maint) Fix PUPPETVERSION warning from gemspec

Without this patch Ruby issues a warning about the redefinition of the
PUPPETVERSION constant.  This warning is caused by the gemspec using a
fully qualified require statement instead of a relative $LOAD_PATH based
require.

This patch fixes the problem by catching the LoadError and adding
Puppet's `lib` directory to the head of the $LOAD_PATH.  This change
causes the `require` statement to correctly load puppet/version only
once, which avoids the redefined constant message.

In addition, a comment about the intended use of the gemspec has been
added to help avoid confusion.  This gemspec is intended to allow third
party code to automatically satisfy their dependency on Puppet using
Bundler.  The gemspec is not intended to actually build the package.

Paired-with: Adrien Thebo <adrien@puppetlabs.com>
Merge branch 'restore_gemspec' into stable

* restore_gemspec:
  (maint) Fix PUPPETVERSION warning from gemspec
  (maint) move puppet.gemspec to .gemspec
  Revert "(Maint) Remove disused puppet.gemspec"
Revert "(Maint) Remove disused puppet.gemspec"

This reverts commit 588b874f2fc42cf1b9d21016aa36d98288df2479.

This commit is being reverted because the change to remove the gemspec
was based on incorrect information.  According to the commit message,
the gemspec file was removed for two reasons.  First, it was thought the
gemspec was not being used for anything other than local development of
Puppet.  Second, the gemspec produced a warning about redefining the
PUPPETVERSION constant.

The gemspec is actually being used in our automated testing of other
projects, specifically stdlib.  The standard library testing matrix uses
the gemspec located in Puppet to satisfy the dependency of stdlib on
Puppet.  The gemspec allows the `stable` and `master` branch to be used
in addition to the officially released Puppet gem on rubygems.org.

Second, the warning is a not a result of the gemspec itself but rather a
result of the way the gemspec is loading 'puppet/version'  We can avoid
the warning while also preserving the gemspec.
(maint) move puppet.gemspec to .gemspec

Without this patch some users assumed the puppet.gemspec is intended to
build the Puppet Gem.  This is a problem because the packaging rake
tasks are what actually build the official Gem.

This patch addresses the problem by moving the gemspec to a hidden file
so that other people are less likely to be confused by the presence of
the gemspec file.
(maint) Fix PUPPETVERSION warning from gemspec

Without this patch Ruby issues a warning about the redefinition of the
PUPPETVERSION constant.  This warning is caused by the gemspec using a
fully qualified require statement instead of a relative $LOAD_PATH based
require.

This patch fixes the problem by catching the LoadError and adding
Puppet's `lib` directory to the head of the $LOAD_PATH.  This change
causes the `require` statement to correctly load puppet/version only
once, which avoids the redefined constant message.

In addition, a comment about the intended use of the gemspec has been
added to help avoid confusion.  This gemspec is intended to allow third
party code to automatically satisfy their dependency on Puppet using
Bundler.  The gemspec is not intended to actually build the package.

Paired-with: Adrien Thebo <adrien@puppetlabs.com>
Merge branch 'restore_gemspec'

* restore_gemspec:
  (maint) Fix PUPPETVERSION warning from gemspec
  (maint) move puppet.gemspec to .gemspec
  Revert "(Maint) Remove disused puppet.gemspec"
(maint) Do not use a fake hiera version

Without this patch hiera master cannot be used from Git source to
execute in Bundler.  This is because Puppet incorrectly specifies a
dependency on Hiera 99.0.0 when the correct version of Hiera master is
currently "1.2.1"

This patch addresses the problem by simply removing the fake version,
allowing the correct version to satisfy the dependency.
Merge branch 'stable'

* stable:
  (maint) Do not use a fake hiera version
Merge branch 'restore_gemset_m'

* restore_gemset_m:
  (maint) Fix PUPPETVERSION warning from gemspec
  (maint) move puppet.gemspec to .gemspec
  Revert "(Maint) Remove disused puppet.gemspec"
  (#20284) Output one item per line for arrays in console output
  Maint: Lambda arity must match number of arguments
  (#17811) Ensure PrimaryGroupID is converted to Int
  (#17811) Add test for group name to gid conversion
  (maint) Update COMMITTERS with stable and master branch strategy
  (#11276) Tarball entries should be relative to the `pkg` directory
  (#20121) Invoke chkconfig with --check on SuSE
  (#3010) cron: allow the absent value for the "special" property