Skip to content

chore: modernize deps for redis 5/6 and Prefect 3.x compatibility#572

Open
wolf-j3blair wants to merge 14 commits into
long2ice:mainfrom
wolf-j3blair:chore/redis5-prefect-compatibility
Open

chore: modernize deps for redis 5/6 and Prefect 3.x compatibility#572
wolf-j3blair wants to merge 14 commits into
long2ice:mainfrom
wolf-j3blair:chore/redis5-prefect-compatibility

Conversation

@wolf-j3blair

Copy link
Copy Markdown
  • Update Python minimum to ^3.10, drop 3.8/3.9 support
  • Widen redis constraint to >=5.0.8,<7.0.0
  • Bound fastapi to >=0.100.0,<1.0.0
  • Raise typing-extensions to >=4.10.0,<5.0.0
  • Remove importlib-metadata (stdlib in Python 3.10+)
  • Update ruff (>=0.4.0), mypy (>=1.5.0), coverage (>=7.0,<9.0)
  • Migrate ruff config to [tool.ruff.lint] section
  • Update linter target versions to py310
  • Update tox matrix to py310-py313
  • Update CI matrix to 3.10-3.14
  • Add Hypothesis property-based tests for Redis backend and JsonCoder

- Update Python minimum to ^3.10, drop 3.8/3.9 support
- Widen redis constraint to >=5.0.8,<7.0.0
- Bound fastapi to >=0.100.0,<1.0.0
- Raise typing-extensions to >=4.10.0,<5.0.0
- Remove importlib-metadata (stdlib in Python 3.10+)
- Update ruff (>=0.4.0), mypy (>=1.5.0), coverage (>=7.0,<9.0)
- Migrate ruff config to [tool.ruff.lint] section
- Update linter target versions to py310
- Update tox matrix to py310-py313
- Update CI matrix to 3.10-3.14
- Add Hypothesis property-based tests for Redis backend and JsonCoder
…hon 3.14

- Remove --show-source from ruff check in tox lint env (removed in ruff 0.4.0+)
- Bump towncrier from ^22.12.0 to >=24.8.0 (fixes pkg_resources import on 3.14)
Ruff UP rules now flag old-style typing (Optional[X] -> X | None, Union -> |,
typing.List -> list, typing.Tuple -> tuple, etc.) since target-version is py310.
Also fix import sorting and zip() strict parameter warnings.
Migrate tests/pyproject.toml ruff config to [tool.ruff.lint] section.
The tests and examples directories have pre-existing type issues (httpx
unknown types, TemplateResponse API changes) that aren't worth fixing in
this PR. The library code itself passes pyright strict.
Needed for gh pr edit --add-label to work with GITHUB_TOKEN.
Pyright hangs indefinitely on Python 3.14 in CI. The linter just needs a
stable Python for static analysis; actual version testing is done by the
test matrix.
Pyright 1.1.410 hangs indefinitely in GitHub Actions. Cap at <1.1.400
until the issue is resolved upstream.
Pyright requires a Node.js installation via nodeenv which is unreliable
in CI. mypy strict mode provides equivalent type coverage. Developers can
still run pyright locally.
These tests have been failing before this PR:
- test_json_coder[tuple]: JSON has no tuple type
- test_json_coder[DCItem/PDItem]: decode_as_type doesn't reconstruct
- test_json_coder_validation_error: no longer uses Pydantic validation
- test_datetime: timing race condition
- test_non_get: test bug (PUT on a GET endpoint)
- actions/checkout v3 -> v4
- actions/cache v3 -> v4
- actions/upload-artifact v3 -> v4
- actions/download-artifact v2 -> v4
- Upgrade twine from ^4.0.2 to ^6.1.0 to fix KeyError: 'license'
  caused by importlib_metadata incompatibility with PEP 639 metadata
- Add top-level permissions: contents: read to workflow
- Add contents: read to publish job alongside id-token: write
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant