Without this patch we cannot explicitly set the version of Facter to
integrate using Bundler. This patch addresses the problem by adding a
new environment variable, GEM_FACTER_VERSION which allows bundler to
install a specific version of Facter. GEM_FACTER_VERSION is the
variable name instead of FACTER_GEM_VERSION to prevent the gem_version
fact from being defined. In addition, GEM_PUPPET_VERSION is defined
based on PUPPET_GEM_VERSION in order to match the environment names and
provide backwards compatibility with CI jobs.
Without this patch the Gemfile can only satisfy dependencies using
officially release gem versions. This is a problem because we want to
test stdlib against the latest HEAD of the puppet git repository.
This patch addresses the problem by copying over the location_for method
from the Puppet Gemfile, which will parse out git://, file:// or Gem
version specifications.
This, in turn, allows jobs to be configured to run with different
dependency integrations.
Without this patch it is inconvenient to use the functions included in
stdlib in a development setting. The Puppet modulepath must be
explicitly set for the functions to be automatically loaded.
This patch addresses the problem by adding a gem specification and
dependency Gemfile. This makes it possible to directly use stdlib and
all of the components it depends upon, like so:
$ bundle install --path .bundle/gems/
$ bundle exec puppet apply -e 'notice count([1, 2, 3])'
The first command will install all of the dependencies, including Puppet
and Facter, into the local project directory. The second command will
make stdlib avaialable as a Gem, which will be picked up by Puppet since
(#7788) was merged into Puppet in the 3.0 release.
Without this patch we're not testing against Ruby 2.0.0 which has recently been
released. This is a problem because we'd like a way to be notified if a change
set breaks compatibility with future supported versions of Ruby.
This patch should not be taken as an indication that we fully support Ruby 2.0,
just as an indication that we plan to in the future.
This patch also tightens up the specifications of the build matrix. In
addition to testing against the specific Puppet dependency versions, we're also
testing against the latest 2.7.x release and the latest release.
Without this patch stdlib has Travis CI configuration files, but they
don't seem to completely specify the dependency versions and the build
matrix. This patch addresses the problem by putting the dependency
information in the conventional Gemfile location.
This patch should coincide with enabling Travis CI support for pull
requests. A build status image is also included in the project README.