Repository navigation
chore(deps): drop Python 3.9, add 3.14, consolidate dependency updates #497
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,15 +12,17 @@ keywords = ["git", "repo", "repository", "artifact", "registry", "developer-tool | |
| classifiers = [ | ||
| "Development Status :: 2 - Pre-Alpha", | ||
| "Programming Language :: Python :: 3", | ||
| "Programming Language :: Python :: 3.9", | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @skshetry are we good to drop Python 3.9 now? should not be impacting DVC I think, right?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verified against current DVC
Side benefit for DVC docs/users: this PR fixes the
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes, 3.9 is already EOL'd. I don't plan to drop support in dvc though. But 3.9 users should be able to install older version of GTO. |
||
| "Programming Language :: Python :: 3.10", | ||
| "Programming Language :: Python :: 3.11", | ||
| "Programming Language :: Python :: 3.12", | ||
| "Programming Language :: Python :: 3.13", | ||
| "Programming Language :: Python :: 3.14", | ||
| ] | ||
| requires-python = ">=3.9" | ||
| requires-python = ">=3.10" | ||
| dynamic = ["version"] | ||
| dependencies = [ | ||
| # gto imports click directly, so declare it explicitly | ||
| "click>=8,<9", | ||
| "entrypoints", | ||
| "funcy", | ||
| "pydantic>=2", | ||
|
|
@@ -30,7 +32,10 @@ dependencies = [ | |
| "scmrepo>=3,<4", | ||
| "semver>=2.13.0", | ||
| "tabulate>=0.8.10", | ||
| "typer>=0.4.1", | ||
| # typer>=0.24 vendors click and is incompatible with gto's click-based | ||
| # CLI machinery (subclassing click.Command, @click.pass_context, etc.): | ||
| # the CLI crashes on startup. Migration tracked separately. | ||
| "typer>=0.4.1,<0.24", | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what do we use typer for? explain, plan the mitigation strategy
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What typer is used for: the entire CLI ( Why the pin: typer 0.24+ replaced its click dependency with a vendored copy ( Mitigation plan (in preference order):
Happy to open a tracking issue for option 1.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correction after checking typer's release notes: the vendoring landed in typer 0.26.0 (2026-05-26), not 0.24 — 0.24.0 only dropped Python 3.9. Timeline matches our CI: the weekly run started failing June 8, right after 0.26.0's release. Relaxed the pin accordingly to Typer's stated reasons for vendoring, from the 0.26.0 release notes: simplifies work for both teams, lets typer evolve independently and enables planned features, and avoids dependency conflicts between packages pinning different click versions. The trade-off is exactly what bit us: click-specific integrations (subclassing |
||
| ] | ||
|
|
||
| [project.urls] | ||
|
|
@@ -48,11 +53,8 @@ tests = [ | |
| ] | ||
| dev = [ | ||
| "gto[tests]", | ||
| "mypy==1.17.1; python_version > '3.9'", | ||
| # mypy>=1.11.0 crashes when used with pydantic-settings on Python 3.9, | ||
| # see: https://github.com/python/mypy/issues/17535 | ||
| "mypy<1.11.0; python_version <= '3.9'", | ||
| "pylint==3.3.8", | ||
| "mypy==2.2.0", | ||
| "pylint==4.0.6", | ||
| "types-PyYAML", | ||
| "types-filelock", | ||
| "types-freezegun", | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.