Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #678 +/- ##
==========================================
+ Coverage 72.42% 73.82% +1.40%
==========================================
Files 67 65 -2
Lines 5132 5357 +225
Branches 605 622 +17
==========================================
+ Hits 3717 3955 +238
+ Misses 1227 1209 -18
- Partials 188 193 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟢 Approval recommended
The one-line change correctly declares an already-used direct dependency, matching the confirmed click import and usage in cli.py.
No open issues 🎉
What changed in this PR
This PR declares the CLI extra's existing direct dependency on Click. src/dvc_data/cli.py imports click directly (line 16) and calls click.version_option() (line 569), but the cli optional-dependency extra previously only listed Typer. Since current Typer no longer installs external Click as a transitive dependency, fresh dvc-data[cli] installs and the base-branch benchmark collection fail with ModuleNotFoundError: No module named 'click'. Adding click>=8 makes the already-used dependency explicit.
Changes:
- Add
click>=8to theclioptional-dependencies group inpyproject.toml.
| File | Description |
|---|---|
| pyproject.toml | Declares click>=8 under the cli extra to match the direct click import/usage in cli.py; the all extra inherits it via dvc-data[cli]. |
The change is accurate: the direct Click usage is confirmed, >=8 is consistent with click.version_option() (available in Click 8.x), and the constraint aligns with the existing minimal pinning style of the extras. No issues were found.
Review effort: Balanced
|
|
The benchmark workflow for #673 fails while importing the unchanged base:
tests/benchmarks/test_checkout.pyimportsdvc_data.cli, which directly importsclick, but thecliextra only declares Typer. Current Typer no longer installs external Click.Declare the existing direct dependency as
click>=8in the CLI extra. This extracts the one-line packaging prerequisite already carried by #673 so it can reach the target branch independently and unblock base-branch benchmark collection. Refs #671. The Typer-native version-reporting change discussed in closed #672 remains separate.Validation on 56af66a plus this one-line change:
[tests,cli]environment with Typer 0.27.3 reproducesModuleNotFoundError: No module named 'click'during benchmark collection before the change. Reinstalling the changed package installs Click and collection succeeds.nox -s tests-3.12: 191 passed, 32 existing skips.nox -s lint: all repository hooks and mypy pass.nox -s benchon Python 3.14.2: 3 passed, 220 existing skips; the existing copy, symlink and hardlink benchmarks execute successfully. Reflink is unsupported on this filesystem. Run from a temporary Linux filesystem checkout of the exact commit to avoid shared-drive benchmark overhead.nox -s build: wheel/sdist builds and Twine checks pass.The hosted benchmark workflow still evaluates the old base and will remain blocked until this prerequisite is merged upstream. Prepared and tested with OpenAI Codex assistance.