Commit 89dd927b authored by Sebastien Badia's avatar Sebastien Badia

New upstream version 3.0.0

parent c4d45a81
......@@ -2,3 +2,4 @@ pkg/
Gemfile.lock
tmp/
coverage/
*.gem
......@@ -6,11 +6,11 @@
Librarian-puppet is a bundler for your puppet infrastructure. You can use
librarian-puppet to manage the puppet modules your infrastructure depends on,
whether the modules come from the [Puppet Forge](https://forge.puppetlabs.com/),
whether the modules come from the [Puppet Forge](https://forge.puppet.com/),
Git repositories or just a path.
* Librarian-puppet can reuse the dependencies listed in your `Modulefile` or `metadata.json`
* Forge modules can be installed from [Puppetlabs Forge](https://forge.puppetlabs.com/) or an internal Forge such as [Pulp](http://www.pulpproject.org/)
* Forge modules can be installed from [Puppetlabs Forge](https://forge.puppet.com/) or an internal Forge such as [Pulp](http://www.pulpproject.org/)
* Git modules can be installed from a branch, tag or specific commit, optionally using a path inside the repository
* Modules can be installed from GitHub using tarballs, without needing Git installed
* Modules can be installed from a filesystem path
......@@ -31,8 +31,9 @@ and isolate a project's dependencies.
## Versions
Librarian-puppet >= 2.0 (as well as 1.1, 1.2 and 1.3) requires Ruby 1.9 and uses the Puppet Forge API v3.
Versions < 2.0 work on Ruby 1.8.
Librarian-Puppet 3.0.0 and newer requires Ruby >= 2.0. Use version 2.2.4 if you need support for Puppet 3.7 or earlier, or Ruby 1.9 or earlier. Note that [Puppet 4.10 and newer require Ruby 2.1](https://puppet.com/docs/puppet/4.10/system_requirements.html#prerequisites) or newer.
Librarian-Puppet 2.0.0 and newer requires Ruby >= 1.9 and uses Puppet Forge API v3. For Ruby 1.8 use 1.5.0.
See the [Changelog](Changelog.md) for more details.
......@@ -129,6 +130,11 @@ This includes any branch name, tag name, SHA, or SHA unique prefix. If we use a
branch, we can later ask Librarian-puppet to update the module by fetching the
most recent version of the module from that same branch.
Note that Librarian-puppet recognizes the [r10k Puppetfile's](https://github.com/puppetlabs/r10k/blob/master/doc/puppetfile.mkd) additional
options, `:tag`, `:commit`, and `:branch`, but only as aliases for `:ref`.
That is, there is no implementation of r10k's optimizations around fetching
these different types of git objects.
The Git source also supports a `:path =>` option. If we use the path option,
Librarian-puppet will navigate down into the Git repository and only use the
specified subdirectory. Some people have the habit of having a single repository
......
......@@ -158,7 +158,8 @@ module Librarian
@repo ||= {}
unless @repo[name]
# if we are using the official Forge then use API v3, otherwise stick to v1 for now
# If we are using the official Forge then use API v3, otherwise use the preferred api
# as defined by the CLI option use_v1_api
if uri.hostname =~ /\.puppetlabs\.com$/ || !environment.use_v1_api
@repo[name] = RepoV3.new(self, name)
else
......
......@@ -87,7 +87,7 @@ module Librarian
target = vendored?(name, version) ? vendored_path(name, version).to_s : name
# can't pass the default v3 forge url (http://forgeapi.puppetlabs.com)
# to clients that use the v1 API (https://forge.puppetlabs.com)
# to clients that use the v1 API (https://forge.puppet.com)
# nor the other way around
module_repository = source.to_s
......
......@@ -11,10 +11,10 @@ module Librarian
def initialize(source, name)
super(source, name)
# API returned data for this module including all versions and dependencies, indexed by module name
# from http://forge.puppetlabs.com/api/v1/releases.json?module=#{name}
# from https://forge.puppetlabs.com/api/v1/releases.json?module=#{name}
@api_data = nil
# API returned data for this module and a specific version, indexed by version
# from http://forge.puppetlabs.com/api/v1/releases.json?module=#{name}&version=#{version}
# from https://forge.puppetlabs.com/api/v1/releases.json?module=#{name}&version=#{version}
@api_version_data = {}
end
......
......@@ -26,7 +26,21 @@ module Librarian
# If the rsync configuration parameter is set, use rsync instead of FileUtils
def cp_r(src, dest)
if rsync?
Rsync.run(File.join(src, "/"), dest, ['-avz', '--delete'])
if Gem.win_platform?
src_clean = "#{src}".gsub(/^([a-z])\:/i,'/cygdrive/\1')
dest_clean = "#{dest}".gsub(/^([a-z])\:/i,'/cygdrive/\1')
else
src_clean = src
dest_clean = dest
end
debug { "Copying #{src_clean}/ to #{dest_clean}/ with rsync -avz --delete" }
result = Rsync.run(File.join(src_clean, "/"), File.join(dest_clean, "/"), ['-avz', '--delete'])
if result.success?
debug { "Rsync from #{src_clean}/ to #{dest_clean}/ successfull" }
else
msg = "Failed to rsync from #{src_clean}/ to #{dest_clean}/: " + result.error
raise Error, msg
end
else
begin
FileUtils.cp_r(src, dest, :preserve => true)
......
module Librarian
module Puppet
VERSION = "2.2.3"
VERSION = "3.0.0"
end
end
......@@ -5,11 +5,11 @@
Gem::Specification.new do |s|
s.name = "librarian-puppet"
s.version = "2.2.3"
s.version = "3.0.0"
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Tim Sharpe", "Carlos Sanchez"]
s.date = "2016-04-21"
s.date = "2018-01-15"
s.description = "Simplify deployment of your Puppet infrastructure by\n automatically pulling in modules from the forge and git repositories with\n a single command."
s.email = ["tim@sharpe.id.au", "carlos@apache.org"]
s.executables = ["librarian-puppet"]
......@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
s.homepage = "https://github.com/voxpupuli/librarian-puppet"
s.licenses = ["MIT"]
s.require_paths = ["lib"]
s.required_ruby_version = Gem::Requirement.new(">= 1.9.0")
s.required_ruby_version = Gem::Requirement.new(">= 2.0.0")
s.rubygems_version = "1.8.23"
s.summary = "Bundler for your Puppet modules"
......@@ -26,11 +26,11 @@ Gem::Specification.new do |s|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_development_dependency(%q<aruba>, ["< 0.8.0"])
s.add_development_dependency(%q<cucumber>, [">= 0"])
s.add_development_dependency(%q<cucumber>, ["< 3.0.0"])
s.add_runtime_dependency(%q<librarianp>, [">= 0.6.3"])
s.add_development_dependency(%q<minitest>, ["~> 5"])
s.add_development_dependency(%q<mocha>, [">= 0"])
s.add_development_dependency(%q<puppet>, ["~> 4.1.0"])
s.add_development_dependency(%q<puppet>, ["~> 5.2.0"])
s.add_runtime_dependency(%q<puppet_forge>, ["~> 2.1"])
s.add_development_dependency(%q<rake>, [">= 0"])
s.add_development_dependency(%q<rspec>, [">= 0"])
......@@ -38,11 +38,11 @@ Gem::Specification.new do |s|
s.add_development_dependency(%q<simplecov>, [">= 0.9.0"])
else
s.add_dependency(%q<aruba>, ["< 0.8.0"])
s.add_dependency(%q<cucumber>, [">= 0"])
s.add_dependency(%q<cucumber>, ["< 3.0.0"])
s.add_dependency(%q<librarianp>, [">= 0.6.3"])
s.add_dependency(%q<minitest>, ["~> 5"])
s.add_dependency(%q<mocha>, [">= 0"])
s.add_dependency(%q<puppet>, ["~> 4.1.0"])
s.add_dependency(%q<puppet>, ["~> 5.2.0"])
s.add_dependency(%q<puppet_forge>, ["~> 2.1"])
s.add_dependency(%q<rake>, [">= 0"])
s.add_dependency(%q<rspec>, [">= 0"])
......@@ -51,11 +51,11 @@ Gem::Specification.new do |s|
end
else
s.add_dependency(%q<aruba>, ["< 0.8.0"])
s.add_dependency(%q<cucumber>, [">= 0"])
s.add_dependency(%q<cucumber>, ["< 3.0.0"])
s.add_dependency(%q<librarianp>, [">= 0.6.3"])
s.add_dependency(%q<minitest>, ["~> 5"])
s.add_dependency(%q<mocha>, [">= 0"])
s.add_dependency(%q<puppet>, ["~> 4.1.0"])
s.add_dependency(%q<puppet>, ["~> 5.2.0"])
s.add_dependency(%q<puppet_forge>, ["~> 2.1"])
s.add_dependency(%q<rake>, [">= 0"])
s.add_dependency(%q<rspec>, [">= 0"])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment