Split up aruba into separate gems for "better" dependencies
- Dominant language
- Ruby
- Stars
- 966
- Forks
- 162
- Avg merge
- 18h 51m
- Merged PRs (30d)
- 8
Description
## 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.
Contributor guide
Research direction
Start by reviewing the current aruba gem, its executable, and how the existing Cucumber, RSpec, and Minitest integrations are packaged and depended on. Done means the proposed gem boundaries, repository arrangement, executable ownership, and dependency behavior are resolved and implemented without installing unused integration dependencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- cli, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100