Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

(#15464) Make contributing easy via bundle Gemfile

Without this patch the process of figuring out how to quickly set up a
development and testing environment for the Puppet _application_ (not a
gem library) is unnecessarily complicated.

This patch addresses the problem by providing a Bundler compatible
Gemfile that specifies all of the Gem dependencies for the Puppet 2.7
application.

Puppet contributors can now easily get a working development and testing
environment using this sequence of commands:

    $ git clone --branch 2.7.x git://github.com/puppetlabs/puppet.git
    $ cd puppet/
    $ bundle install # Install all required dependencies
    $ rspec

The .noexec.yaml file excludes the `rake` command so that the Gemfile
doesn't raise an exception if the `rubygems-bundler` Gem is installed
and automatically running `bundle exec` for us.

The Gemfile.lock contains the exact dependency versions.  This file is
included in the version control system because we're treating Puppet as
an application rather than a library.
  • Loading branch information...
commit 0b49eae183c97351713ff511fcb2cb744a6aa8b4 1 parent c2554de
Jeff McCune jeffmccune authored

Showing 4 changed files with 75 additions and 0 deletions. Show diff stats Hide diff stats

  1. +4 0 .noexec.yaml
  2. +14 0 Gemfile
  3. +28 0 Gemfile.lock
  4. +29 0 facter.gemspec
4 .noexec.yaml
... ... @@ -0,0 +1,4 @@
  1 +---
  2 +exclude:
  3 + - rake
  4 + - rspec
14 Gemfile
... ... @@ -0,0 +1,14 @@
  1 +source :rubygems
  2 +
  3 +gemspec
  4 +
  5 +group(:development, :test) do
  6 + gem "rspec", "~> 2.10.0", :require => false
  7 + gem "mocha", "~> 0.10.5", :require => false
  8 +end
  9 +
  10 +if File.exists? "#{__FILE__}.local"
  11 + eval(File.read("#{__FILE__}.local"), binding)
  12 +end
  13 +
  14 +# vim:filetype=ruby
28 Gemfile.lock
... ... @@ -0,0 +1,28 @@
  1 +PATH
  2 + remote: .
  3 + specs:
  4 + facter (1.6.11)
  5 +
  6 +GEM
  7 + remote: http://rubygems.org/
  8 + specs:
  9 + diff-lcs (1.1.3)
  10 + metaclass (0.0.1)
  11 + mocha (0.10.5)
  12 + metaclass (~> 0.0.1)
  13 + rspec (2.10.0)
  14 + rspec-core (~> 2.10.0)
  15 + rspec-expectations (~> 2.10.0)
  16 + rspec-mocks (~> 2.10.0)
  17 + rspec-core (2.10.1)
  18 + rspec-expectations (2.10.0)
  19 + diff-lcs (~> 1.1.3)
  20 + rspec-mocks (2.10.1)
  21 +
  22 +PLATFORMS
  23 + ruby
  24 +
  25 +DEPENDENCIES
  26 + facter!
  27 + mocha (~> 0.10.5)
  28 + rspec (~> 2.10.0)
29 facter.gemspec
... ... @@ -0,0 +1,29 @@
  1 +# -*- encoding: utf-8 -*-
  2 +
  3 +Gem::Specification.new do |s|
  4 + s.name = "facter"
  5 + s.version = "1.6.11"
  6 +
  7 + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  8 + s.authors = ["Puppet Labs"]
  9 + s.date = "2012-08-08"
  10 + s.description = "You can prove anything with facts!"
  11 + s.email = "info@puppetlabs.com"
  12 + s.executables = ["facter"]
  13 + s.files = ["bin/facter"]
  14 + s.homepage = "http://puppetlabs.com"
  15 + s.rdoc_options = ["--title", "Facter - System Inventory Tool", "--main", "README", "--line-numbers"]
  16 + s.require_paths = ["lib"]
  17 + s.rubyforge_project = "facter"
  18 + s.rubygems_version = "1.8.24"
  19 + s.summary = "Facter, a system inventory tool"
  20 +
  21 + if s.respond_to? :specification_version then
  22 + s.specification_version = 3
  23 +
  24 + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
  25 + else
  26 + end
  27 + else
  28 + end
  29 +end

0 comments on commit 0b49eae

Please sign in to comment.
Something went wrong with that request. Please try again.