semantic_puppet 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +16 -1
- data/CHANGELOG.md +7 -1
- data/README.md +13 -35
- data/Rakefile +0 -9
- data/appveyor.yml +18 -0
- data/lib/semantic_puppet.rb +0 -4
- data/lib/semantic_puppet/gem_version.rb +1 -1
- data/lib/semantic_puppet/version.rb +2 -2
- data/lib/semantic_puppet/version_range.rb +3 -3
- data/semantic_puppet.gemspec +0 -2
- metadata +4 -18
- data/locales/config.yaml +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc232fb3f2d16e77531d2a52282d78b6e2c020c0
|
4
|
+
data.tar.gz: 2692a3f0c579ea9ddc068ea79a973d8765b3c407
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 913af8f7fa2657363468237d267f2f4de79246f285273a2aaf328038f1f2ff11488001c8bee281ad989ded8401227c878c422963ed208aa14a178084e904cd7a
|
7
|
+
data.tar.gz: e32a58891d6b026a47dce06b5cd9eec259c3706cf4b30a3ba34345e4ec887df2e04041929c3df8dbc34607b32396fdafee0388350b3adc9fa82147399818ec68
|
data/.travis.yml
CHANGED
@@ -1,14 +1,29 @@
|
|
1
1
|
---
|
2
2
|
language: ruby
|
3
|
+
|
3
4
|
cache: bundler
|
5
|
+
|
6
|
+
before_install:
|
7
|
+
- bundle -v
|
8
|
+
- rm Gemfile.lock || true
|
9
|
+
- gem update --system
|
10
|
+
- gem update bundler
|
11
|
+
- gem --version
|
12
|
+
- bundle -v
|
13
|
+
|
4
14
|
script: "bundle exec rspec --color --format documentation spec/unit"
|
15
|
+
|
5
16
|
notifications:
|
6
17
|
email: false
|
18
|
+
|
7
19
|
sudo: false
|
20
|
+
|
8
21
|
rvm:
|
9
|
-
- "2.
|
22
|
+
- "2.4.1"
|
10
23
|
- "2.1.9"
|
24
|
+
- "2.0.0"
|
11
25
|
- "1.9.3"
|
12
26
|
- "jruby-19mode"
|
27
|
+
|
13
28
|
jdk:
|
14
29
|
- oraclejdk8
|
data/CHANGELOG.md
CHANGED
@@ -2,8 +2,14 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## 1.0.2 - 2018-03-13
|
6
|
+
- Removed i18n/gettext configuration and string externalization. After further consideration we have decided that
|
7
|
+
as a library, semantic_puppet should not be attempting to configure global localization state and the localization
|
8
|
+
of error messages etc. is the responsibility of the consuming application.
|
9
|
+
- Added Appveyor CI configuration
|
10
|
+
|
5
11
|
## 1.0.1 - 2017-07-01
|
6
|
-
- Fix bug causing pre-release identifiers being considered invalid when they contained letters but started with a zero
|
12
|
+
- Fix bug causing pre-release identifiers being considered invalid when they contained letters but started with a zero
|
7
13
|
|
8
14
|
## 1.0.0 - 2017-04-05
|
9
15
|
- Complete rewrite of the VersionRange to make it compatible with Node Semver
|
data/README.md
CHANGED
@@ -12,10 +12,6 @@ Versions and Version Ranges and to query and resolve module dependencies.
|
|
12
12
|
|
13
13
|
For sparse, but accurate documentation, please see the docs directory.
|
14
14
|
|
15
|
-
Note that this is a 0 release version, and things can change. Expect that the
|
16
|
-
version and version range code to stay relatively stable, but the module
|
17
|
-
dependency code is expected to change.
|
18
|
-
|
19
15
|
This library is used by a number of Puppet Labs projects, including
|
20
16
|
[Puppet](https://github.com/puppetlabs/puppet) and
|
21
17
|
[r10k](https://github.com/puppetlabs/r10k).
|
@@ -23,9 +19,8 @@ This library is used by a number of Puppet Labs projects, including
|
|
23
19
|
Requirements
|
24
20
|
------------
|
25
21
|
|
26
|
-
Semantic_puppet will work on several ruby versions, including 1.9.3,
|
27
|
-
2.
|
28
|
-
[r10k](https://github.com/puppetlabs/r10k).
|
22
|
+
Semantic_puppet will work on several ruby versions, including 1.9.3,
|
23
|
+
2.0.0, 2.1.9 and 2.4.1. Please see the exact matrix in `.travis.yml`.
|
29
24
|
|
30
25
|
No gem/library requirements.
|
31
26
|
|
@@ -48,40 +43,22 @@ install it out of a git repository:
|
|
48
43
|
Usage
|
49
44
|
-----
|
50
45
|
|
51
|
-
SemanticPuppet is intended to be used as a library.
|
46
|
+
SemanticPuppet is intended to be used as a library.
|
52
47
|
|
53
48
|
### Version Range Operator Support
|
54
49
|
|
55
|
-
SemanticPuppet will support the same version range operators as those
|
56
|
-
publishing modules to [Puppet
|
57
|
-
documented at
|
58
|
-
|
59
|
-
|
60
|
-
### i18n
|
61
|
-
|
62
|
-
When adding new error or log messages please follow the instructions for
|
63
|
-
[writing translatable code](https://github.com/puppetlabs/gettext-setup-gem#writing-translatable-code).
|
64
|
-
|
65
|
-
The SemanticPuppet gem will default to outputing all error messages in English, but you may set the locale
|
66
|
-
using the `FastGettext.set_locale` method. If translations do not exist for the language you request then the gem will
|
67
|
-
default to English. The `set_locale` method will return the locale, as a string, that FastGettext will now
|
68
|
-
use to report PuppetForge errors.
|
69
|
-
|
70
|
-
``` ruby
|
71
|
-
# Assuming the German translations exist, this will set the reporting language
|
72
|
-
# to German
|
73
|
-
|
74
|
-
locale = FastGettext.set_locale "de_DE"
|
75
|
-
|
76
|
-
# If it successfully finds Germany's locale, locale will be "de_DE"
|
77
|
-
# If it fails to find any German locale, locale will be "en"
|
78
|
-
```
|
50
|
+
SemanticPuppet will support the same version range operators as those
|
51
|
+
used when publishing modules to [Puppet
|
52
|
+
Forge](https://forge.puppetlabs.com) which is documented at [Publishing
|
53
|
+
Modules on the Puppet
|
54
|
+
Forge](https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#dependencies-in-metadatajson).
|
79
55
|
|
80
56
|
Contributors
|
81
57
|
------------
|
82
58
|
|
83
|
-
Pieter van de Bruggen wrote the library originally
|
84
|
-
|
59
|
+
Pieter van de Bruggen wrote the library originally. See
|
60
|
+
[https://github.com/puppetlabs/semantic_puppet/graphs/contributors](https://github.com/puppetlabs/semantic_puppet/graphs/contributors)
|
61
|
+
for a list of contributors.
|
85
62
|
|
86
63
|
## Maintenance
|
87
64
|
|
@@ -90,4 +67,5 @@ Maintainers:
|
|
90
67
|
* Jesse Scott, jesse@puppet.com
|
91
68
|
* Anderson Mills, anderson@puppet.com
|
92
69
|
|
93
|
-
Tickets: File at
|
70
|
+
Tickets: File at
|
71
|
+
[https://tickets.puppet.com/browse/FORGE](https://tickets.puppet.com/browse/FORGE)
|
data/Rakefile
CHANGED
@@ -56,12 +56,3 @@ begin
|
|
56
56
|
rescue LoadError
|
57
57
|
warn "[Warning]: Could not load `bundler/gem_tasks`."
|
58
58
|
end
|
59
|
-
|
60
|
-
# Gettext tasks
|
61
|
-
begin
|
62
|
-
spec = Gem::Specification.find_by_name 'gettext-setup'
|
63
|
-
load "#{spec.gem_dir}/lib/tasks/gettext.rake"
|
64
|
-
GettextSetup.initialize(File.absolute_path('locales', File.dirname(__FILE__)))
|
65
|
-
rescue LoadError
|
66
|
-
warn "[Warning]: Could not load gettext tasks."
|
67
|
-
end
|
data/appveyor.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
version: 1.0.1.{build}
|
2
|
+
clone_depth: 10
|
3
|
+
environment:
|
4
|
+
matrix:
|
5
|
+
- RUBY_VERSION: 193
|
6
|
+
- RUBY_VERSION: 23-x64
|
7
|
+
- RUBY_VERSION: 21-x64
|
8
|
+
matrix:
|
9
|
+
fast_finish: true
|
10
|
+
install:
|
11
|
+
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
12
|
+
- bundle install --jobs 4 --retry 2
|
13
|
+
build: off
|
14
|
+
test_script:
|
15
|
+
- ruby -v
|
16
|
+
- gem -v
|
17
|
+
- bundle -v
|
18
|
+
- bundle exec rspec --format documentation --color spec/unit
|
data/lib/semantic_puppet.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
|
-
require 'gettext-setup'
|
2
|
-
|
3
1
|
module SemanticPuppet
|
4
|
-
GettextSetup.initialize(File.absolute_path('../locales', File.dirname(__FILE__)))
|
5
|
-
|
6
2
|
autoload :Version, 'semantic_puppet/version'
|
7
3
|
autoload :VersionRange, 'semantic_puppet/version_range'
|
8
4
|
autoload :Dependency, 'semantic_puppet/dependency'
|
@@ -15,7 +15,7 @@ module SemanticPuppet
|
|
15
15
|
def self.parse(ver)
|
16
16
|
match, major, minor, patch, prerelease, build = *ver.match(REGEX_FULL_RX)
|
17
17
|
|
18
|
-
raise ValidationFailure,
|
18
|
+
raise ValidationFailure, "Unable to parse '#{ver}' as a semantic version identifier" unless match
|
19
19
|
|
20
20
|
new(major.to_i, minor.to_i, patch.to_i, parse_prerelease(prerelease), parse_build(build)).freeze
|
21
21
|
end
|
@@ -42,7 +42,7 @@ module SemanticPuppet
|
|
42
42
|
return nil unless prerelease
|
43
43
|
prerelease.split('.').map do |x|
|
44
44
|
if x =~ /^\d+$/
|
45
|
-
raise ValidationFailure,
|
45
|
+
raise ValidationFailure, 'Numeric pre-release identifiers MUST NOT contain leading zeroes' if x.length > 1 && x.start_with?('0')
|
46
46
|
x.to_i
|
47
47
|
else
|
48
48
|
x
|
@@ -74,7 +74,7 @@ module SemanticPuppet
|
|
74
74
|
# Split on whitespace
|
75
75
|
simples = range.split(RANGE_SPLIT).map do |simple|
|
76
76
|
match_data = SIMPLE_EXPR.match(simple)
|
77
|
-
raise ArgumentError,
|
77
|
+
raise ArgumentError, "Unparsable version range: \"#{range_string}\"" unless match_data
|
78
78
|
operand = match_data[2]
|
79
79
|
|
80
80
|
# Case based on operator
|
@@ -104,7 +104,7 @@ module SemanticPuppet
|
|
104
104
|
|
105
105
|
def self.parse_partial(expr)
|
106
106
|
match_data = PARTIAL_EXPR.match(expr)
|
107
|
-
raise ArgumentError,
|
107
|
+
raise ArgumentError, "Unparsable version range: \"#{expr}\"" unless match_data
|
108
108
|
match_data
|
109
109
|
end
|
110
110
|
private_class_method :parse_partial
|
@@ -332,7 +332,7 @@ module SemanticPuppet
|
|
332
332
|
# @return [VersionRange] the common subset
|
333
333
|
# @api public
|
334
334
|
def intersection(other)
|
335
|
-
raise ArgumentError,
|
335
|
+
raise ArgumentError, "value must be a #{self.class.name}" unless other.is_a?(VersionRange)
|
336
336
|
result = @ranges.map { |range| other.ranges.map { |o_range| range.intersection(o_range) } }.flatten
|
337
337
|
result.compact!
|
338
338
|
result.uniq!
|
data/semantic_puppet.gemspec
CHANGED
@@ -22,8 +22,6 @@ spec = Gem::Specification.new do |s|
|
|
22
22
|
# Dependencies
|
23
23
|
s.required_ruby_version = '>= 1.9.3'
|
24
24
|
|
25
|
-
s.add_dependency "gettext-setup", ">= 0.3"
|
26
|
-
|
27
25
|
s.add_development_dependency "json", "~> 1.8.3" if RUBY_VERSION < '2.0'
|
28
26
|
s.add_development_dependency "rake"
|
29
27
|
s.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semantic_puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: gettext-setup
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.3'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0.3'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rake
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,6 +111,7 @@ files:
|
|
125
111
|
- LICENSE
|
126
112
|
- README.md
|
127
113
|
- Rakefile
|
114
|
+
- appveyor.yml
|
128
115
|
- lib/semantic_puppet.rb
|
129
116
|
- lib/semantic_puppet/dependency.rb
|
130
117
|
- lib/semantic_puppet/dependency/graph.rb
|
@@ -135,7 +122,6 @@ files:
|
|
135
122
|
- lib/semantic_puppet/gem_version.rb
|
136
123
|
- lib/semantic_puppet/version.rb
|
137
124
|
- lib/semantic_puppet/version_range.rb
|
138
|
-
- locales/config.yaml
|
139
125
|
- semantic_puppet.gemspec
|
140
126
|
- spec/spec_helper.rb
|
141
127
|
- spec/unit/semantic_puppet/dependency/graph_node_spec.rb
|
@@ -166,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
152
|
version: '0'
|
167
153
|
requirements: []
|
168
154
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.6.
|
155
|
+
rubygems_version: 2.6.8
|
170
156
|
signing_key:
|
171
157
|
specification_version: 4
|
172
158
|
summary: Useful tools for working with Semantic Versions.
|
data/locales/config.yaml
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# This is the project-specific configuration file for setting up
|
3
|
-
# fast_gettext for your project.
|
4
|
-
gettext:
|
5
|
-
# This is used for the name of the .pot and .po files; they will be
|
6
|
-
# called <project_name>.pot?
|
7
|
-
project_name: 'semantic_puppet'
|
8
|
-
# This is used in comments in the .pot and .po files to indicate what
|
9
|
-
# project the files belong to and should bea little more desctiptive than
|
10
|
-
# <project_name>
|
11
|
-
package_name: Semantic Puppet Gem
|
12
|
-
# The locale that the default messages in the .pot file are in
|
13
|
-
default_locale: en
|
14
|
-
# The email used for sending bug reports.
|
15
|
-
bugs_address: docs@puppetlabs.com
|
16
|
-
# The holder of the copyright.
|
17
|
-
copyright_holder: Puppet, Inc.
|
18
|
-
# Patterns for +Dir.glob+ used to find all files that might contain
|
19
|
-
# translatable content, relative to the project root directory
|
20
|
-
source_files:
|
21
|
-
- 'lib/**/*.rb'
|