Skip to content

Install command 'pip install buckaroo[xorq]' silently no-ops; sidecar then fails to import tornado #751

@paddymul

Description

@paddymul

Bug

buckaroo-tauri (this org's Tauri plugin) instructs users to install the Python sidecar via:

pip install 'buckaroo[xorq]'

(buckaroo-tauri README README.md:69 and examples/tauri-app/README.md.)

But buckaroo==0.13.5 has no xorq extra. Available extras: dev, jupyterlab, marimo, mcp, notebook, packaging-tools, polars, test. pip and uv both install base buckaroo and emit only a one-line warning that's easy to miss in CI / scrollback:

warning: The package `buckaroo==0.13.5` does not have an extra named `xorq`

tornado (gated under [mcp]) is therefore not installed. The sidecar then crashes on first launch:

$ python -m buckaroo.server --help
ModuleNotFoundError: No module named 'tornado'

The same trap applies to pip install 'buckaroo[pandas]', also referenced in the tauri README — no pandas extra exists either.

Repro

uv venv --python 3.12 /tmp/repro && cd /tmp/repro
./bin/uv pip install 'buckaroo[xorq]'  # warning → ignored extra
./bin/python -m buckaroo.server --help  # ModuleNotFoundError: tornado

vs. working path:

./bin/uv pip install 'buckaroo[mcp]'
./bin/python -m buckaroo.server --help  # usage: server.py [-h] [--port ...] ...

Why this is a buckaroo bug, not just a buckaroo-tauri docs slip

The instruction lives in this org's own Tauri integration, paired with a Rust API (BuckarooConfig::xorq(), BuckarooConfig::pandas()) that documents what backend the user is opting into. The Python-side extras should be the install-time mirror of those backend presets. They aren't, so the two surfaces have drifted.

Fixing this on the Python side (this repo) is the right place because:

  1. pip install 'buckaroo[xorq]' is a reasonable instinct any user will reach for given the Rust API — and it will keep being a reasonable instinct.
  2. The silent-warning + delayed-crash failure mode is worse than a hard "no such extra" error. Most users will believe the install succeeded.
  3. Editing the buckaroo-tauri README alone is the symptom fix, not the root fix — see closed Docs recommend non-existent 'buckaroo[xorq]' extra; sidecar fails to import tornado buckaroo-tauri#1.

Suggested resolutions (one of)

  • Preferred: add xorq (and pandas) extras that pull tornado plus any backend-specific deps. This is exactly what Add 'xorq' install extra to match BuckarooConfig::xorq() preset #750 proposes — close this as a duplicate of Add 'xorq' install extra to match BuckarooConfig::xorq() preset #750 if you prefer the feature-request framing.
  • Alternative: if [mcp] is intentionally the canonical name, raise the install-instruction inconsistency to a hard error — e.g. emit a UserWarning from buckaroo/__init__.py when imported without tornado available, telling the user to pip install 'buckaroo[mcp]'. Silent-degrade is the failure mode here.
  • Docs-only fallback: if neither fix lands, update the buckaroo-tauri READMEs in lockstep with whatever extras name is authoritative.

Cross-ref: #750 (the "add xorq extra" feature request), buckaroo-data/buckaroo-tauri#1 (closed, redirected here).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions