Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove cucumber dependency to wire #46

Merged
merged 11 commits into from
Jul 29, 2021

Conversation

aurelien-reeves
Copy link
Contributor

@aurelien-reeves aurelien-reeves commented Jul 26, 2021

Description

Refs. cucumber/cucumber-ruby#1562

cucumber-ruby-wire has been design to be an external optional dependency to cucumber-ruby. This is not the case yet and it is responsible for adding complexity in the dependency tree for cucumber-ruby.

This PR aims to make sure cucumber-ruby-wire works with a version of cucumber-ruby which does not depend on wire.

There will certainly be a deprecation phase before definitely removing dependency of cucumber-wire from cucumber.

Type of change

  • Refactoring/debt (improvement to code design or tooling without changing behaviour)
  • Breaking change (will cause existing functionality to not
    work as expected)

Note to other contributors

The addition of a "require_wire.rb" in the feature's backgrounds is due to the use of Aruba. In a regular use case that require 'cucumber/wire' would be done once by the user at the beginning of the test-suite. But with Aruba we are building a test-suite during the test-suite 😵

Still, we have to make sure it is working as expected in a regular use case, and document it as well.

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added/updated tests to cover my changes.
  • All new and existing tests passed.
  • CHANGELOG entry

README.md Outdated Show resolved Hide resolved
@aurelien-reeves
Copy link
Contributor Author

aurelien-reeves commented Jul 29, 2021

I've added an UPGRADING.md document, and change the version numbers of incoming cucumber from 8.0.0 and 9.0.0 to 7.1.0 and 8.0.0.

@aurelien-reeves aurelien-reeves merged commit a0fea36 into main Jul 29, 2021
@aurelien-reeves aurelien-reeves deleted the remove-cucumber-dependency-to-wire branch August 5, 2021 12:18
mattwynne added a commit that referenced this pull request Aug 9, 2021
* Remove cucumber dependency to wire (#46)

* Update dependencies to work with dedicated branch of cucumber

* Add the registry in the AfterConfiguration hook

* Update features to load cucumber/wire as part of the tests

* Allow usage with future version of cucumber-ruby

* Emphase 'built-in' in UPGRADING documentation

* Setup github workflow

* Remove windows from GH Workflow

* Remove jruby from GH Workflow

* Schedule GH workflow at 5am every day

* [skip ci]Rename GH workflow

* Use quotes with ruby 3.0

* Make the changelog more parseable

* Remove circle-ci (#47)

* Add pre-release workflow

* Prepare release 6.1.0

* Reformat CHANGELOG.md to match `changelog` tool format

See https://github.com/rcmachado/changelog

* Move changelog-action to cucumber-actions org

* Delegate to cucumber-actions/get-released-version

* Simplifyy

We don't have "v"s in CHANGELOG headers to no need to clean up

* Fix release label for cucumber-actions/get-released-version

* Update UPGRADING.md

Finally, the deprecation will happen in a cucumber v8.0.0 and removed in v9.0.0 due to breaking changes.

* Update GH Workflow to reduce chances of flaky jobs

* Fix GH Workflow

* Add release workflow for automating releases of the gem (#49)

* Add release workflow for automating releases of the gem

* Use bare metal `gem` commands to publish

Why?

* reduced security exposure
* let the `gh release` command create the tag
* simpler

* Narrow scope of GITHUB_TOKEN

* Simplfy how we handle the version number to be released

* Use environment variable to pass API key to `gem push`

See https://guides.rubygems.org/command-reference/

* Ping the core team to review a release PR

* Update docs about how to release

Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>
Co-authored-by: Matt Wynne <matt@cucumber.io>
mattwynne added a commit that referenced this pull request Aug 13, 2021
* Release v6.1.0 (#48)

* Remove cucumber dependency to wire (#46)

* Update dependencies to work with dedicated branch of cucumber

* Add the registry in the AfterConfiguration hook

* Update features to load cucumber/wire as part of the tests

* Allow usage with future version of cucumber-ruby

* Emphase 'built-in' in UPGRADING documentation

* Setup github workflow

* Remove windows from GH Workflow

* Remove jruby from GH Workflow

* Schedule GH workflow at 5am every day

* [skip ci]Rename GH workflow

* Use quotes with ruby 3.0

* Make the changelog more parseable

* Remove circle-ci (#47)

* Add pre-release workflow

* Prepare release 6.1.0

* Reformat CHANGELOG.md to match `changelog` tool format

See https://github.com/rcmachado/changelog

* Move changelog-action to cucumber-actions org

* Delegate to cucumber-actions/get-released-version

* Simplifyy

We don't have "v"s in CHANGELOG headers to no need to clean up

* Fix release label for cucumber-actions/get-released-version

* Update UPGRADING.md

Finally, the deprecation will happen in a cucumber v8.0.0 and removed in v9.0.0 due to breaking changes.

* Update GH Workflow to reduce chances of flaky jobs

* Fix GH Workflow

* Add release workflow for automating releases of the gem (#49)

* Add release workflow for automating releases of the gem

* Use bare metal `gem` commands to publish

Why?

* reduced security exposure
* let the `gh release` command create the tag
* simpler

* Narrow scope of GITHUB_TOKEN

* Simplfy how we handle the version number to be released

* Use environment variable to pass API key to `gem push`

See https://guides.rubygems.org/command-reference/

* Ping the core team to review a release PR

* Update docs about how to release

Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>
Co-authored-by: Matt Wynne <matt@cucumber.io>

* See if this helps the release workflow to trigger

I don't see the difference, but it's what we have in the one on
cucumber/build

* Separate gem build and gem push

Try adding specific gem name to gem build command

* Create GitHub Release after gem push has succeeded

* Use a newer Ruby

In the hope that it will install a newer version of RubyGems that
respects the GEM_HOST_API_KEY env var

* Create title for GH Release

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>
aurelien-reeves added a commit that referenced this pull request Aug 27, 2021
* Final iterations on release script (#51)

* Release v6.1.0 (#48)

* Remove cucumber dependency to wire (#46)

* Update dependencies to work with dedicated branch of cucumber

* Add the registry in the AfterConfiguration hook

* Update features to load cucumber/wire as part of the tests

* Allow usage with future version of cucumber-ruby

* Emphase 'built-in' in UPGRADING documentation

* Setup github workflow

* Remove windows from GH Workflow

* Remove jruby from GH Workflow

* Schedule GH workflow at 5am every day

* [skip ci]Rename GH workflow

* Use quotes with ruby 3.0

* Make the changelog more parseable

* Remove circle-ci (#47)

* Add pre-release workflow

* Prepare release 6.1.0

* Reformat CHANGELOG.md to match `changelog` tool format

See https://github.com/rcmachado/changelog

* Move changelog-action to cucumber-actions org

* Delegate to cucumber-actions/get-released-version

* Simplifyy

We don't have "v"s in CHANGELOG headers to no need to clean up

* Fix release label for cucumber-actions/get-released-version

* Update UPGRADING.md

Finally, the deprecation will happen in a cucumber v8.0.0 and removed in v9.0.0 due to breaking changes.

* Update GH Workflow to reduce chances of flaky jobs

* Fix GH Workflow

* Add release workflow for automating releases of the gem (#49)

* Add release workflow for automating releases of the gem

* Use bare metal `gem` commands to publish

Why?

* reduced security exposure
* let the `gh release` command create the tag
* simpler

* Narrow scope of GITHUB_TOKEN

* Simplfy how we handle the version number to be released

* Use environment variable to pass API key to `gem push`

See https://guides.rubygems.org/command-reference/

* Ping the core team to review a release PR

* Update docs about how to release

Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>
Co-authored-by: Matt Wynne <matt@cucumber.io>

* See if this helps the release workflow to trigger

I don't see the difference, but it's what we have in the one on
cucumber/build

* Separate gem build and gem push

Try adding specific gem name to gem build command

* Create GitHub Release after gem push has succeeded

* Use a newer Ruby

In the hope that it will install a newer version of RubyGems that
respects the GEM_HOST_API_KEY env var

* Create title for GH Release

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>

* CI: Refer to cucumber-actions/ Action (#50)

I learned that the repo had been transferred from the mattwynne/ prefix to the cucumber-actions/ one.

This change makes the usage uniform in this YAML file.

Co-authored-by: Matt Wynne <matt@cucumber.io>

* Ensure release notes can contain backticks

* Upgrade release script to use the new publish-rubygem action

* Upgrade pre-release script to use new create-release-pr action

* Ensure we tag the right commit when we release

* CI: Fix comment typo

* Use IntallPlugin rathern than AfterConfiguration hook (#52)

* Use IntallPlugin rathern than AfterConfiguration

* Avoid usage of InstallPlugin if it is not defined

* Release 6.1.1

* Fix pre-release workflow

Co-authored-by: Matt Wynne <matt@cucumber.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
aurelien-reeves added a commit that referenced this pull request Aug 27, 2021
* Final iterations on release script (#51)

* Release v6.1.0 (#48)

* Remove cucumber dependency to wire (#46)

* Update dependencies to work with dedicated branch of cucumber

* Add the registry in the AfterConfiguration hook

* Update features to load cucumber/wire as part of the tests

* Allow usage with future version of cucumber-ruby

* Emphase 'built-in' in UPGRADING documentation

* Setup github workflow

* Remove windows from GH Workflow

* Remove jruby from GH Workflow

* Schedule GH workflow at 5am every day

* [skip ci]Rename GH workflow

* Use quotes with ruby 3.0

* Make the changelog more parseable

* Remove circle-ci (#47)

* Add pre-release workflow

* Prepare release 6.1.0

* Reformat CHANGELOG.md to match `changelog` tool format

See https://github.com/rcmachado/changelog

* Move changelog-action to cucumber-actions org

* Delegate to cucumber-actions/get-released-version

* Simplifyy

We don't have "v"s in CHANGELOG headers to no need to clean up

* Fix release label for cucumber-actions/get-released-version

* Update UPGRADING.md

Finally, the deprecation will happen in a cucumber v8.0.0 and removed in v9.0.0 due to breaking changes.

* Update GH Workflow to reduce chances of flaky jobs

* Fix GH Workflow

* Add release workflow for automating releases of the gem (#49)

* Add release workflow for automating releases of the gem

* Use bare metal `gem` commands to publish

Why?

* reduced security exposure
* let the `gh release` command create the tag
* simpler

* Narrow scope of GITHUB_TOKEN

* Simplfy how we handle the version number to be released

* Use environment variable to pass API key to `gem push`

See https://guides.rubygems.org/command-reference/

* Ping the core team to review a release PR

* Update docs about how to release

Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>
Co-authored-by: Matt Wynne <matt@cucumber.io>

* See if this helps the release workflow to trigger

I don't see the difference, but it's what we have in the one on
cucumber/build

* Separate gem build and gem push

Try adding specific gem name to gem build command

* Create GitHub Release after gem push has succeeded

* Use a newer Ruby

In the hope that it will install a newer version of RubyGems that
respects the GEM_HOST_API_KEY env var

* Create title for GH Release

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com>

* CI: Refer to cucumber-actions/ Action (#50)

I learned that the repo had been transferred from the mattwynne/ prefix to the cucumber-actions/ one.

This change makes the usage uniform in this YAML file.

Co-authored-by: Matt Wynne <matt@cucumber.io>

* Ensure release notes can contain backticks

* Upgrade release script to use the new publish-rubygem action

* Upgrade pre-release script to use new create-release-pr action

* Ensure we tag the right commit when we release

* CI: Fix comment typo

* Use IntallPlugin rathern than AfterConfiguration hook (#52)

* Use IntallPlugin rathern than AfterConfiguration

* Avoid usage of InstallPlugin if it is not defined

* Release 6.1.1

* Fix pre-release workflow

Co-authored-by: Matt Wynne <matt@cucumber.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants