Skip to content

v0.0.1-alpha.4

Choose a tag to compare

@javierdelapuente javierdelapuente released this 16 Jun 13:50
· 36 commits to main since this release
b478897
fix: make typer and jinja2 optional via [cli] extra (#90)

* fix: make typer and jinja2 optional via [cli] extra

The pytest plugin only needs pydantic and ruamel.yaml at runtime.
Moving typer>=0.15 and jinja2>=3.1 to the [cli] optional extra
allows projects with a conflicting typer pin to install opcli for
the pytest plugin alone without a dependency conflict.

Changes:
- pyproject.toml: move typer + jinja2 to [project.optional-dependencies] cli;
  add both to [dependency-groups] dev so CI and local dev are unaffected
- core/subprocess.py: replace typer.echo() with print(..., file=sys.stderr)
  so the core module has zero typer imports (not just incidentally typer-free)
- app.py: add ImportError guard with a clear install hint when typer is absent
- README.md, AGENTS.md: document the [cli] extra and slim install use case

Install the full CLI:    pip install 'opcli[cli] @ git+...'
Install plugin only:     pip install 'opcli @ git+...'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add [cli] extra to all uv tool install calls

All workflow files and spread backend templates were installing
bare opcli (without typer), causing 'ModuleNotFoundError: typer'
when running any opcli command in CI.

Update every uv tool install invocation to use the [cli] extra:
  - .github/workflows/*.yml (6 files, 11 occurrences)
  - src/opcli/core/spread.py (local/CI/opcli-minimal templates, 6 occurrences)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>