From ce7bce8a6451bb8fc89f068dcdb9eb7808eed87e Mon Sep 17 00:00:00 2001 From: Eric Kessler Date: Tue, 9 Jun 2020 00:03:33 -0700 Subject: [PATCH 1/3] Make the gem compatible with cuke_modeler 3.x Updated impacted code and added additional testing in CI. --- .travis.yml | 4 ++++ CHANGELOG.md | 4 ++-- cuke_slicer.gemspec | 2 +- gemfiles/cuke_modeler3.gemfile | 6 ++++++ lib/cuke_slicer/helpers/matching_helpers.rb | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 gemfiles/cuke_modeler3.gemfile diff --git a/.travis.yml b/.travis.yml index 282c2f3..3223b1b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ gemfile: - gemfiles/cuke_modeler0.gemfile - gemfiles/cuke_modeler1.gemfile - gemfiles/cuke_modeler2.gemfile + - gemfiles/cuke_modeler3.gemfile matrix: exclude: @@ -24,6 +25,9 @@ matrix: # Ruby 2.3.x for OSX is currently broken on TravisCI and is no longer a supported Ruby version, anyway. - rvm: 2.3.8 os: osx + # cuke_modeler 3.x has a minimum Ruby version of 2.3 + - rvm: 1.9.3 + gemfile: gemfiles/cuke_modeler3.gemfile script: bundle exec rake cuke_slicer:ci_build diff --git a/CHANGELOG.md b/CHANGELOG.md index cbc3eda..d74a344 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -Nothing yet... - +### Added + - Added support for `cuke_modeler` 2.x and 3.x ## [2.0.3] - 2019-05-01 diff --git a/cuke_slicer.gemspec b/cuke_slicer.gemspec index 6e3dd78..82fae3f 100644 --- a/cuke_slicer.gemspec +++ b/cuke_slicer.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '>= 1.9.3', '< 3.0' - spec.add_runtime_dependency "cuke_modeler", "< 3.0" + spec.add_runtime_dependency "cuke_modeler", "< 4.0" spec.add_development_dependency 'bundler', '< 3.0' spec.add_development_dependency 'rake', '< 13.0.0' diff --git a/gemfiles/cuke_modeler3.gemfile b/gemfiles/cuke_modeler3.gemfile new file mode 100644 index 0000000..1b739d8 --- /dev/null +++ b/gemfiles/cuke_modeler3.gemfile @@ -0,0 +1,6 @@ +source 'https://rubygems.org' + +gemspec :path => "../" + +gem 'cuke_modeler', '~> 3.0' + diff --git a/lib/cuke_slicer/helpers/matching_helpers.rb b/lib/cuke_slicer/helpers/matching_helpers.rb index 1df0355..5e0d49d 100644 --- a/lib/cuke_slicer/helpers/matching_helpers.rb +++ b/lib/cuke_slicer/helpers/matching_helpers.rb @@ -29,7 +29,7 @@ def or_filter_match(element, filters) def filter_match(element, filter) tag_values = element.all_tags - tag_values = tag_values.collect { |tag| tag.name } if Gem.loaded_specs['cuke_modeler'].version.version[/^[12]/] + tag_values = tag_values.collect { |tag| tag.name } unless Gem.loaded_specs['cuke_modeler'].version.version[/^[0]/] if filter.is_a?(Regexp) tag_values.any? { |tag| tag =~ filter } From f87f689265baacf38f4f6015e9e28c0c5c54f742 Mon Sep 17 00:00:00 2001 From: Eric Kessler Date: Tue, 9 Jun 2020 00:42:03 -0700 Subject: [PATCH 2/3] Locking down dependencies in CI Limiting which versions of `cucumber` are used. --- gemfiles/cuke_modeler0.gemfile | 2 ++ gemfiles/cuke_modeler1.gemfile | 2 ++ gemfiles/cuke_modeler2.gemfile | 2 ++ 3 files changed, 6 insertions(+) diff --git a/gemfiles/cuke_modeler0.gemfile b/gemfiles/cuke_modeler0.gemfile index a7dcba8..ea8560a 100644 --- a/gemfiles/cuke_modeler0.gemfile +++ b/gemfiles/cuke_modeler0.gemfile @@ -12,4 +12,6 @@ if RUBY_VERSION =~ /^1\./ gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version +else + gem 'cucumber', '< 4.0.0' # Cucumber 4.x switches to needing the `cucumber-gherkin` gem, which is incompatible with `cuke_modeler` 0.x end diff --git a/gemfiles/cuke_modeler1.gemfile b/gemfiles/cuke_modeler1.gemfile index 521daae..856453e 100644 --- a/gemfiles/cuke_modeler1.gemfile +++ b/gemfiles/cuke_modeler1.gemfile @@ -10,4 +10,6 @@ if RUBY_VERSION =~ /^1\./ gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version +else + gem 'cucumber', '< 4.0.0' # Cucumber 4.x switches to needing the `cucumber-gherkin` gem, which is incompatible with `cuke_modeler` 1.x end diff --git a/gemfiles/cuke_modeler2.gemfile b/gemfiles/cuke_modeler2.gemfile index f9678d6..8360a51 100644 --- a/gemfiles/cuke_modeler2.gemfile +++ b/gemfiles/cuke_modeler2.gemfile @@ -10,4 +10,6 @@ if RUBY_VERSION =~ /^1\./ gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version +else + gem 'cucumber', '< 4.0.0' # Cucumber 4.x switches to needing the `cucumber-gherkin` gem, which is incompatible with `cuke_modeler` 2.x end From 5003a4217fbf50abd3b22f905ea2930262bec0c5 Mon Sep 17 00:00:00 2001 From: Eric Kessler Date: Tue, 9 Jun 2020 01:01:36 -0700 Subject: [PATCH 3/3] Locking down dependencies in CI Limiting more dependency versions for newer version of Ruby and Cucumber. --- gemfiles/cuke_modeler3.gemfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gemfiles/cuke_modeler3.gemfile b/gemfiles/cuke_modeler3.gemfile index 1b739d8..dbf275e 100644 --- a/gemfiles/cuke_modeler3.gemfile +++ b/gemfiles/cuke_modeler3.gemfile @@ -4,3 +4,8 @@ gemspec :path => "../" gem 'cuke_modeler', '~> 3.0' +gem 'cucumber', '2.2.0' # `cucumber` 4.x does not currently work on JRuby + +if RUBY_VERSION =~ /^2\.[1234]/ + gem 'activesupport', '< 6.0' # `activesupport` 6.x requires at least Ruby 2.5 +end