From 03c5c4a434c2290c021034dbfed82cb0f97e0e87 Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Mon, 25 Feb 2013 14:00:20 -0800 Subject: (maint) Add Ruby 2.0.0 to Travis build matrix 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. --- Gemfile | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Gemfile (limited to 'Gemfile') diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..3ddc07e --- /dev/null +++ b/Gemfile @@ -0,0 +1,8 @@ +source "https://rubygems.org" + +if puppetversion = ENV['PUPPET_VERSION'] + gem 'puppet', puppetversion +else + gem 'puppet' +end +gem 'puppetlabs_spec_helper', '>= 0.1.0' -- cgit v1.2.3 From e81a45ee0085597dad5067cada94b05cf11c6c0c Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Wed, 10 Apr 2013 14:35:42 -0700 Subject: (maint) Make stdlib usable as a Ruby GEM 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. --- .gemspec | 31 +++++++++++++++++++++++++++++++ Gemfile | 1 + 2 files changed, 32 insertions(+) create mode 100644 .gemspec (limited to 'Gemfile') diff --git a/.gemspec b/.gemspec new file mode 100644 index 0000000..805e170 --- /dev/null +++ b/.gemspec @@ -0,0 +1,31 @@ +# +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = "puppetmodule-stdlib" + + s.version = "3.2.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Puppet Labs"] + s.date = "2013-04-10" + s.description = "Puppet Labs Standard Library module" + s.email = "support@puppetlabs.com" + s.executables = [] + s.files = [] + s.homepage = "https://github.com/puppetlabs/puppetlabs-stdlib" + s.rdoc_options = ["--title", "Puppet Standard Library Module", "--main", "README.markdown", "--line-numbers"] + s.require_paths = ["lib"] + s.rubyforge_project = "puppetmodule_stdlib" + s.rubygems_version = "1.8.24" + s.summary = "This module provides a standard library of resources for developing Puppet Modules." + + if s.respond_to? :specification_version then + s.specification_version = 3 + + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then + else + end + else + end +end diff --git a/Gemfile b/Gemfile index 1026074..442dd9d 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ end group :development, :test do gem 'rake' + gem 'puppetmodule-stdlib', ">= 1.0.0", :path => File.expand_path("..", __FILE__) gem 'rspec', "~> 2.11.0", :require => false gem 'mocha', "~> 0.10.5", :require => false gem 'puppetlabs_spec_helper', :require => false -- cgit v1.2.3 From 9c5805f26ac0abf8bf19cef1ac7a2fec19dec35b Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Thu, 11 Apr 2013 09:49:53 -0700 Subject: Add ability to use puppet from git via bundler 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. --- Gemfile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Gemfile') diff --git a/Gemfile b/Gemfile index 442dd9d..50df2ee 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,16 @@ source "https://rubygems.org" +def location_for(place, fake_version = nil) + mdata = /^(git:[^#]*)#(.*)/.match(place) + if mdata + [fake_version, { :git => mdata[1], :branch => mdata[2], :require => false }].compact + elsif place =~ /^file:\/\/(.*)/ + ['>= 0', { :path => File.expand_path(mdata[1]), :require => false }] + else + [place, { :require => false }] + end +end + group :development do gem 'watchr' end @@ -14,7 +25,7 @@ group :development, :test do end if puppetversion = ENV['PUPPET_GEM_VERSION'] - gem 'puppet', puppetversion, :require => false + gem 'puppet', *location_for(puppetversion) else gem 'puppet', :require => false end -- cgit v1.2.3