Replace dashes with dots for gem version

When switching out to using git-describe for versioning from
source, gem versioning breaks because dashes are not allowed.
This simple fix replaces the dashes with dots, which are.
Note that in a merge-up to 3.0.x, this commit will conflict.
Default to 'ours' in a merge-up, this file does not even exist
in 3.0.x and shouldn't.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Preserve timestamps when installing files

Without the preserve option, ruby's FileUtils.install method uses the
current time for all installed files.  For backup systems, package
installs, and general pedantic sysadmins, preserving timestamps makes a
small improvement in the world.
(#15513) Clarify target attribute for cron

Without this patch applied the behavior of `target` in the cron type isn't made clear.
This is a problem because users report trying to use a file as the target instead of
the intended username, producing unexpected results.

This patch clarifies the behavior of `target` by improving the description docstring.
Merge branch 'pdxmph-cron_type' into 3.0.x

* pdxmph-cron_type:
  (#15513) Clarify target attribute for cron
Merge pull request #1247 from MosesMendoza/maint/2.7.x/preserve_timestamps_install.rb

Preserve timestamps when installing files
Merge pull request #1254 from MosesMendoza/maint/2.7.x/fixup_gem_task

Replace dashes with dots for gem version
Fix build targets for 2.7.x

This commit revises the lists of cows and mocks to build against to remove
redundant and unnecessary targets given Puppet is noarch.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
rm packaging artifacts in rpm spec, debian rules

The 2.7.x packaging will include misc packaging artifacts we shouldn't
ship. This commit removes them in packaging.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #1255 from MosesMendoza/maint/2.7.x/packaging_fixes

Maint/2.7.x/packaging fixes
Maint: Improve explanation of exec type's "creates" parameter

The "creates" parameter was still causing user confusion (see re-opening
of issue #8612), so this commit revises it to be more wordy and
hopefully totally unambiguous.
Merge pull request #1258 from nfagerlund/exec_creates_param

Maint: Improve explanation of exec type's "creates" parameter
(#7422) Support arrow syntax with metaparams

Attempts to combine the arrow syntax with
metaparams lead to the following error message:

Error: undefined method `<<' for {}:Hash

For example, the following code:

  Notify['one'] -> Notify['three']

  notify { 'one':
    before => Notify['two']
  }
  notify { 'two': }

  notify { ['three', 'four']: }

Causes this issue. This is because relationships
appended with the -> syntax assume that the current
list of dependencies are an array.

Given that, it is not surprising that the following
code is valid at the moment:

  Notify['one'] -> Notify['three']

  notify { 'one':
    before => Notify['two', 'four']
  }
  notify { 'two': }

  notify { ['three', 'four']: }

In this case, the dependency resources are already
expressed as an array before the arrow syntax appends
the additional dep.

This commit converts everything to an array before
trying to append additional relationships to that
array. The fact that the second code snippet already
works demonstrates that Puppet already supports
appending additional refs to an array of refs.
Merge branch 'fix/2.7.x/7422_fix_relationship_append' into 2.7.x

* fix/2.7.x/7422_fix_relationship_append:
  (#7422) Support arrow syntax with metaparams
Merge branch '2.7.x' into 3.0.x

* 2.7.x:
  (#7422) Support arrow syntax with metaparams
  rm packaging artifacts in rpm spec, debian rules
  Fix build targets for 2.7.x
  Preserve timestamps when installing files
  Replace dashes with dots for gem version

Conflicts:
	ext/build_defaults.yaml
	ext/debian/rules
	ext/redhat/puppet.spec.erb
	tasks/rake/gem.rake
Merge branch '3.0.x'

* 3.0.x:
  (#7422) Support arrow syntax with metaparams
  rm packaging artifacts in rpm spec, debian rules
  Fix build targets for 2.7.x
  (#15513) Clarify target attribute for cron
  Preserve timestamps when installing files
  Replace dashes with dots for gem version
Merge branch '2.7.x' into 3.0.x

* 2.7.x:
  (#7422) Support arrow syntax with metaparams
  rm packaging artifacts in rpm spec, debian rules
  Fix build targets for 2.7.x
  Preserve timestamps when installing files
  Replace dashes with dots for gem version

Conflicts:
	ext/build_defaults.yaml
	ext/debian/rules
	ext/redhat/puppet.spec.erb
	tasks/rake/gem.rake
Merge branch '3.0.x'

* 3.0.x:
  Maint: Improve explanation of exec type's "creates" parameter
Maint: Clarify that the managehome parameter will delete a home directory

Users have sometimes been surprised that managehome will delete a home
directory when removing a user. This commit makes that explicit.
Merge pull request #1265 from nfagerlund/clarify_managehome

Maint: Clarify that the managehome parameter will delete a home director...
Make spec_helper manage tmpdir.

This adds management of the ENV[TMPDIR] when running rspec tests using
spec_helper. Before tests are being run, a temporary directory is
created under the current tmpdir. This temporary directory is then set
as the ENV[TMPDIR]. 

After all tests have been run, this temporary directory is removed.
The directory is created with the prefix "rspecrun" to easily identify
it in case the spec testing crashes before having cleaned up.