Problem
Beta testers on Linux report that installation fails due to undocumented dependencies:
"It has all kinds of wacky dependencies that aren't specified in your README file. I tried installing it but kept running into dependency problems and finally gave up."
Root Cause Analysis
Investigation found several dependency gaps:
-
samsungtvws is pinned to a git URL in pyproject.toml, but the package is available on PyPI as samsungtvws. The git dependency requires git to be installed, may fail behind corporate firewalls, and is slower to resolve. Fix: Change to samsungtvws>=3.0 (PyPI).
-
Pillow system library dependencies are undocumented. Pillow requires native libraries (libjpeg-dev, zlib1g-dev, etc.) on Linux when building from source. While modern pip/uv usually pull pre-built wheels, some Linux distros or older Python versions require compilation. The README doesn't mention this.
-
Docent.command is macOS-only but this isn't stated anywhere:
- Uses
open "$URL" (macOS-specific; Linux needs xdg-open, Windows needs start)
- No Linux/Windows equivalent launcher is provided
- README "Option A: Double-click" silently fails on non-macOS
-
No requirements.txt fallback for users who don't use uv. While uv run handles everything for uv users, pip install -e . with the git dependency can fail in ways that confuse users.
Tasks
Environment
- Reported on: Linux (distro unspecified)
- Python deps managed via
pyproject.toml + uv
samsungtvws version: 3.0.4
Problem
Beta testers on Linux report that installation fails due to undocumented dependencies:
Root Cause Analysis
Investigation found several dependency gaps:
samsungtvwsis pinned to a git URL inpyproject.toml, but the package is available on PyPI assamsungtvws. The git dependency requiresgitto be installed, may fail behind corporate firewalls, and is slower to resolve. Fix: Change tosamsungtvws>=3.0(PyPI).Pillow system library dependencies are undocumented. Pillow requires native libraries (
libjpeg-dev,zlib1g-dev, etc.) on Linux when building from source. While modern pip/uv usually pull pre-built wheels, some Linux distros or older Python versions require compilation. The README doesn't mention this.Docent.commandis macOS-only but this isn't stated anywhere:open "$URL"(macOS-specific; Linux needsxdg-open, Windows needsstart)No
requirements.txtfallback for users who don't useuv. Whileuv runhandles everything for uv users,pip install -e .with the git dependency can fail in ways that confuse users.Tasks
samsungtvwsfrom git URL to PyPI package inpyproject.tomluv.lockafter the changeDOCENT_DATA_DIRenv var for Docker/non-standard installsrequirements.txtfor pip usersDocent.commandcross-platform (detect OS, usexdg-openon Linux)Environment
pyproject.toml+uvsamsungtvwsversion: 3.0.4