Skip to content

Commit

Permalink
Merge pull request #5008 from puppetlabs/revert-4977-issue/pup-4742/s…
Browse files Browse the repository at this point in the history
…witch-to-semantic_puppet-gem

Revert "(PUP-4742) Switch to use semantic_puppet gem"
  • Loading branch information
joshcooper committed Jun 7, 2016
2 parents 4761e35 + e89a713 commit accea07
Show file tree
Hide file tree
Showing 51 changed files with 3,110 additions and 125 deletions.
1 change: 0 additions & 1 deletion .gemspec
Expand Up @@ -40,5 +40,4 @@ Gem::Specification.new do |s|
s.specification_version = 3
s.add_runtime_dependency(%q<facter>, [">= 1.7", "< 4"])
s.add_runtime_dependency(%q<hiera>, [">= 2.0", "< 4"])
s.add_runtime_dependency(%q<semantic_puppet>, ['>= 0.1.3', '< 2'])
end
1 change: 0 additions & 1 deletion Gemfile
Expand Up @@ -26,7 +26,6 @@ end
gem "puppet", :path => File.dirname(__FILE__), :require => false
gem "facter", *location_for(ENV['FACTER_LOCATION'] || ['> 2.0', '< 4'])
gem "hiera", *location_for(ENV['HIERA_LOCATION'] || ['>= 2.0', '< 4'])
gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ['>= 0.1.3', '< 2'])
gem "rake", "10.1.1", :require => false

group(:development, :test) do
Expand Down
12 changes: 6 additions & 6 deletions lib/puppet/forge.rb
Expand Up @@ -6,9 +6,9 @@
require 'uri'
require 'pathname'
require 'json'
require 'semantic_puppet'
require 'semantic'

class Puppet::Forge < SemanticPuppet::Dependency::Source
class Puppet::Forge < Semantic::Dependency::Source
require 'puppet/forge/cache'
require 'puppet/forge/repository'
require 'puppet/forge/errors'
Expand Down Expand Up @@ -83,9 +83,9 @@ def search(term)
# Fetches {ModuleRelease} entries for each release of the named module.
#
# @param input [String] the module name to look up
# @return [Array<SemanticPuppet::Dependency::ModuleRelease>] a list of releases for
# @return [Array<Semantic::Dependency::ModuleRelease>] a list of releases for
# the given name
# @see SemanticPuppet::Dependency::Source#fetch
# @see Semantic::Dependency::Source#fetch
def fetch(input)
name = input.tr('/', '-')
uri = "/v3/releases?module=#{name}"
Expand Down Expand Up @@ -114,15 +114,15 @@ def make_http_request(*args)
@repository.make_http_request(*args)
end

class ModuleRelease < SemanticPuppet::Dependency::ModuleRelease
class ModuleRelease < Semantic::Dependency::ModuleRelease
attr_reader :install_dir, :metadata

def initialize(source, data)
@data = data
@metadata = meta = data['metadata']

name = meta['name'].tr('/', '-')
version = SemanticPuppet::Version.parse(meta['version'])
version = Semantic::Version.parse(meta['version'])
release = "#{name}@#{version}"

if meta['dependencies']
Expand Down
8 changes: 4 additions & 4 deletions lib/puppet/module_tool.rb
Expand Up @@ -157,23 +157,23 @@ def self.environment_from_options(options)
end

# Handles parsing of module dependency expressions into proper
# {SemanticPuppet::VersionRange}s, including reasonable error handling.
# {Semantic::VersionRange}s, including reasonable error handling.
#
# @param where [String] a description of the thing we're parsing the
# dependency expression for
# @param dep [Hash] the dependency description to parse
# @return [Array(String, SemanticPuppet::VersionRange, String)] an tuple of the
# @return [Array(String, Semantic::VersionRange, String)] an tuple of the
# dependent module's name, the version range dependency, and the
# unparsed range expression.
def self.parse_module_dependency(where, dep)
dep_name = dep['name'].tr('/', '-')
range = dep['version_requirement'] || '>= 0.0.0'

begin
parsed_range = SemanticPuppet::VersionRange.parse(range)
parsed_range = Semantic::VersionRange.parse(range)
rescue ArgumentError => e
Puppet.debug "Error in #{where} parsing dependency #{dep_name} (#{e.message}); using empty range."
parsed_range = SemanticPuppet::VersionRange::EMPTY_RANGE
parsed_range = Semantic::VersionRange::EMPTY_RANGE
end

[ dep_name, parsed_range, range ]
Expand Down
28 changes: 14 additions & 14 deletions lib/puppet/module_tool/applications/installer.rb
Expand Up @@ -34,19 +34,19 @@ def initialize(name, install_dir, options = {})
release = local_tarball_source.release
@name = release.name
options[:version] = release.version.to_s
SemanticPuppet::Dependency.add_source(local_tarball_source)
Semantic::Dependency.add_source(local_tarball_source)

# If we're operating on a local tarball and ignoring dependencies, we
# don't need to search any additional sources. This will cut down on
# unnecessary network traffic.
unless @ignore_dependencies
SemanticPuppet::Dependency.add_source(installed_modules_source)
SemanticPuppet::Dependency.add_source(module_repository)
Semantic::Dependency.add_source(installed_modules_source)
Semantic::Dependency.add_source(module_repository)
end

else
SemanticPuppet::Dependency.add_source(installed_modules_source) unless forced?
SemanticPuppet::Dependency.add_source(module_repository)
Semantic::Dependency.add_source(installed_modules_source) unless forced?
Semantic::Dependency.add_source(module_repository)
end
end

Expand All @@ -59,7 +59,7 @@ def run
begin
if installed_module = installed_modules[name]
unless forced?
if SemanticPuppet::VersionRange.parse(version).include? installed_module.version
if Semantic::VersionRange.parse(version).include? installed_module.version
results[:result] = :noop
results[:version] = installed_module.version
return results
Expand Down Expand Up @@ -103,15 +103,15 @@ def run
# locking it to upgrades within the same major version.
installed_range = ">=#{version} #{version.major}.x"
graph.add_constraint('installed', mod, installed_range) do |node|
SemanticPuppet::VersionRange.parse(installed_range).include? node.version
Semantic::VersionRange.parse(installed_range).include? node.version
end

release.mod.dependencies.each do |dep|
dep_name = dep['name'].tr('/', '-')

range = dep['version_requirement']
graph.add_constraint("#{mod} constraint", dep_name, range) do |node|
SemanticPuppet::VersionRange.parse(range).include? node.version
Semantic::VersionRange.parse(range).include? node.version
end
end
end
Expand All @@ -125,8 +125,8 @@ def run

begin
Puppet.info "Resolving dependencies ..."
releases = SemanticPuppet::Dependency.resolve(graph)
rescue SemanticPuppet::Dependency::UnsatisfiableGraph
releases = Semantic::Dependency.resolve(graph)
rescue Semantic::Dependency::UnsatisfiableGraph
raise NoVersionsSatisfyError, results.merge(:requested_name => name)
end

Expand Down Expand Up @@ -205,15 +205,15 @@ def installed_modules
end

def build_single_module_graph(name, version)
range = SemanticPuppet::VersionRange.parse(version)
graph = SemanticPuppet::Dependency::Graph.new(name => range)
releases = SemanticPuppet::Dependency.fetch_releases(name)
range = Semantic::VersionRange.parse(version)
graph = Semantic::Dependency::Graph.new(name => range)
releases = Semantic::Dependency.fetch_releases(name)
releases.each { |release| release.dependencies.clear }
graph << releases
end

def build_dependency_graph(name, version)
SemanticPuppet::Dependency.query(name => version)
Semantic::Dependency.query(name => version)
end

def build_install_graph(release, installed, graphed = [])
Expand Down
26 changes: 13 additions & 13 deletions lib/puppet/module_tool/applications/upgrader.rb
Expand Up @@ -21,8 +21,8 @@ def initialize(name, options)
@ignore_changes = forced? || options[:ignore_changes]
@ignore_dependencies = forced? || options[:ignore_dependencies]

SemanticPuppet::Dependency.add_source(installed_modules_source)
SemanticPuppet::Dependency.add_source(module_repository)
Semantic::Dependency.add_source(installed_modules_source)
Semantic::Dependency.add_source(module_repository)
end

def run
Expand All @@ -48,7 +48,7 @@ def run

installed_release = installed_modules[name]

# `priority` is an attribute of a `SemanticPuppet::Dependency::Source`,
# `priority` is an attribute of a `Semantic::Dependency::Source`,
# which is delegated through `ModuleRelease` instances for the sake of
# comparison (sorting). By default, the `InstalledModules` source has
# a priority of 10 (making it the most preferable source, so that
Expand All @@ -66,7 +66,7 @@ def installed_release.priority
end

mod = installed_release.mod
results[:installed_version] = SemanticPuppet::Version.parse(mod.version)
results[:installed_version] = Semantic::Version.parse(mod.version)
dir = Pathname.new(mod.modulepath)

vstring = mod.version ? "v#{mod.version}" : '???'
Expand All @@ -90,7 +90,7 @@ def installed_release.priority
if available_versions.empty?
raise NoCandidateReleasesError, results.merge(:module_name => name, :source => module_repository.host)
elsif results[:requested_version] != :latest
requested = SemanticPuppet::VersionRange.parse(results[:requested_version])
requested = Semantic::VersionRange.parse(results[:requested_version])
unless available_versions.any? {|m| requested.include? m.version}
raise NoCandidateReleasesError, results.merge(:module_name => name, :source => module_repository.host)
end
Expand Down Expand Up @@ -119,24 +119,24 @@ def installed_release.priority
# module, locking it to upgrades within the same major version.
installed_range = ">=#{version} #{version.major}.x"
graph.add_constraint('installed', installed_module, installed_range) do |node|
SemanticPuppet::VersionRange.parse(installed_range).include? node.version
Semantic::VersionRange.parse(installed_range).include? node.version
end

release.mod.dependencies.each do |dep|
dep_name = dep['name'].tr('/', '-')

range = dep['version_requirement']
graph.add_constraint("#{installed_module} constraint", dep_name, range) do |node|
SemanticPuppet::VersionRange.parse(range).include? node.version
Semantic::VersionRange.parse(range).include? node.version
end
end
end
end

begin
Puppet.info "Resolving dependencies ..."
releases = SemanticPuppet::Dependency.resolve(graph)
rescue SemanticPuppet::Dependency::UnsatisfiableGraph
releases = Semantic::Dependency.resolve(graph)
rescue Semantic::Dependency::UnsatisfiableGraph
raise NoVersionsSatisfyError, results.merge(:requested_name => name)
end

Expand Down Expand Up @@ -227,15 +227,15 @@ def installed_modules
end

def build_single_module_graph(name, version)
range = SemanticPuppet::VersionRange.parse(version)
graph = SemanticPuppet::Dependency::Graph.new(name => range)
releases = SemanticPuppet::Dependency.fetch_releases(name)
range = Semantic::VersionRange.parse(version)
graph = Semantic::Dependency::Graph.new(name => range)
releases = Semantic::Dependency.fetch_releases(name)
releases.each { |release| release.dependencies.clear }
graph << releases
end

def build_dependency_graph(name, version)
SemanticPuppet::Dependency.query(name => version)
Semantic::Dependency.query(name => version)
end

def build_install_graph(release, installed, graphed = [])
Expand Down
14 changes: 7 additions & 7 deletions lib/puppet/module_tool/installed_modules.rb
Expand Up @@ -4,7 +4,7 @@
require 'puppet/module_tool'

module Puppet::ModuleTool
class InstalledModules < SemanticPuppet::Dependency::Source
class InstalledModules < Semantic::Dependency::Source
attr_reader :modules, :by_name

def priority
Expand Down Expand Up @@ -33,9 +33,9 @@ def initialize(env)
# Fetches {ModuleRelease} entries for each release of the named module.
#
# @param name [String] the module name to look up
# @return [Array<SemanticPuppet::Dependency::ModuleRelease>] a list of releases for
# @return [Array<Semantic::Dependency::ModuleRelease>] a list of releases for
# the given name
# @see SemanticPuppet::Dependency::Source#fetch
# @see Semantic::Dependency::Source#fetch
def fetch(name)
name = name.tr('/', '-')

Expand All @@ -51,18 +51,18 @@ def fetched
@fetched
end

class ModuleRelease < SemanticPuppet::Dependency::ModuleRelease
class ModuleRelease < Semantic::Dependency::ModuleRelease
attr_reader :mod, :metadata

def initialize(source, mod)
@mod = mod
@metadata = mod.metadata
name = mod.forge_name.tr('/', '-')
begin
version = SemanticPuppet::Version.parse(mod.version)
rescue SemanticPuppet::Version::ValidationFailure => e
version = Semantic::Version.parse(mod.version)
rescue Semantic::Version::ValidationFailure => e
Puppet.warning "#{mod.name} (#{mod.path}) has an invalid version number (#{mod.version}). The version has been set to 0.0.0. If you are the maintainer for this module, please update the metadata.json with a valid Semantic Version (http://semver.org)."
version = SemanticPuppet::Version.parse("0.0.0")
version = Semantic::Version.parse("0.0.0")
end
release = "#{name}@#{version}"

Expand Down
6 changes: 3 additions & 3 deletions lib/puppet/module_tool/local_tarball.rb
Expand Up @@ -5,7 +5,7 @@
require 'puppet/module_tool'

module Puppet::ModuleTool
class LocalTarball < SemanticPuppet::Dependency::Source
class LocalTarball < Semantic::Dependency::Source
attr_accessor :release

def initialize(filename)
Expand Down Expand Up @@ -40,14 +40,14 @@ def install(release, dir)
FileUtils.mv(staging_dir, module_dir)
end

class ModuleRelease < SemanticPuppet::Dependency::ModuleRelease
class ModuleRelease < Semantic::Dependency::ModuleRelease
attr_reader :mod, :install_dir, :metadata

def initialize(source, mod)
@mod = mod
@metadata = mod.metadata
name = mod.forge_name.tr('/', '-')
version = SemanticPuppet::Version.parse(mod.version)
version = Semantic::Version.parse(mod.version)
release = "#{name}@#{version}"

if mod.dependencies
Expand Down
2 changes: 1 addition & 1 deletion lib/puppet/module_tool/metadata.rb
Expand Up @@ -213,7 +213,7 @@ def validate_data_provider(value)

# Validates that the version range can be parsed by Semantic.
def validate_version_range(version_range)
SemanticPuppet::VersionRange.parse(version_range)
Semantic::VersionRange.parse(version_range)
rescue ArgumentError => e
raise ArgumentError, "Invalid 'version_range' field in metadata.json: #{e}"
end
Expand Down
2 changes: 1 addition & 1 deletion lib/puppet/pops.rb
Expand Up @@ -10,7 +10,7 @@ module Puppet
#
# @api public
module Pops
require 'semantic_puppet'
require 'semantic'

require 'puppet/pops/patterns'
require 'puppet/pops/utils'
Expand Down
2 changes: 1 addition & 1 deletion lib/puppet/pops/evaluator/access_operator.rb
Expand Up @@ -156,7 +156,7 @@ def access_PVariantType(o, scope, keys)

def access_PSemVerType(o, scope, keys)
keys.flatten!
assert_keys(keys, o, 1, Float::INFINITY, String, SemanticPuppet::VersionRange)
assert_keys(keys, o, 1, Float::INFINITY, String, Semantic::VersionRange)
Types::TypeFactory.sem_ver(*keys)
end

Expand Down
8 changes: 4 additions & 4 deletions lib/puppet/pops/evaluator/compare_operator.rb
Expand Up @@ -93,7 +93,7 @@ def cmp_Symbol(a, b)
end

def cmp_Version(a, b)
raise ArgumentError.new('Versions not comparable to non Versions') unless b.is_a?(SemanticPuppet::Version)
raise ArgumentError.new('Versions not comparable to non Versions') unless b.is_a?(Semantic::Version)
a <=> b
end

Expand Down Expand Up @@ -149,7 +149,7 @@ def include_Array(a, b, scope)
# Always set match data, a "not found" should not keep old match data visible
set_match_data(matched, scope) # creates ephemeral
return !!matched
when String, SemanticPuppet::Version
when String, Semantic::Version
a.any? { |element| match(b, element, scope) }
when Types::PAnyType
a.each {|element| return true if b.instance?(element) }
Expand Down Expand Up @@ -183,11 +183,11 @@ def match_Regexp(regexp, left, scope)

# Matches against semvers and strings
def match_Version(version, left, scope)
if left.is_a?(SemanticPuppet::Version)
if left.is_a?(Semantic::Version)
version == left
elsif left.is_a? String
begin
version == SemanticPuppet::Version.parse(left)
version == Semantic::Version.parse(left)
rescue ArgumentError
false
end
Expand Down
2 changes: 1 addition & 1 deletion lib/puppet/pops/evaluator/evaluator_impl.rb
Expand Up @@ -548,7 +548,7 @@ def eval_MatchExpression o, scope
return o.operator == :'=~' ? !!matched : !matched
end

if pattern.is_a?(SemanticPuppet::VersionRange)
if pattern.is_a?(Semantic::VersionRange)
# evaluate if range includes version
matched = Types::PSemVerRangeType.include?(pattern, left)
return o.operator == :'=~' ? matched : !matched
Expand Down

0 comments on commit accea07

Please sign in to comment.