Skip to content

pyproject.toml declares 1 of ~15 runtime deps while advertising a console entry point #32

Description

@usathyan

Found during the 2026-07-25 full-repo review. Filed for the record — not proposed for action right now.

Status: intentionally deferred

pyproject.toml declares exactly one runtime dependency (chonkie>=1.0). Undeclared but required at runtime: sift-kg, kreuzberg, pydantic, networkx, pyyaml, httpx, fastapi, sse-starlette, and more.

This is already documented in the file's own header comment, which states that declaring the full dependency graph is "a future migration (post-v3.0)" and that uv pip install -e . alone "will NOT produce a working install". That is a deliberate decision, and this issue does not argue against it.

Why it is still worth recording

The same file also declares a console entry point:

[project.scripts]
epistract = "epistract.cli:main"

So uv pip install -e . does not fail cleanly — it produces an installed, importable, broken CLI. A user who installs the package the conventional way gets a command that exists and then fails at import time on the first heavy dependency, rather than an error at install time telling them to run scripts/setup.sh.

That interaction between the partial dependency declaration and the advertised entry point is the part worth revisiting when the deferral is lifted.

Possible resolutions, for whenever this is picked up

  1. Declare the full runtime dependency set (the documented eventual plan).
  2. Keep the partial declaration but move the heavy imports behind a lazy path in cli.py, so the CLI's stdlib-only subcommands work and the rest fails with an actionable message.
  3. Add an [project.optional-dependencies] extra (e.g. pipeline) so uv pip install -e ".[pipeline]" is a supported, discoverable path.

No action taken pending a decision on which of these is wanted.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions