(PUP-2691) Re-adding the missing ‘description’ property to P::MT::Metadata.

Prior to Puppet 3.6.0, users had a ‘description’ property which they
could reliably expand into their module skeleton’s ERB templates.  This
property was removed from the default set of properties in Puppet 3.6.0,
which effectively broke template expansion for users relying on it.

This change ensures that users can continue to rely on this property.
(maint) spec: allow expectations of resources from compiled manifests

Add logic to the PuppetSpec::Compiler.apply_compiled_manifest method so that
a spec test can supply a block that processes the single resources
that comprise that catalog that was compiled before it is run in a transaction.

As a proof of concept and general helper, add a apply_with_error_checks method,
that adds an expectation to never send an :err signal to each resource. This
makes spectest debugging much easier, because without expectations,
the transaction will just finish and the only reported error will be that the
end result is not as expected. When the expectation is added to each resource,
rspec will display all resource error messages as failed expectations.
(PUP-1100) Create_resources syntax error message spec test

This commit adds a check for the create_resources syntax error message.
If there is a syntax error, the error given by puppet master is unclear.
This commits adds a test to check that the error message is correct and
makes sense.

This only happens when the resources are auto imported, which is why I
use a fixture directory.
(PUP-1100) Fix error message with create_resources and auto-loaded class

This commit fixes the error message displayed by PM when a syntax error
is present on an file auto-loaded by create_resources.
(PUP-2816) Default forge override in Rakefile

The override for the fake forge to use only showed up in the
ci-bootstrap-from-artifacts.sh, but that only affects how the jenkins
jobs handle the pipeline. When you run the tests on your own machine,
you aren't going to use that script, which would mean that it would use
the wrong fake forge. This moves the override to the Rakefile so that it
will always take effect.
(PUP-2822) Improve description of disable_warnings setting
Merge pull request #2790 from zaphod42/issue/stable/pup-2816-using-wrong-fake-forge

(PUP-2816) Default forge override in Rakefile
(MAINT) Small openbsd package spec tweaks

- use .tgz as the package extension
- complete 'provider features' and sort lines
(PUP-2828) Pin to 1.9.3 branch of vendored ruby on Windows

Previously, acceptance tests on Windows would install the default branch
of our vendored ruby repo. This is a bit fragile.

This commit makes it explicit that we are using the `1.9.3` branch,
which contains the older set of windows gems.

Newer development to support x64 will be done in the `1.9.3-x86` branch.
Merge branch 'ticket/stable/PUP-2828-pin-vendored-ruby' into stable

* ticket/stable/PUP-2828-pin-vendored-ruby:
  (PUP-2828) Pin to 1.9.3 branch of vendored ruby on Windows

Closes GH-2800
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-2828) Pin to 1.9.3 branch of vendored ruby on Windows
  (PUP-2816) Default forge override in Rakefile
(maint) use compiler in crontab integration spec
(PUP-2828) puppet-win32-ruby acceptance ver config

 - Previously, Jenkins acceptance jobs on Windows would clone Windows
   source for puppet-win32-ruby, the vendored Ruby that we ship as part
   of Windows MSI builds.  This comes from an internal git mirror.
 - At present, a simple checkout is performed against whatever is the
   'default' branch (typically the 1.9.3 branch).  Unfortunately, this
   will not work for any acceptance jobs that intend to use 2.0, and it
   currently doesn't work for jobs that need new versions of gems.
 - Rather than take a 'clone the repo and hope it works' approach, make
   use of Beaker's :rev option when calling install_from_git.
   https://github.com/puppetlabs/beaker/blob/beaker1.11.2/lib/beaker/dsl/install_utils.rb#L106
 - Using :rev allows us to pin the repo version by using an environment
   variable that can be setup in the Jenkins job.  Track the relevant
   SHAs with the modified code so that dependent versions are tracked
   in the source tree, rather than through transient Jenkins jobs.
 - To allow the jobs to build a particular architecture, introduce a
   new environment variable called WIN32_RUBY_ARCH that can be used to
   select either 'x86' or 'x64'.  If an arch is not specified, fall
   back to 'x86', but if the appropriate :rev is not specified, kill
   the setup step.
(maint) Use an absolute path so we're not sensitive to pwd

Previously, the location of the windows versions.yaml file depended on
your current working directory, and assumed it was the root of the
project. But acceptance tests are typically executed by cd'ing into
acceptance, and then executing rake tasks from there.

This commit ensures we reference the versions.yaml relative to the
currently executing 000_EnvSetup.rb setup step.
Merge branch 'pr/2801'

* pr/2801:
  (maint) Use an absolute path so we're not sensitive to pwd
  (PUP-2828) puppet-win32-ruby acceptance ver config

Closes GH-2801
Merge pull request #2701 from pvande/bug/stable/pup-2691_repairing_the_missing_metadata_description_property

(PUP-2691) Re-adding the missing ‘description’ property to P::MT::Metadata
Revert "Merge branch 'pr/2801'"

This reverts commit ea304a00efd5aa5837ab74979b60a1597d4eb82d, reversing
changes made to b9a0cb902a8a77635d1c0fba99a5a4ebad8197c1.
(PUP-2828) Select the branch of puppet-win32-ruby to install

Previously, we were always installing ruby 1.9.3 on Windows, which
contains the gem sets for 3.2.x to 3.6.x.

This commit updates the setup step to install ruby from the 1.9.3-x86
branch (by default). If the WIN32_RUBY_ARCH environment variable is
specified, then it will install ruby from the 2.0.0-x64 branch instead.
(PUP-2382) Remove 'win32/api' requires
Merge pull request #2754 from ffrank/maint/compiler-spec-catch-resource-errors

(maint) spec: allow expectations of resources from compiled manifests