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

Split up aruba into separate gems for "better" dependencies #402

Open
3 tasks
ghost opened this issue May 10, 2016 · 4 comments
Open
3 tasks

Split up aruba into separate gems for "better" dependencies #402

ghost opened this issue May 10, 2016 · 4 comments

Comments

@ghost
Copy link

ghost commented May 10, 2016

Summary

Split up aruba into separate gems: aruba-core, aruba-rspec, aruba-cucumber.
Ping @mattwynne

Current Situation

We now support integration into cucumber, rspec and minitest. At least for the first two ones we would normally define dependencies on "gem"-level. Today we only require cucumber to be installed. This is not required by users using aruba with rspec only.

Possible Solution

  1. Create a gem aruba with dependencies to:

    • aruba-cucumber
    • aruba-rspec
    • aruba-core

    This gem only includes the executable aruba. Otherwise bundler will complain or we rename it to aruba-cli and put it into a separate gem as well.

  2. Create a gem aruba-cucumber with dependencies to:

    • aruba-core
    • cucumber
  3. Create a gem aruba-rspec with dependencies to:

    • aruba-core
    • rspec
  4. Create a gem aruba-core with the rest of the dependencies of the current aruba-gem.

  5. Maybe: Create a gem aruba-cli which only contains cli-commands for aruba.

Open Questions

  • It makes sense to do this
  • Shall we have separate repositories or place everything in a single repository
  • aruba-rspec is already used by another gem which seems to be unmaintained since 2014.

Benefits

Users only have depencies installed they really need.

@maxmeyer
Copy link
Member

maxmeyer commented Jul 31, 2017

@mvz @junaruga @olleolleolle What do you think about this? This does not to be done till 1.0.0 can be also introduced later, 1.1.0 or even 2.1.0 (due to drop of rubies)

It bothers me that we've got a "hardcoded" dependency on cucumber although one can also use it with rspec and minitest only.

@maxmeyer maxmeyer modified the milestones: 2.0.0, 1.0.0 Jul 31, 2017
@mvz
Copy link
Contributor

mvz commented Jul 31, 2017

In general, I think this makes sense.

I don't think there's a need to split of aruba-rspec, because Aruba already depends on only rspec-expectations and would need that in a hypothetical aruba-core. So, just splitting off aruba-cucumber should be enough. Since aruba would then not depend on aruba-cucumber, this would be a breaking change hence something for 2.0 (unless it is done right now).

I would recommend keeping everything in the same repository. This makes synchronizing development between the parts easier and preserves history. I've split a project apart and then grafted the repositories back together because git blame had become completely useless.

@stale
Copy link

stale bot commented Nov 9, 2017

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in a week if no further activity occurs.

@stale stale bot added the stale These issues were closed by stalebot and need to be reviewed to see if they're still relevant. label Nov 9, 2017
@stale stale bot removed the stale These issues were closed by stalebot and need to be reviewed to see if they're still relevant. label Nov 9, 2017
@mvz
Copy link
Contributor

mvz commented Jun 14, 2021

With #806, there is no part of Aruba apart from the step definitions that depends on Cucumber.

@mvz mvz modified the milestones: 2.0.0, 3.0.0 Aug 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants