diff --git a/aruba-pr914-ruby33.patch b/aruba-pr914-ruby33.patch new file mode 100644 index 0000000..bce1afb --- /dev/null +++ b/aruba-pr914-ruby33.patch @@ -0,0 +1,140 @@ +From bdf5edee50d6fda19a05147d1269370340b642c4 Mon Sep 17 00:00:00 2001 +From: Matijs van Zuijlen +Date: Fri, 8 Dec 2023 16:10:57 +0100 +Subject: [PATCH 2/4] Use plain irb in debugging scenario + +In Ruby 3.3, requiring readline does not load the real readline library +but falls back to reline by default. This creates odd output when the +terminal is not a real TTY and a prompt is used when getting input. +Because pry uses a prompt, this makes the interactive debugging scenario +fail. + +This change works around this issue by switching to irb. Irb will not +use a prompt, possibly because the output is not a TTY. + +See https://github.com/cucumber/aruba/issues/910. Also, see +https://github.com/ruby/reline/issues/616 for the resulting reline +issue. +--- + .../command/debug_your_command_in_aruba.feature | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git a/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature b/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature +index 1c7bbc1cd..7a0f2785f 100644 +--- a/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature ++++ b/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature +@@ -10,19 +10,15 @@ Feature: Debug your command in cucumber-test-run + Scenario: You can use a debug repl in your cli program + + If you want to debug an error, which only occurs in one of your +- `cucumber`-tests, the `@debug`-tag becomes handy. This will use the ++ Cucumber tests, the `@debug`-tag becomes handy. This will use the + DebugProcess runner, making your program use the default stdin, stdout and + stderr streams so you can interact with it directly. + +- This will, for example, make `binding.pry` and `byebug` work in your ++ This will, for example, make `binding.irb` and `byebug` work in your + program. However, Aruba steps that access the input and output of your + program will not work. + +- Please make sure, that there's a statement after the `binding.pry`-call. +- Otherwise you might not get an interactive shell, because your program will +- just exit. +- +- We are going to demonstrate this using `pry`, but any other interactive ++ We are going to demonstrate this using `irb`, but any other interactive + debugger for any other programming language should also work. + + Given an executable named "bin/aruba-test-cli" with: +@@ -27,8 +27,7 @@ Feature: Debug your command in cucumber-test-run + + foo = 'hello' + +- require 'pry' +- binding.pry ++ binding.irb + + exit 0 + """ +@@ -44,9 +43,9 @@ Feature: Debug your command in cucumber-test-run + And I type "exit" + Then the output should contain: + """ +- [1] pry(main)> foo +- => "hello" +- [2] pry(main)> exit ++ foo ++ "hello" ++ exit + """ + + Scenario: Can handle announcers + +From 2837d30ca5c32c7dca9333242fe8da7db6f8e753 Mon Sep 17 00:00:00 2001 +From: Matijs van Zuijlen +Date: Sun, 24 Dec 2023 08:15:31 +0100 +Subject: [PATCH 3/4] Stop requiring 'irb/ext/save-history' extension in Aruba + console + +See https://github.com/ruby/irb/pull/623. The file was removed and the +corresponding feature should be activated by setting :EVAL_HISTORY. +--- + lib/aruba/console.rb | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/lib/aruba/console.rb b/lib/aruba/console.rb +index ba8c680c1..3bd200ce5 100644 +--- a/lib/aruba/console.rb ++++ b/lib/aruba/console.rb +@@ -29,7 +29,6 @@ def start + IRB.conf[:RC] = false + + require "irb/completion" +- require "irb/ext/save-history" + IRB.conf[:READLINE] = true + IRB.conf[:SAVE_HISTORY] = 1000 + IRB.conf[:HISTORY_FILE] = Aruba.config.console_history_file + +From fd45d9e794ee880bf8c9f750ad6b7b3bbcaee400 Mon Sep 17 00:00:00 2001 +From: Matijs van Zuijlen +Date: Sun, 24 Dec 2023 09:19:34 +0100 +Subject: [PATCH 4/4] Ensure irb uses a consistent prompt format in tests on + all Ruby versions + +The default prompt format for irb changed in Ruby 3.3. Using the classic +format instead ensures the same result is achieved in all Ruby versions. +--- + .../steps/command/wait_for_output_of_command.feature | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/features/03_testing_frameworks/cucumber/steps/command/wait_for_output_of_command.feature b/features/03_testing_frameworks/cucumber/steps/command/wait_for_output_of_command.feature +index 0bf83f010..749d3f37a 100644 +--- a/features/03_testing_frameworks/cucumber/steps/command/wait_for_output_of_command.feature ++++ b/features/03_testing_frameworks/cucumber/steps/command/wait_for_output_of_command.feature +@@ -12,7 +12,7 @@ Feature: Wait for output of commands + """cucumber + Feature: Run command + Scenario: Run command +- When I run `irb --prompt default` interactively ++ When I run `irb --prompt classic` interactively + And I wait for output to contain "irb" + And I type "puts 6 + 5" + And I type "exit" +@@ -32,7 +32,7 @@ Feature: Wait for output of commands + """cucumber + Feature: Run command + Scenario: Run command +- When I run `irb --prompt default` interactively ++ When I run `irb --prompt classic` interactively + And I wait for output to contain: + \"\"\" + irb(main):001:0> +@@ -49,7 +49,7 @@ Feature: Wait for output of commands + """cucumber + Feature: Run command + Scenario: Run command +- When I run `irb --prompt default` interactively ++ When I run `irb --prompt classic` interactively + And I wait for output to contain: + \"\"\" + irb(main):001:0> diff --git a/rubygem-aruba-2.0.0-make-bundler-optional.patch b/rubygem-aruba-2.0.0-make-bundler-optional.patch index d488572..7fefeae 100644 --- a/rubygem-aruba-2.0.0-make-bundler-optional.patch +++ b/rubygem-aruba-2.0.0-make-bundler-optional.patch @@ -1,10 +1,8 @@ --- aruba-2.0.0/lib/aruba/api/bundler.rb.make_optional 2021-07-27 04:28:08.000000000 +0900 +++ aruba-2.0.0/lib/aruba/api/bundler.rb 2022-01-14 14:40:50.369324292 +0900 -@@ -1,7 +1,6 @@ - # frozen_string_literal: true - - require 'aruba/api/environment' --require 'bundler' +@@ -1,5 +1,4 @@ + require "aruba/api/environment" +-require "bundler" module Aruba module Api diff --git a/rubygem-aruba-2.3.1-diff-lcs-1_6-change.patch b/rubygem-aruba-2.3.1-diff-lcs-1_6-change.patch deleted file mode 100644 index 93994cf..0000000 --- a/rubygem-aruba-2.3.1-diff-lcs-1_6-change.patch +++ /dev/null @@ -1,42 +0,0 @@ -From bd2aea600f7e989e4da734c3e823c3ce12ce629b Mon Sep 17 00:00:00 2001 -From: Matijs van Zuijlen -Date: Sun, 6 Apr 2025 23:32:36 +0200 -Subject: [PATCH] Update expected diff output to match changes in diff-lcs - -Version 1.6.0 of diff-lcs included a bug fix that corrects the hunk -ranges it outputs. This change bumps the minimum version of diff-lcs to -1.6.0 so this change is sure to be included, and updates the -expectations in the cucumber scenarios that depend on exact diff-lcs -output. ---- - aruba.gemspec | 1 + - .../cucumber/steps/command/check_output_of_command.feature | 2 +- - .../cucumber/steps/command/check_stderr_of_command.feature | 2 +- - 3 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature b/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature -index 3266514b..1f0d1997 100644 ---- a/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature -+++ b/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature -@@ -353,7 +353,7 @@ Feature: All output of commands which were executed - world" to output string is eq: "hello - worl" - Diff: -- @@ -1,3 +1,3 @@ -+ @@ -1,2 +1,2 @@ - hello - -worl - +world -diff --git a/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature b/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature -index cc0e7aad..d3b4c9a9 100644 ---- a/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature -+++ b/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature -@@ -82,7 +82,7 @@ Feature: STDERR of commands which were executed - expected "hello - world!" to output string is eq: "" - Diff: -- @@ -1,2 +1,4 @@ -+ @@ -0,0 +1,2 @@ - +hello - +world! - """ diff --git a/rubygem-aruba.spec b/rubygem-aruba.spec index 2f9f1eb..6342c05 100644 --- a/rubygem-aruba.spec +++ b/rubygem-aruba.spec @@ -3,8 +3,8 @@ Summary: CLI Steps for Cucumber, hand-crafted for you in Aruba Name: rubygem-%{gem_name} -Version: 2.3.3 -Release: 1%{?dist} +Version: 2.2.0 +Release: 9%{?dist} # SPDX confirmed # templates/, jquery.js existed on 0.14.14, no longer included in 2.0 and above @@ -16,9 +16,9 @@ Source1: %{name}-%{version}-testsuite.tar.gz Source2: %{gem_name}-create-test-suite-tarball.sh # Make bundler runtime dependency optional Patch1: rubygem-aruba-2.0.0-make-bundler-optional.patch -# https://github.com/cucumber/aruba/commit/bd2aea600f7e989e4da734c3e823c3ce12ce629b -# We still use diff-lcs 1.5, revert the above patch for now -Patch2: rubygem-aruba-2.3.1-diff-lcs-1_6-change.patch +# https://github.com/cucumber/aruba/pull/914 +# Patch for ruby3.3 +Patch2: aruba-pr914-ruby33.patch BuildRequires: ruby(release) @@ -30,6 +30,7 @@ BuildRequires: rubygem(contracts) BuildRequires: rubygem(cucumber) BuildRequires: rubygem(irb) BuildRequires: rubygem(minitest) +BuildRequires: rubygem(pry) BuildRequires: rubygem(rspec) >= 3 BuildRequires: rubygem(thor) BuildRequires: less @@ -62,7 +63,7 @@ done ln -sf ../lib popd %patch -P1 -p1 -%patch -P2 -p1 -R +%patch -P2 -p1 mv ../%{gem_name}-%{version}.gemspec . @@ -129,6 +130,18 @@ fi # Disable bundler tests. mv features/03_testing_frameworks/cucumber/disable_bundler.feature{,.skip} +# Output changed with minitest 5.22.2, adjusting +# https://github.com/cucumber/aruba/issues/920 +status=$(ruby -e "require 'minitest'; p Minitest::VERSION >= '5.22.0'") +if [ $status == "true" ] ; then + sed -i features/06_use_aruba_cli/initialize_project_with_aruba.feature \ + -e 's|0 runs, 0 assertions, 0 failures, 0 errors, 0 skips|create test/use_aruba_with_minitest.rb|' \ + %{nil} + sed -i features/01_getting_started_with_aruba/supported_testing_frameworks.feature \ + -e '\@-Ilib:test test/use_aruba_with_minitest.rb@,$s|the tests should all pass|the exit status should be 0|' \ + %{nil} +fi + # Adjust test cases referring to $HOME. sed -i features/04_aruba_api/core/expand_path.feature -e "s|/home/\[\^/\]+|$(echo $HOME)|" sed -i features/02_configure_aruba/home_directory.feature \ @@ -164,27 +177,6 @@ popd # from .%%{gem_instdir} %doc %{gem_instdir}/CHANGELOG.md %changelog -* Sat Dec 06 2025 Mamoru TASAKA - 2.3.3-1 -- 2.3.3 - -* Sun Sep 14 2025 Mamoru TASAKA - 2.3.2-1 -- 2.3.2 - -* Fri Jul 25 2025 Fedora Release Engineering - 2.3.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jun 15 2025 Mamoru TASAKA - 2.3.1-1 -- 2.3.1 - -* Sat Jan 18 2025 Fedora Release Engineering - 2.3.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Fri Jan 03 2025 Mamoru TASAKA - 2.3.0-1 -- 2.3.0 - -* Thu Nov 28 2024 Vít Ondruch - 2.2.0-10 -- Drop BR: rubygem(pry) - * Fri Jul 19 2024 Fedora Release Engineering - 2.2.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index 01de0ee..9522e46 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (aruba-2.3.3.gem) = 4892651a703d0b2badf15a7f45e461ab1478e53d290fc39e7b0a3fa2a4c4830754bdcabddb38ba3e161bd34071da85aad4f56ccaea5ff8b37a5d74ae1e7ca8c2 -SHA512 (rubygem-aruba-2.3.3-testsuite.tar.gz) = a2aa74d9c920dbc3b9709358f5e219886e54f92b85b34de15bd9614308dccd48a3f97bed2f286e8e4dc520259e63063d167a74d72ed70a0635cb8c7348ccb175 +SHA512 (aruba-2.2.0.gem) = 61f87f9aa98b583359e7d00c3bc7e2302ba5ecc925dc6216dd15e03967a072be0f076f31abd9f756fb8bf31781191e23ca47d2858f832f020633cd65e408298c +SHA512 (rubygem-aruba-2.2.0-testsuite.tar.gz) = 22d3caeb01885cbc4669af5f162d09c58d8259c393f9c74fbb8358a312f28570ec0f2aeeb97ba7923da0b24d9bc07772721e119b2b9d674c6767cfdb0221c501