HydroRoll-Team / HydroRoll-Team/OneRoll

Make CLI and Textual TUI dependencies optional

Open
#14 0 comments 0 reactions 0 assignees View on GitHub
area:cli-tui area:python blocked priority:p1 type:chore workflow:afk
Dominant language
Python
Stars
3
Forks
1
Avg merge
3d 4h
Merged PRs (30d)
2

Description

## Parent

- #5

## What to build

Implement RFC-0004's package boundary so engine-only consumers install a dependency-free Python SDK while explicit extras provide complete CLI and Textual clients.

## Frozen contract

- Core metadata declares `dependencies = []` and `import oneroll` never imports Rich or Textual.
- `[cli]` installs `rich>=14.1.0`; `[tui]` installs `rich>=14.1.0` and `textual>=6.1.0`.
- The `oneroll` and `1roll` scripts remain, point to a thin standard-library entry point, and do not encode entry-point extras.
- Missing renderer dependencies produce an actionable `install oneroll[cli]` or `install oneroll[tui]` message.
- Cargo remains the authoritative package-version source.

## Acceptance criteria

- [ ] A clean core wheel installs without Rich or Textual and imports Engine successfully.
- [ ] CLI and TUI extras install every dependency required by their entry points.
- [ ] Core-safe script options work without UI extras; unavailable renderers fail clearly without a traceback.
- [ ] Source imports and extension initialization have no optional-presentation dependency.
- [ ] Isolated wheel smoke tests cover core-only, CLI, and TUI installations.

## Blocked by

- #5 human acceptance

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading RFC-0004 and the blocked parent issue #5, then trace the oneroll and 1roll entry points and package metadata. Use isolated wheel smoke tests for core-only, CLI, and TUI installations; done means core imports without Rich or Textual, extras provide their renderer dependencies, and unavailable renderers report the documented install commands without a traceback.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
build-system, cli
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.