Skip to content

Commit dc4fa79

Browse files
authored
V3/additional cleanups (#572)
* Change location of cucumber script * Remove WIP profile and excess % tag from cucumber.yml template * Alter the env.rb generation to use fewer files - remove un-necessary capybara comments and mimic the destination file name * Initial bump to capybara dependency to something not completely legacy - needs to be bumped more * initial bump to cucumber version to something non legacy * Nokogiri is not a primary dependency of this gem since v1.2.2 - so remove it * Use a later rubygems version to avoid any legacy mismatches with installing sqlite3 or other compiled gems * use newer aruba with newer appending method * Reinstate extra % symbol that is needed when copying / parsing * Remove excess newline char that is no longer needed * Ensure latest rubygems version is used * Improving styling of gemspec and remove rdoc verbosely from gemspec * Update changelog
1 parent fb2c6e9 commit dc4fa79

15 files changed

+36
-45
lines changed

.github/workflows/test.yml

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ jobs:
5050
with:
5151
ruby-version: ${{ matrix.ruby }}
5252
bundler: '2.4.19'
53+
rubygems: latest
5354
bundler-cache: true
5455
- run: bundle exec rake spec
5556
- run: bundle exec rubocop

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ coverage
55
.bundle
66
.rvmrc
77
.yardoc/
8-
.rvmrc
98
.cucumber.rerun
109
gemfiles/*.lock
1110
Gemfile.lock

CHANGELOG.md

+11-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ This file is intended to be modified using the [`changelog`](github.com/cucumber
99

1010
## [Unreleased]
1111
### Fixed
12-
* Some of the rails 5.2 tests were installing lots of old conflicting gems ([luke-hill])
12+
- Some of the rails 5.2 tests were installing lots of old conflicting gems ([luke-hill])
13+
- Generator updates:
14+
- Updated the install locations for some scripts from `script/` to `bin/`
15+
- Changed some install generators to remove some legacy items
16+
- Updates have facilitated minimum support versions altering: capybara must be `v3.11+` and cucumber must be `v5+`
17+
([luke-hill])
1318

1419
## [3.0.0.rc.1] - 2023-09-15
1520
### Removed
@@ -23,19 +28,18 @@ This file is intended to be modified using the [`changelog`](github.com/cucumber
2328

2429
## [2.6.0] - 2022-10-07
2530
### New Features
26-
* Dependabot has now been added to the repo (Alongside this a bunch of gem updates have been done)
31+
- Dependabot has now been added to the repo (Alongside this a bunch of gem updates have been done)
2732
([#540](https://github.com/cucumber/cucumber-rails/pull/540) [mattwynne])
2833

2934
### Changed
30-
* Gem update: allowed cucumber 8 ([#538](https://github.com/cucumber/cucumber-rails/pull/538) / [#541](https://github.com/cucumber/cucumber-rails/pull/541) [mattwynne])
31-
32-
* New release process. Older releases are in [this changelog](./CHANGELOG.old.md)
35+
- Gem update: allowed cucumber 8 ([#538](https://github.com/cucumber/cucumber-rails/pull/538) / [#541](https://github.com/cucumber/cucumber-rails/pull/541) [mattwynne])
36+
- New release process. Older releases are in [this changelog](./CHANGELOG.old.md)
3337

3438
### Fixed
35-
* Some bugs with dev dependencies have now been fixed externally, so these have been unrestricted
39+
- Some bugs with dev dependencies have now been fixed externally, so these have been unrestricted
3640
([#552](https://github.com/cucumber/cucumber-rails/pull/552) [BrianHawley])
3741

38-
* Fixed up some rubocop offenses from updated `rubocop-performance`
42+
- Fixed up some rubocop offenses from updated `rubocop-performance`
3943
([#550](https://github.com/cucumber/cucumber-rails/pull/550) [olleolleolle])
4044

4145
[Unreleased]: https://github.com/cucumber/cucumber-rails/compare/v3.0.0.rc.1...main

Rakefile

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ require 'rubygems'
66
require 'bundler'
77
require 'bundler/setup'
88
require 'appraisal'
9-
require 'rdoc'
109
require 'rake/clean'
1110
require 'pathname'
1211
Bundler::GemHelper.install_tasks

cucumber-rails.gemspec

+8-10
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,17 @@ Gem::Specification.new do |s|
2121
'source_code_uri' => "https://github.com/cucumber/cucumber-rails/tree/v#{s.version}"
2222
}
2323

24-
s.add_runtime_dependency('capybara', ['>= 2.18', '< 4'])
25-
s.add_runtime_dependency('cucumber', '>= 3.2', '< 9')
26-
s.add_runtime_dependency('nokogiri', '~> 1.10')
27-
s.add_runtime_dependency('railties', ['>= 5.2', '< 8'])
24+
s.add_runtime_dependency('capybara', '>= 3.11', '< 4')
25+
s.add_runtime_dependency('cucumber', '>= 5', '< 9')
26+
s.add_runtime_dependency('railties', '>= 5.2', '< 8')
2827

2928
# Main development dependencies
3029
s.add_development_dependency('ammeter', '>= 1.1.4')
31-
s.add_development_dependency('appraisal', ['>= 2.4.1', '< 3'])
32-
s.add_development_dependency('aruba', ['>= 1.0', '< 3'])
30+
s.add_development_dependency('appraisal', '>= 2.4.1', '< 3')
31+
s.add_development_dependency('aruba', '>= 1.1.2', '< 3')
3332
s.add_development_dependency('bundler', '>= 1.17')
34-
s.add_development_dependency('database_cleaner', ['>= 1.8', '< 3.0'])
35-
s.add_development_dependency('rails', ['>= 5.2', '< 8'])
33+
s.add_development_dependency('database_cleaner', '>= 1.8', '< 3.0')
34+
s.add_development_dependency('rails', '>= 5.2', '< 8')
3635
s.add_development_dependency('rake', '>= 12.0')
3736
s.add_development_dependency('rspec', '~> 3.6')
3837
s.add_development_dependency('rubocop', '~> 1.28.2')
@@ -42,11 +41,10 @@ Gem::Specification.new do |s|
4241
s.add_development_dependency('sqlite3', '~> 1.3')
4342

4443
# For Documentation:
45-
s.add_development_dependency('rdoc', '>= 6.0')
4644
s.add_development_dependency('yard', '~> 0.9.10')
4745

4846
s.required_ruby_version = '>= 2.6.0'
49-
s.required_rubygems_version = '>= 3.0.1'
47+
s.required_rubygems_version = '>= 3.2.3'
5048
s.require_path = 'lib'
5149
s.files = Dir['lib/**/*', 'CHANGELOG.md', 'CONTRIBUTING.md', 'LICENSE', 'README.md']
5250
end

features/emulate_javascript.feature

+1-3
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,8 @@ Feature: Emulate Javascript
8080
And I should be on the widgets page
8181
And I should not see "wrench"
8282
"""
83-
And I append to "features/step_definitions/widget_steps.rb" with:
84-
# TODO: Remove the newline below (Required) once bug is fixed: https://github.com/cucumber/aruba/issues/662
83+
And I append the following lines to "features/step_definitions/widget_steps.rb":
8584
"""
86-
8785
Given('I am on the session establish page') do
8886
visit session_establish_path
8987
end

features/install_cucumber_rails.feature

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ Feature: Install Cucumber Rails
66
Scenario: Install Cucumber-Rails
77
Given I have created a new Rails app and installed cucumber-rails
88
Then the following files should exist:
9-
| config/cucumber.yml |
10-
| script/cucumber |
11-
| features/support/env.rb |
12-
| features/step_definitions/.gitkeep |
13-
| lib/tasks/cucumber.rake |
9+
| config/cucumber.yml |
10+
| bin/cucumber |
11+
| features/support/env.rb |
12+
| features/step_definitions/.keep |
13+
| lib/tasks/cucumber.rake |
1414
And the file "features/support/env.rb" should contain "require 'cucumber/rails'"

lib/generators/cucumber/install_generator.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ def create_templates
1919
end
2020

2121
def create_scripts
22-
copy_file 'script/cucumber', 'script/cucumber'
23-
chmod 'script/cucumber', 0755
22+
copy_file 'bin/cucumber', 'bin/cucumber'
23+
chmod 'bin/cucumber', 0755
2424
end
2525

2626
def create_step_definitions
2727
empty_directory 'features/step_definitions'
28-
create_file 'features/step_definitions/.gitkeep'
28+
create_file 'features/step_definitions/.keep'
2929
end
3030

3131
def create_feature_support
3232
empty_directory 'features/support'
33-
template 'support/rails.rb.erb', 'features/support/env.rb'
33+
template 'support/env.rb.erb', 'features/support/env.rb'
3434
end
3535

3636
def configure_environment

lib/generators/cucumber/templates/config/cucumber.yml.erb

-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ rerun_opts = rerun.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} fe
55
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags 'not @wip'"
66
%>
77
default: <%%= std_opts %> features
8-
wip: --tags @wip:3 --wip features
98
rerun: <%%= rerun_opts %> --format rerun --out rerun.txt --strict --tags 'not @wip'

lib/generators/cucumber/templates/support/_rails_prefork.rb.erb

-1
This file was deleted.

lib/generators/cucumber/templates/support/capybara.rb

-6
This file was deleted.

lib/generators/cucumber/templates/support/_rails_each_run.rb.erb renamed to lib/generators/cucumber/templates/support/env.rb.erb

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
<%= embed_file('support/edit_warning.txt') %>
2+
3+
require 'cucumber/rails'
4+
15
# By default, any exception happening in your Rails application will bubble up
26
# to Cucumber so that your scenario will fail. This is a different from how
37
# your application behaves in the production environment, where an error page will

lib/generators/cucumber/templates/support/rails.rb.erb

-4
This file was deleted.

spec/generators/cucumber/install_generator_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ def create_config_files_the_generator_is_expected_to_modify
5858
it { is_expected.to contain "task cucumber: 'cucumber:ok'" }
5959
end
6060

61-
describe 'script/cucumber' do
62-
subject { file('script/cucumber') }
61+
describe 'bin/cucumber' do
62+
subject { file('bin/cucumber') }
6363

6464
it { is_expected.to exist }
6565
it { is_expected.to contain 'load Cucumber::BINARY' }

0 commit comments

Comments
 (0)