cucumber / cucumber/aruba

Split up aruba into separate gems for "better" dependencies

Open
#402 6 comments 0 reactions 0 assignees View on GitHub
internal user experience
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.