New Upstream Release - ruby-semantic-puppet

Ready changes

Summary

Merged new upstream version: 1.1.0 (was: 1.0.4).

Resulting package

Built on 2023-05-02T12:07 (took 12m1s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases ruby-semantic-puppet

Lintian Result

Diff

diff --git a/.github/workflows/mend.yaml b/.github/workflows/mend.yaml
new file mode 100644
index 0000000..b69831d
--- /dev/null
+++ b/.github/workflows/mend.yaml
@@ -0,0 +1,35 @@
+---
+name: Mend Monitor
+on:
+  push:
+    branches:
+      - main
+jobs:
+  mend_monitor:
+    if: ${{ github.repository_owner == 'puppetlabs' }}
+    runs-on: ubuntu-latest
+    name: Mend Monitor
+    steps:
+      - name: Checkout current PR
+        uses: actions/checkout@v3
+      - name: Setup Ruby
+        uses: ruby/setup-ruby@v1
+        with:
+          ruby-version: 2.7
+      - name: Create lock
+        run: bundle lock
+      - uses: actions/setup-java@v3
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Download Mend
+        run: curl -o wss-unified-agent.jar https://unified-agent.s3.amazonaws.com/wss-unified-agent.jar
+      - name: Run Mend
+        run: java -jar wss-unified-agent.jar
+        env:
+          WS_APIKEY: ${{ secrets.MEND_API_KEY }}
+          WS_WSS_URL: https://saas-eu.whitesourcesoftware.com/agent
+          WS_USERKEY: ${{ secrets.MEND_TOKEN }}
+          WS_PRODUCTNAME: Puppet Agent
+          WS_PROJECTNAME: ${{ github.event.repository.name }}
+
diff --git a/.github/workflows/rspec_tests.yaml b/.github/workflows/rspec_tests.yaml
new file mode 100644
index 0000000..c6ae39a
--- /dev/null
+++ b/.github/workflows/rspec_tests.yaml
@@ -0,0 +1,40 @@
+---
+name: RSpec test
+
+on:
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
+
+jobs:
+  rspec_tests:
+    name: ${{ matrix.cfg.os }}(ruby ${{ matrix.cfg.ruby }})
+    strategy:
+      matrix:
+        cfg:
+          - {os: ubuntu-20.04, ruby: '2.7'}
+          - {os: ubuntu-20.04, ruby: '3.0'}
+          - {os: ubuntu-20.04, ruby: '3.2'}
+          - {os: ubuntu-20.04, ruby: 'jruby-9.4.2'}
+          - {os: windows-2019, ruby: '2.7'}
+          - {os: windows-2019, ruby: '3.0'}
+          - {os: windows-2019, ruby: '3.2'}
+
+    runs-on: ${{ matrix.cfg.os }}
+    steps:
+      - name: Checkout current PR
+        uses: actions/checkout@v3
+
+      - name: Install ruby version ${{ matrix.cfg.ruby }}
+        uses: ruby/setup-ruby@v1
+        with:
+          ruby-version: ${{ matrix.cfg.ruby }}
+
+      - name: Update rubygems and install gems
+        run: |
+          gem update --system --silent --no-document
+          bundle config set without packaging
+          bundle install --jobs 4 --retry 3
+      
+      - run: bundle exec rake spec
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 335e4e4..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-language: ruby
-
-cache: bundler
-
-before_install:
-  - bundle -v
-  - rm Gemfile.lock || true
-  - gem update --system
-  - gem update bundler
-  - gem --version
-  - bundle -v
-
-script: "bundle exec rspec --color --format documentation spec/unit"
-
-notifications:
-  email: false
-
-sudo: false
-
-rvm:
-  - "2.5.8"
-  - "2.6.6"
-  - "2.7.2"
-  - "3.0.0"
-  - "jruby-19mode"
-
-jdk:
-  - openjdk8
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 119f678..6a97c1e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](http://semver.org/).
 
+## 1.1.0 - 2023-04-10
+- Fix unsatisfiable if resolve() fails ([ekohl](https://github.com/ekohl))
+- Move from travis/appveyor to GitHub actions ([AriaXLi](https://github.com/AriaXLi))
+- Add Ruby 3.2 testing ([mhashizume](https://github.com/mhashizume))
+
 ## 1.0.4 - 2021-06-08
 - Remove dependency on SortedSet
 - Add Ruby 3.0 to Travis and AppVeyor
diff --git a/CODEOWNERS b/CODEOWNERS
index 83b8b97..03deaa3 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1 +1 @@
-* @puppetlabs/forge-team @puppetlabs/platform-core
+* @puppetlabs/phoenix
diff --git a/README.md b/README.md
index 2c8e6aa..9735f71 100644
--- a/README.md
+++ b/README.md
@@ -19,8 +19,7 @@ This library is used by a number of Puppet Labs projects, including
 Requirements
 ------------
 
-Semantic_puppet will work on several ruby versions, including 1.9.3,
-2.0.0, 2.1.9 and 2.4.1. Please see the exact matrix in `.travis.yml`.
+semantic_puppet will work on Ruby version 2.7 and greater.
 
 No gem/library requirements.
 
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index d5f2fcd..0000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-version: 1.0.1.{build}
-clone_depth: 10
-image: Visual Studio 2019
-environment:
-  matrix:
-    - RUBY_VERSION: 25-x64
-    - RUBY_VERSION: 26-x64
-    - RUBY_VERSION: 27-x64
-    - RUBY_VERSION: 30-x64
-matrix:
-  fast_finish: true
-install:
-  - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
-  - bundle install --jobs 4 --retry 2
-build: off
-test_script:
-  - ruby -v
-  - gem -v
-  - bundle -v
-  - bundle exec rspec --format documentation --color spec/unit
diff --git a/debian/changelog b/debian/changelog
index caaa040..bb9928f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ruby-semantic-puppet (1.1.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Tue, 02 May 2023 11:56:01 -0000
+
 ruby-semantic-puppet (1.0.4-1) unstable; urgency=medium
 
   * Team upload.
diff --git a/lib/semantic_puppet/dependency.rb b/lib/semantic_puppet/dependency.rb
index 0ebc87b..ceb8c48 100644
--- a/lib/semantic_puppet/dependency.rb
+++ b/lib/semantic_puppet/dependency.rb
@@ -73,7 +73,7 @@ module SemanticPuppet
     # @param graph [Graph] the root of a dependency graph
     # @return [Array<ModuleRelease>] the list of releases to act on
     def resolve(graph)
-      @module_dependencies, @satisfieds = nil
+      @module_dependencies = @satisfieds = nil
 
       catch :next do
         return walk(graph, graph.dependencies.dup)
@@ -120,6 +120,8 @@ module SemanticPuppet
       name = dependencies.keys.sort.first
       deps = dependencies.delete(name)
 
+      @module_dependencies |= [name]
+
       # ... (and stepping over it if we've seen it before) ...
       unless (deps & considering).empty?
         return walk(graph, dependencies, *considering)
@@ -127,8 +129,6 @@ module SemanticPuppet
 
       # ... we'll iterate through the list of possible versions in order.
       preferred_releases(deps).reverse_each do |dep|
-        @module_dependencies |= [name]
-
         # We should skip any releases that violate any module's constraints.
         unless [graph, *considering].all? { |x| x.satisfies_constraints?(dep) }
           next
diff --git a/lib/semantic_puppet/gem_version.rb b/lib/semantic_puppet/gem_version.rb
index 7b1fc84..cdc0764 100644
--- a/lib/semantic_puppet/gem_version.rb
+++ b/lib/semantic_puppet/gem_version.rb
@@ -1,3 +1,3 @@
 module SemanticPuppet
-  VERSION = '1.0.4'
+  VERSION = '1.1.0'
 end
diff --git a/semantic_puppet.gemspec b/semantic_puppet.gemspec
index 053f8cf..2faaa05 100644
--- a/semantic_puppet.gemspec
+++ b/semantic_puppet.gemspec
@@ -20,7 +20,7 @@ spec = Gem::Specification.new do |s|
   s.require_paths = ["lib"]
 
   # Dependencies
-  s.required_ruby_version = '>= 1.9.3'
+  s.required_ruby_version = '>= 2.7.0'
 
   s.add_development_dependency "json", "~> 1.8.3" if RUBY_VERSION < '2.0'
   s.add_development_dependency "rake"
diff --git a/spec/unit/semantic_puppet/dependency_spec.rb b/spec/unit/semantic_puppet/dependency_spec.rb
index 079db01..60ed572 100644
--- a/spec/unit/semantic_puppet/dependency_spec.rb
+++ b/spec/unit/semantic_puppet/dependency_spec.rb
@@ -247,6 +247,16 @@ describe SemanticPuppet::Dependency do
           expect { foo('1.1.0') }.to raise_exception with_message
           expect { foo('1.1.0') }.to raise_exception /\bfoo\b/
         end
+
+        it 'sets unsatisfiable' do
+          add_source_modules('foo', %w[ 1.1.0 ], 'bar' => '1.x')
+          add_source_modules('bar', %w[ 0.0.1 0.1.0-a 0.1.0 ])
+
+          with_message = /Could not find satisfying releases/
+          expect { foo('1.1.0') }.to raise_exception with_message
+
+          expect(SemanticPuppet::Dependency.unsatisfiable).to eq('foo')
+        end
       end
     end
 

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/graph.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/graph_node.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/module_release.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/source.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/unsatisfiable_graph.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/gem_version.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/version.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/version_range.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/specifications/semantic_puppet-1.1.0.gemspec

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/dependency.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/dependency/graph.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/dependency/graph_node.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/dependency/module_release.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/dependency/source.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/dependency/unsatisfiable_graph.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/gem_version.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/version.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/gems/semantic_puppet-1.0.4/lib/semantic_puppet/version_range.rb
-rw-r--r--  root/root   /usr/share/rubygems-integration/all/specifications/semantic_puppet-1.0.4.gemspec

No differences were encountered in the control files

More details

Full run details