Issue
The following are dev-only tools introduced in #3039 and don't need to ship with the package:
ruff >= 0.11.2
pre_commit >= 4.2.0
dennis >= 1.2.0
Note
The pytest family (pytest, pytest-flask, pytest-mock) is intentionally bundled per the explicit comment, so it's out of scope here:
# Include pytest, so if theres a support issue we can ask them to run these tests on their setup
pytest ~= 9.0
pytest-flask ~= 1.3
pytest-mock ~= 3.15
pytest-xdist (L163) and psutil (L155, "Needed for testing") are similar candidates.
User impact
Unnecessary transitive dependencies pulled into end-user environments (install size and time)
Version conflicts with users who already pin ruff, pre_commit, or dennis
Example
For instance, in an LXC container provisioned by the Proxmox community script , the dev tool binaries land system-wide:
# which -a ruff pre-commit
/usr/local/bin/ruff
/usr/local/bin/pre-commit
Possible approach
These can live in a new requirements-dev.txt instead:
-r requirements.txt
ruff
pre_commit
dennis
Developers install them with pip install -r requirements-dev.txt.
Notes
Side note: pyproject.toml has [dependency-groups] for the same kind of split.
Issue
The following are dev-only tools introduced in #3039 and don't need to ship with the package:
changedetection.io/requirements.txt
Lines 157 to 159 in 7831a49
Note
pytestfamily (pytest,pytest-flask,pytest-mock) is intentionally bundled per the explicit comment, so it's out of scope here:changedetection.io/requirements.txt
Lines 95 to 98 in 7831a49
pytest-xdist(L163) andpsutil(L155, "Needed for testing") are similar candidates.User impact
ruff,pre_commit, ordennisExample
For instance, in an LXC container provisioned by the Proxmox community script, the dev tool binaries land system-wide:
Possible approach
These can live in a new
requirements-dev.txtinstead:Developers install them with
pip install -r requirements-dev.txt.Notes
Side note:
pyproject.tomlhas[dependency-groups]for the same kind of split.