semantic_puppet 1.0.4 → 1.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e37126b8cf6e3af3f6fb7f7e98ab38223bfd3466edd4eb1bbd99b20f5f4e22f6
4
- data.tar.gz: 3f200910bfea3ee0d551670d3e35f943e3a64e82e3bcf5e280aec8ce29e292a3
3
+ metadata.gz: 7eca696bafc0fd31fcab209996686beb644ab5822f0dd1097738b756efa757cb
4
+ data.tar.gz: 53602f9333cf344a567fcd371e97e1160327991164a5f2bca4927c1cbf372b74
5
5
  SHA512:
6
- metadata.gz: 16b7f38f0211f02448d3f5bbcd2a880265a8980471cb40d389beb79f85baac2cff960e3a014ab3cf01b74b2b2047e19f7b7a74f6ecb97dc1d9c5230ffd0b2265
7
- data.tar.gz: b58ccbd2a4cd948cc53201f9f9bc263e2d3d8b4a91f242849292a16867b156e610822c8adf5485b6b97f265a631963c802dec7e68f2483bd0566781b77848f30
6
+ metadata.gz: 31e8634019028c678bfb59b7f8ec71fa8d839af8bb9475add780fd330e943246edc4a1cb803dc5e6a270ca4c48229d9fcbaf917d1bc00c9fd5a70b8896e9c91b
7
+ data.tar.gz: 27f26157df4621ad97687fdcfd6b8f0f69dd4e8c70fbb8f36dd35ec1e129998ce97f374342336607dd12b76833e17393762694ad3b224cad16315b651eee16b0
@@ -0,0 +1,17 @@
1
+ version: 2
2
+ updates:
3
+ # raise PRs for gem updates
4
+ - package-ecosystem: bundler
5
+ directory: "/"
6
+ schedule:
7
+ interval: daily
8
+ time: "13:00"
9
+ open-pull-requests-limit: 10
10
+
11
+ # Maintain dependencies for GitHub Actions
12
+ - package-ecosystem: github-actions
13
+ directory: "/"
14
+ schedule:
15
+ interval: daily
16
+ time: "13:00"
17
+ open-pull-requests-limit: 10
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Mend Monitor
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ jobs:
8
+ mend_monitor:
9
+ if: ${{ github.repository_owner == 'puppetlabs' }}
10
+ runs-on: ubuntu-latest
11
+ name: Mend Monitor
12
+ steps:
13
+ - name: Checkout current PR
14
+ uses: actions/checkout@v4
15
+ - name: Setup Ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: 2.7
19
+ - name: Create lock
20
+ run: bundle lock
21
+ - uses: actions/setup-java@v4
22
+ with:
23
+ distribution: 'temurin'
24
+ java-version: '17'
25
+ - name: Download Mend
26
+ run: curl -o wss-unified-agent.jar https://unified-agent.s3.amazonaws.com/wss-unified-agent.jar
27
+ - name: Run Mend
28
+ run: java -jar wss-unified-agent.jar
29
+ env:
30
+ WS_APIKEY: ${{ secrets.MEND_API_KEY }}
31
+ WS_WSS_URL: https://saas-eu.whitesourcesoftware.com/agent
32
+ WS_USERKEY: ${{ secrets.MEND_TOKEN }}
33
+ WS_PRODUCTNAME: Puppet Agent
34
+ WS_PROJECTNAME: ${{ github.event.repository.name }}
35
+
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: RSpec test
3
+
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ jobs:
11
+ rspec_tests:
12
+ name: ${{ matrix.cfg.os }}(ruby ${{ matrix.cfg.ruby }})
13
+ strategy:
14
+ matrix:
15
+ cfg:
16
+ - {os: ubuntu-22.04, ruby: '2.7'}
17
+ - {os: ubuntu-22.04, ruby: '3.0'}
18
+ - {os: ubuntu-22.04, ruby: '3.2'}
19
+ - {os: ubuntu-22.04, ruby: '3.3'}
20
+ - {os: ubuntu-22.04, ruby: 'jruby-9.4.2'}
21
+ - {os: windows-2019, ruby: '2.7'}
22
+ - {os: windows-2019, ruby: '3.0'}
23
+ - {os: windows-2019, ruby: '3.2'}
24
+
25
+ runs-on: ${{ matrix.cfg.os }}
26
+ steps:
27
+ - name: Checkout current PR
28
+ uses: actions/checkout@v4
29
+
30
+ - name: Install ruby version ${{ matrix.cfg.ruby }}
31
+ uses: ruby/setup-ruby@v1
32
+ with:
33
+ ruby-version: ${{ matrix.cfg.ruby }}
34
+ bundler-cache: true
35
+ - run: bundle exec rake spec
36
+ - name: Verify gem builds
37
+ run: gem build --verbose *.gemspec
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
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.1.1 - 2025-01-07
6
+
7
+ - Fix method name typo ([joshcooper](https://github.com/joshcooper))
8
+
9
+ ## 1.1.0 - 2023-04-10
10
+ - Fix unsatisfiable if resolve() fails ([ekohl](https://github.com/ekohl))
11
+ - Move from travis/appveyor to GitHub actions ([AriaXLi](https://github.com/AriaXLi))
12
+ - Add Ruby 3.2 testing ([mhashizume](https://github.com/mhashizume))
13
+
5
14
  ## 1.0.4 - 2021-06-08
6
15
  - Remove dependency on SortedSet
7
16
  - Add Ruby 3.0 to Travis and AppVeyor
data/CODEOWNERS CHANGED
@@ -1 +1 @@
1
- * @puppetlabs/forge-team @puppetlabs/platform-core
1
+ * @puppetlabs/phoenix
data/README.md CHANGED
@@ -19,8 +19,7 @@ This library is used by a number of Puppet Labs projects, including
19
19
  Requirements
20
20
  ------------
21
21
 
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`.
22
+ semantic_puppet will work on Ruby version 2.7 and greater.
24
23
 
25
24
  No gem/library requirements.
26
25
 
@@ -73,7 +73,7 @@ module SemanticPuppet
73
73
  # @param graph [Graph] the root of a dependency graph
74
74
  # @return [Array<ModuleRelease>] the list of releases to act on
75
75
  def resolve(graph)
76
- @module_dependencies, @satisfieds = nil
76
+ @module_dependencies = @satisfieds = nil
77
77
 
78
78
  catch :next do
79
79
  return walk(graph, graph.dependencies.dup)
@@ -120,6 +120,8 @@ module SemanticPuppet
120
120
  name = dependencies.keys.sort.first
121
121
  deps = dependencies.delete(name)
122
122
 
123
+ @module_dependencies |= [name]
124
+
123
125
  # ... (and stepping over it if we've seen it before) ...
124
126
  unless (deps & considering).empty?
125
127
  return walk(graph, dependencies, *considering)
@@ -127,8 +129,6 @@ module SemanticPuppet
127
129
 
128
130
  # ... we'll iterate through the list of possible versions in order.
129
131
  preferred_releases(deps).reverse_each do |dep|
130
- @module_dependencies |= [name]
131
-
132
132
  # We should skip any releases that violate any module's constraints.
133
133
  unless [graph, *considering].all? { |x| x.satisfies_constraints?(dep) }
134
134
  next
@@ -1,3 +1,3 @@
1
1
  module SemanticPuppet
2
- VERSION = '1.0.4'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -398,8 +398,8 @@ module SemanticPuppet
398
398
 
399
399
  # Merge two ranges so that the result matches the intersection of all matching versions.
400
400
  #
401
- # @param range [AbastractRange] the range to intersect with
402
- # @return [AbastractRange,nil] the intersection between the ranges
401
+ # @param range [AbstractRange] the range to intersect with
402
+ # @return [AbstractRange,nil] the intersection between the ranges
403
403
  #
404
404
  # @api private
405
405
  def intersection(range)
@@ -474,7 +474,7 @@ module SemanticPuppet
474
474
  excl_end = other.exclude_end?
475
475
  else
476
476
  max = self.end
477
- excl_end = exclude_end && other.exclude_end?
477
+ excl_end = exclude_end? && other.exclude_end?
478
478
  end
479
479
 
480
480
  MinMaxRange.create(excl_begin ? GtRange.new(min) : GtEqRange.new(min), excl_end ? LtRange.new(max) : LtEqRange.new(max))
@@ -499,7 +499,7 @@ module SemanticPuppet
499
499
  # Checks if this matcher accepts a prerelease with the same major, minor, patch triple as the given version. Only matchers
500
500
  # where this has been explicitly stated will respond `true` to this method
501
501
  #
502
- # @return [Boolean] `true` if this matcher accepts a prerelase with the tuple from the given version
502
+ # @return [Boolean] `true` if this matcher accepts a prerelease with the tuple from the given version
503
503
  def test_prerelease?(_)
504
504
  false
505
505
  end
@@ -20,9 +20,8 @@ spec = Gem::Specification.new do |s|
20
20
  s.require_paths = ["lib"]
21
21
 
22
22
  # Dependencies
23
- s.required_ruby_version = '>= 1.9.3'
23
+ s.required_ruby_version = '>= 2.7.0'
24
24
 
25
- s.add_development_dependency "json", "~> 1.8.3" if RUBY_VERSION < '2.0'
26
25
  s.add_development_dependency "rake"
27
26
  s.add_development_dependency "rspec"
28
27
 
@@ -247,6 +247,16 @@ describe SemanticPuppet::Dependency do
247
247
  expect { foo('1.1.0') }.to raise_exception with_message
248
248
  expect { foo('1.1.0') }.to raise_exception /\bfoo\b/
249
249
  end
250
+
251
+ it 'sets unsatisfiable' do
252
+ add_source_modules('foo', %w[ 1.1.0 ], 'bar' => '1.x')
253
+ add_source_modules('bar', %w[ 0.0.1 0.1.0-a 0.1.0 ])
254
+
255
+ with_message = /Could not find satisfying releases/
256
+ expect { foo('1.1.0') }.to raise_exception with_message
257
+
258
+ expect(SemanticPuppet::Dependency.unsatisfiable).to eq('foo')
259
+ end
250
260
  end
251
261
  end
252
262
 
@@ -270,6 +270,16 @@ describe SemanticPuppet::VersionRange do
270
270
  expect(range.exclude_end?).to be_nil
271
271
  end
272
272
  end
273
+
274
+ context 'prerelease' do
275
+ test_expressions(
276
+ [ '>=5.0.1-rc0' || '>=0.5.0' ] => {
277
+ :to_str => '>=5.0.1-rc0',
278
+ :includes => ['5.0.1-rc0', '5.0.1'], # should include 1.0.0
279
+ :excludes => ['1.0.0', '5.0.0-rc0', '5.0.2-rc0']
280
+ }
281
+ )
282
+ end
273
283
  end
274
284
 
275
285
  context 'invalid expressions' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic_puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-08 00:00:00.000000000 Z
11
+ date: 2025-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -102,9 +102,11 @@ executables: []
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
+ - ".github/dependabot.yml"
106
+ - ".github/workflows/mend.yaml"
107
+ - ".github/workflows/rspec_tests.yaml"
105
108
  - ".gitignore"
106
109
  - ".rubocop.yml"
107
- - ".travis.yml"
108
110
  - ".yardopts"
109
111
  - CHANGELOG.md
110
112
  - CODEOWNERS
@@ -112,7 +114,6 @@ files:
112
114
  - LICENSE
113
115
  - README.md
114
116
  - Rakefile
115
- - appveyor.yml
116
117
  - lib/semantic_puppet.rb
117
118
  - lib/semantic_puppet/dependency.rb
118
119
  - lib/semantic_puppet/dependency/graph.rb
@@ -145,14 +146,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
146
  requirements:
146
147
  - - ">="
147
148
  - !ruby/object:Gem::Version
148
- version: 1.9.3
149
+ version: 2.7.0
149
150
  required_rubygems_version: !ruby/object:Gem::Requirement
150
151
  requirements:
151
152
  - - ">="
152
153
  - !ruby/object:Gem::Version
153
154
  version: '0'
154
155
  requirements: []
155
- rubygems_version: 3.0.8
156
+ rubygems_version: 3.4.22
156
157
  signing_key:
157
158
  specification_version: 4
158
159
  summary: Useful tools for working with Semantic Versions.
data/.travis.yml DELETED
@@ -1,29 +0,0 @@
1
- ---
2
- language: ruby
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
-
14
- script: "bundle exec rspec --color --format documentation spec/unit"
15
-
16
- notifications:
17
- email: false
18
-
19
- sudo: false
20
-
21
- rvm:
22
- - "2.5.8"
23
- - "2.6.6"
24
- - "2.7.2"
25
- - "3.0.0"
26
- - "jruby-19mode"
27
-
28
- jdk:
29
- - openjdk8
data/appveyor.yml DELETED
@@ -1,20 +0,0 @@
1
- version: 1.0.1.{build}
2
- clone_depth: 10
3
- image: Visual Studio 2019
4
- environment:
5
- matrix:
6
- - RUBY_VERSION: 25-x64
7
- - RUBY_VERSION: 26-x64
8
- - RUBY_VERSION: 27-x64
9
- - RUBY_VERSION: 30-x64
10
- matrix:
11
- fast_finish: true
12
- install:
13
- - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
14
- - bundle install --jobs 4 --retry 2
15
- build: off
16
- test_script:
17
- - ruby -v
18
- - gem -v
19
- - bundle -v
20
- - bundle exec rspec --format documentation --color spec/unit