Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rubygem-sshkit for openSUSE:Factory checked in at 2026-07-15 16:34:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-sshkit (Old) and /work/SRC/openSUSE:Factory/.rubygem-sshkit.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-sshkit" Wed Jul 15 16:34:15 2026 rev:2 rq:1365337 version:1.25.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-sshkit/rubygem-sshkit.changes 2024-12-13 22:34:58.553658432 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-sshkit.new.1991/rubygem-sshkit.changes 2026-07-15 16:52:02.267741655 +0200 @@ -1,0 +2,6 @@ +Mon Jul 13 11:25:42 UTC 2026 - Aleksei Burlakov <[email protected]> + +- New upstream release 1.25.0: + * Add support for nested as (#558) @ThomasSevestre + +------------------------------------------------------------------- Old: ---- sshkit-1.23.2.gem New: ---- sshkit-1.25.0.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-sshkit.spec ++++++ --- /var/tmp/diff_new_pack.xs7gdi/_old 2026-07-15 16:52:09.703994319 +0200 +++ /var/tmp/diff_new_pack.xs7gdi/_new 2026-07-15 16:52:09.703994319 +0200 @@ -1,7 +1,7 @@ # # spec file for package rubygem-sshkit # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-sshkit -Version: 1.23.2 +Version: 1.25.0 Release: 0 %define mod_name sshkit %define mod_full_name %{mod_name}-%{version} ++++++ sshkit-1.23.2.gem -> sshkit-1.25.0.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.github/workflows/ci.yml new/.github/workflows/ci.yml --- old/.github/workflows/ci.yml 2024-10-15 06:02:57.000000000 +0200 +++ new/.github/workflows/ci.yml 1980-01-02 01:00:00.000000000 +0100 @@ -8,21 +8,9 @@ runs-on: ubuntu-latest strategy: matrix: - ruby: - [ - "2.3", - "2.4", - "2.5", - "2.6", - "2.7", - "3.0", - "3.1", - "3.2", - "3.3", - "head", - ] + ruby: ["2.5", "2.6", "2.7", "3.0", "3.1", "3.2", "3.3", "3.4", "head"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: @@ -33,24 +21,9 @@ env: RUBYOPT: ${{ startsWith(matrix.ruby, 'head') && '--enable=frozen-string-literal' || '' }} - test-legacy: - runs-on: ubuntu-20.04 - strategy: - matrix: - ruby: ["2.0", "2.1", "2.2"] - steps: - - uses: actions/checkout@v4 - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - bundler-cache: true - - name: Run tests - run: bundle exec rake test:units - test-all: runs-on: ubuntu-latest - needs: [test, test-legacy] + needs: test if: always() steps: - name: All tests ok @@ -63,7 +36,7 @@ rubocop: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: @@ -76,9 +49,9 @@ runs-on: ubuntu-latest strategy: matrix: - ruby: ["2.0", "ruby"] + ruby: ["2.5", "ruby"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.github/workflows/push.yml new/.github/workflows/push.yml --- old/.github/workflows/push.yml 2024-10-15 06:02:57.000000000 +0200 +++ new/.github/workflows/push.yml 1980-01-02 01:00:00.000000000 +0100 @@ -7,6 +7,6 @@ steps: - uses: actions/checkout@master - name: Draft Release - uses: toolmantim/[email protected] + uses: toolmantim/[email protected] env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.rubocop.yml new/.rubocop.yml --- old/.rubocop.yml 2024-10-15 06:02:57.000000000 +0200 +++ new/.rubocop.yml 1980-01-02 01:00:00.000000000 +0100 @@ -3,7 +3,7 @@ AllCops: DisplayCopNames: true DisplayStyleGuide: true - TargetRubyVersion: 2.0 + TargetRubyVersion: 2.5 Lint/AmbiguousBlockAssociation: Enabled: false @@ -18,12 +18,12 @@ Enabled: false Style/DoubleNegation: Enabled: false -Style/FileName: +Naming/FileName: Exclude: - "Dangerfile" -Style/IndentHeredoc: +Layout/IndentHeredoc: Enabled: false -Style/SpaceAroundEqualsInParameterDefault: +Layout/SpaceAroundEqualsInParameterDefault: EnforcedStyle: no_space Style/StringLiterals: EnforcedStyle: double_quotes @@ -47,7 +47,7 @@ Enabled: false Metrics/MethodLength: Enabled: false -Style/PredicateName: +Naming/PredicateName: Enabled: false Metrics/LineLength: Enabled: false @@ -59,5 +59,5 @@ Enabled: false Metrics/ModuleLength: Enabled: false -Style/AccessorMethodName: +Naming/AccessorMethodName: Enabled: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.rubocop_todo.yml new/.rubocop_todo.yml --- old/.rubocop_todo.yml 2024-10-15 06:02:57.000000000 +0200 +++ new/.rubocop_todo.yml 1980-01-02 01:00:00.000000000 +0100 @@ -439,7 +439,7 @@ # Offense count: 3 # Configuration parameters: SupportedStyles. # SupportedStyles: snake_case, camelCase -Style/MethodName: +Naming/MethodName: EnforcedStyle: snake_case Exclude: - 'test/unit/test_color.rb' @@ -460,7 +460,7 @@ - 'lib/sshkit/command.rb' # Offense count: 1 -Style/OpMethod: +Naming/BinaryOperatorParameterName: Exclude: - 'lib/sshkit/host.rb' @@ -611,7 +611,7 @@ # Offense count: 1 # Configuration parameters: EnforcedStyle, SupportedStyles. # SupportedStyles: snake_case, normalcase, non_integer -Style/VariableNumber: +Naming/VariableNumber: Exclude: - 'test/unit/backends/test_connection_pool.rb' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Gemfile new/Gemfile --- old/Gemfile 2024-10-15 06:02:57.000000000 +0200 +++ new/Gemfile 1980-01-02 01:00:00.000000000 +0100 @@ -1,8 +1,3 @@ source 'https://rubygems.org' gemspec - -# public_suffix 3+ requires ruby 2.1+ -if Gem::Requirement.new('< 2.1').satisfied_by?(Gem::Version.new(RUBY_VERSION)) - gem 'public_suffix', '< 3' -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/RELEASING.md new/RELEASING.md --- old/RELEASING.md 2024-10-15 06:02:57.000000000 +0200 +++ new/RELEASING.md 1980-01-02 01:00:00.000000000 +0100 @@ -4,7 +4,7 @@ * You must have commit rights to the SSHKit repository. * You must have push rights for the sshkit gem on rubygems.org. -* You must be using Ruby >= 2.1.0. +* You must be using Ruby >= 2.5.0. ## How to release Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sshkit/backends/abstract.rb new/lib/sshkit/backends/abstract.rb --- old/lib/sshkit/backends/abstract.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/lib/sshkit/backends/abstract.rb 1980-01-02 01:00:00.000000000 +0100 @@ -103,6 +103,7 @@ end def as(who, &_block) + who_old = [@user, @group] if who.is_a? Hash @user = who[:user] || who["user"] @group = who[:group] || who["group"] @@ -118,8 +119,7 @@ EOTEST yield ensure - remove_instance_variable(:@user) - remove_instance_variable(:@group) + @user, @group = *who_old end class << self @@ -135,8 +135,7 @@ # Backends which extend the Abstract backend should implement the following methods: def upload!(_local, _remote, _options = {}) raise MethodUnavailableError end def download!(_remote, _local=nil, _options = {}) raise MethodUnavailableError end - def execute_command(_cmd) raise MethodUnavailableError end - private :execute_command # Can inline after Ruby 2.1 + private def execute_command(_cmd) raise MethodUnavailableError end private diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sshkit/backends/connection_pool.rb new/lib/sshkit/backends/connection_pool.rb --- old/lib/sshkit/backends/connection_pool.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/lib/sshkit/backends/connection_pool.rb 1980-01-02 01:00:00.000000000 +0100 @@ -1,5 +1,4 @@ require "monitor" -require "thread" # Since we call to_s on new connection arguments and use that as a cache key, we # need to make sure the memory address of the object is not used as part of the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sshkit/runners/parallel.rb new/lib/sshkit/runners/parallel.rb --- old/lib/sshkit/runners/parallel.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/lib/sshkit/runners/parallel.rb 1980-01-02 01:00:00.000000000 +0100 @@ -1,5 +1,3 @@ -require 'thread' - module SSHKit module Runner diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sshkit/version.rb new/lib/sshkit/version.rb --- old/lib/sshkit/version.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/lib/sshkit/version.rb 1980-01-02 01:00:00.000000000 +0100 @@ -1,3 +1,3 @@ module SSHKit - VERSION = "1.23.2".freeze + VERSION = "1.25.0".freeze end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2024-10-15 06:02:57.000000000 +0200 +++ new/metadata 1980-01-02 01:00:00.000000000 +0100 @@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: sshkit version: !ruby/object:Gem::Version - version: 1.23.2 + version: 1.25.0 platform: ruby authors: - Lee Hambley - Tom Clements bindir: bin cert_chain: [] -date: 2024-10-15 00:00:00.000000000 Z +date: 1980-01-02 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: base64 @@ -25,6 +25,20 @@ - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency + name: logger + requirement: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' + type: :runtime + prerelease: false + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' +- !ruby/object:Gem::Dependency name: net-ssh requirement: !ruby/object:Gem::Requirement requirements: @@ -123,20 +137,6 @@ - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency - name: rainbow - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 2.2.2 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 2.2.2 -- !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: @@ -156,14 +156,14 @@ requirements: - - "~>" - !ruby/object:Gem::Version - version: 0.49.1 + version: 0.52.0 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version - version: 0.49.1 + version: 0.52.0 - !ruby/object:Gem::Dependency name: mocha requirement: !ruby/object:Gem::Requirement @@ -329,14 +329,14 @@ requirements: - - ">=" - !ruby/object:Gem::Version - version: '0' + version: '2.5' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] -rubygems_version: 3.6.0.dev +rubygems_version: 3.7.2 specification_version: 4 summary: SSHKit makes it easy to write structured, testable SSH commands in Ruby test_files: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshkit.gemspec new/sshkit.gemspec --- old/sshkit.gemspec 2024-10-15 06:02:57.000000000 +0200 +++ new/sshkit.gemspec 1980-01-02 01:00:00.000000000 +0100 @@ -19,19 +19,20 @@ gem.name = "sshkit" gem.require_paths = ["lib"] gem.version = SSHKit::VERSION + gem.required_ruby_version = ">= 2.5" - gem.add_runtime_dependency('base64') if RUBY_VERSION >= "2.4" + gem.add_runtime_dependency('base64') + gem.add_runtime_dependency('logger') gem.add_runtime_dependency('net-ssh', '>= 2.8.0') gem.add_runtime_dependency('net-scp', '>= 1.1.2') gem.add_runtime_dependency('net-sftp', '>= 2.1.2') - gem.add_runtime_dependency('ostruct') if RUBY_VERSION >= "2.5" + gem.add_runtime_dependency('ostruct') gem.add_development_dependency('danger') gem.add_development_dependency('minitest', '>= 5.0.0') gem.add_development_dependency('minitest-reporters') - gem.add_development_dependency('rainbow', '~> 2.2.2') gem.add_development_dependency('rake') - gem.add_development_dependency('rubocop', "~> 0.49.1") + gem.add_development_dependency('rubocop', "~> 0.52.0") gem.add_development_dependency('mocha') gem.add_development_dependency('bcrypt_pbkdf') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/functional/backends/test_netssh.rb new/test/functional/backends/test_netssh.rb --- old/test/functional/backends/test_netssh.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/test/functional/backends/test_netssh.rb 1980-01-02 01:00:00.000000000 +0100 @@ -131,7 +131,7 @@ def test_test_does_not_raise_on_non_zero_exit_status Netssh.new(a_host) do |_host| - test :false + test :false # rubocop:disable Lint/BooleanSymbol end.run end @@ -151,7 +151,7 @@ # ensure we enable connection pool SSHKit::Backend::Netssh.pool.idle_timeout = 10 Netssh.new(a_host) do |_host| - test :false + test :false # rubocop:disable Lint/BooleanSymbol end.run sleep 2.5 captured_command_result = nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/unit/backends/test_abstract.rb new/test/unit/backends/test_abstract.rb --- old/test/unit/backends/test_abstract.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/test/unit/backends/test_abstract.rb 1980-01-02 01:00:00.000000000 +0100 @@ -111,13 +111,63 @@ assert_equal 'cd ~/foo && /usr/bin/env cat file', backend.executed_command.to_command end - def test_background_logs_deprecation_warnings - deprecation_out = - if RUBY_VERSION < "2.3" - '' - else - +'' + def test_as_properly_clears + backend = ExampleBackend.new do + as :root do + execute :cat, 'file', :strip => false + end + + execute :cat, 'file', :strip => false + end + + backend.run + + assert_equal '/usr/bin/env cat file', backend.executed_command.to_command + end + + def test_as_root + backend = ExampleBackend.new do + as :root do + execute :cat, 'file', :strip => false + end + end + + backend.run + + assert_equal 'sudo -u root -- sh -c /usr/bin/env\\ cat\\ file', backend.executed_command.to_command + end + + def test_nested_as + backend = ExampleBackend.new do + as :root do + as :other_user do + execute :cat, 'file', :strip => false + end + end + end + + backend.run + + assert_equal 'sudo -u other_user -- sh -c /usr/bin/env\\ cat\\ file', backend.executed_command.to_command + end + + def test_nested_as_properly_clears + backend = ExampleBackend.new do + as :root do + as :other_user do + execute :cat, 'file', :strip => false + end + execute :cat, 'file', :strip => false end + end + + backend.run + + assert_equal 'sudo -u root -- sh -c /usr/bin/env\\ cat\\ file', backend.executed_command.to_command + end + + def test_background_logs_deprecation_warnings + deprecation_out = +'' SSHKit.config.deprecation_output = deprecation_out ExampleBackend.new do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/unit/test_command.rb new/test/unit/test_command.rb --- old/test/unit/test_command.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/test/unit/test_command.rb 1980-01-02 01:00:00.000000000 +0100 @@ -211,12 +211,7 @@ end def test_deprecated_stdtream_accessors - deprecation_out = - if RUBY_VERSION < "2.3" - '' - else - +'' - end + deprecation_out = +'' SSHKit.config.deprecation_output = deprecation_out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/unit/test_configuration.rb new/test/unit/test_configuration.rb --- old/test/unit/test_configuration.rb 2024-10-15 06:02:57.000000000 +0200 +++ new/test/unit/test_configuration.rb 1980-01-02 01:00:00.000000000 +0100 @@ -11,12 +11,7 @@ end def test_deprecation_output - output = - if RUBY_VERSION < "2.3" - '' - else - +'' - end + output = +'' SSHKit.config.deprecation_output = output SSHKit.config.deprecation_logger.log('Test')
