Skip to content

Commit 167cf90

Browse files
leeclemnetclaude
andcommitted
chore(deps): pin typer<0.26 to keep external click for CLI
typer 0.26 vendors its own click as `typer._click` and drops the external click dependency. roboflow/cli/_compat.py subclasses TyperGroup using external click types, so under typer 0.26 the CLI mistypes (mypy fails) and click isn't installed at all. typer 0.25.x still depends on external click and type-checks (it's what main resolved to on 2026-05-25). Pin typer<0.26 and declare click explicitly in both requirements.txt and requirements-slim.txt (the latter feeds the test-slim job, whose test_slim_compat imports roboflow.cli) so `make check_code_quality`, the build matrix, and test-slim all pass and the CLI keeps working. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent fdbc0d8 commit 167cf90

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

requirements-slim.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ tqdm>=4.41.0
66
PyYAML>=5.3.1
77
requests_toolbelt
88
filetype
9-
typer>=0.12.0
9+
# typer 0.26 vendors click as typer._click and drops the external click dep, breaking
10+
# roboflow.cli imports (test_slim_compat imports it). 0.25.x still uses external click.
11+
typer>=0.12.0,<0.26
12+
# CLI imports click directly; declare it explicitly rather than relying on typer's transitive dep.
13+
click>=8.0
1014
python-dateutil
1115
python-dotenv
1216
six

requirements.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,9 @@ tqdm>=4.41.0
1919
PyYAML>=5.3.1
2020
requests_toolbelt
2121
filetype
22-
typer>=0.12.0
22+
# typer 0.26 vendors its own click as typer._click and drops the external click dep, which
23+
# breaks roboflow/cli/_compat.py's SortedGroup (it subclasses TyperGroup using external click
24+
# types). 0.25.x still depends on external click and type-checks; pin below 0.26.
25+
typer>=0.12.0,<0.26
26+
# CLI imports click directly; declare it explicitly rather than relying on typer's transitive dep.
27+
click>=8.0

0 commit comments

Comments
 (0)