Skip to content

Commit a317463

Browse files
committed
Upgrade dependency constraints in pyproject.toml
- gremlinpython: ==3.7.4 -> >=3.7.4,<4 (allows 3.8.0) - setuptools: >=42 -> >=70 in build-system.requires - cython: unversioned -> >=3.2 in dev dependencies - packaging: unversioned -> >=25.0 in dev dependencies - cryptography: >=35.0 -> >=42.0
1 parent bf0a4b3 commit a317463

2 files changed

Lines changed: 57 additions & 5 deletions

File tree

TODO.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Dependency Upgrade TODO
2+
3+
Action items for upgrading dependencies (Python 3.10-3.14 support).
4+
5+
## Later
6+
7+
- [ ] **Upgrade `pytest`**: Change from `~=8.0` to `~=9.0` in `pyproject.toml` (major version upgrade)
8+
9+
## High Priority
10+
11+
- [x] **Upgrade `gremlinpython`**: Change from `==3.7.4` to `>=3.7.4,<4` in `pyproject.toml` (latest is 3.8.0)
12+
- [x] **Raise `setuptools` floor**: Change from `>=42` to `>=70` in `build-system.requires`
13+
14+
## Medium Priority - Deprecated/Unmaintained Packages
15+
16+
- [ ] **Replace `asynctest`**: Package unmaintained since 2020, incompatible with Python 3.12+
17+
- Migrate to `unittest.IsolatedAsyncioTestCase` (stdlib) or `pytest-asyncio`
18+
- Search codebase: `grep -r "asynctest" tests/`
19+
20+
- [ ] **Migrate from `pytz` to `zoneinfo`**: `pytz` is deprecated
21+
- `zoneinfo` is in stdlib since Python 3.9
22+
- Django 5.x dropped pytz support entirely
23+
- Search codebase: `grep -r "pytz" cassandra/ tests/`
24+
25+
- [ ] **Evaluate `scales` dependency**: Last release in 2015, only tested on Python 2.7/3.3
26+
- Determine if still needed for metrics
27+
- Consider alternatives or removal
28+
29+
- [ ] **Monitor `pure-sasl`**: Last release in 2019, unmaintained
30+
- Works but no active maintenance
31+
- Consider `pysasl` as potential alternative if issues arise
32+
33+
## Low Priority - Minor Updates
34+
35+
- [x] **Pin `cython` version**: Add `cython>=3.2` constraint in dev dependencies
36+
- [x] **Pin `packaging` version**: Add `packaging>=25.0` constraint in dev dependencies
37+
- [x] **Update `cryptography` floor**: Consider raising from `>=35.0` to `>=42.0`
38+
39+
## Notes
40+
41+
- **`eventlet`**: At latest (0.40.4) but in maintenance-only mode. New projects discouraged from using it. Consider long-term migration to asyncio.
42+
- **`geomet`**: No updates available (1.1.0 is latest, package appears unmaintained)
43+
- **`python-snappy`**: At latest (0.7.3) but limited maintenance activity
44+
- **`twisted`**, **`gevent`**, **`futurist`**: Already at latest versions
45+
46+
## References
47+
48+
- gremlinpython: https://pypi.org/project/gremlinpython/
49+
- pytest changelog: https://docs.pytest.org/en/stable/changelog.html
50+
- pytz deprecation: https://fedoraproject.org/wiki/Changes/DeprecatePytz
51+
- asynctest status: https://pypi.org/project/asynctest/
52+
- eventlet maintenance policy: https://pypi.org/project/eventlet/

pyproject.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ requires-python = ">=3.9"
3131
"Issues" = "https://github.com/scylladb/python-driver/issues"
3232

3333
[project.optional-dependencies]
34-
graph = ['gremlinpython==3.7.4']
35-
cle = ['cryptography>=35.0']
34+
graph = ['gremlinpython>=3.7.4,<4']
35+
cle = ['cryptography>=42.0']
3636
compress-lz4 = ['lz4']
3737
compress-snappy = ['python-snappy']
3838

@@ -46,8 +46,8 @@ dev = [
4646
"twisted[tls]",
4747
"gevent",
4848
"eventlet>=0.33.3",
49-
"cython",
50-
"packaging",
49+
"cython>=3.2",
50+
"packaging>=25.0",
5151
"futurist",
5252
"asynctest",
5353
"pyyaml",
@@ -75,7 +75,7 @@ version = { attr = "cassandra.__version__" } # any module attri
7575
readme = { file = "README.rst", content-type = "text/x-rst" }
7676

7777
[build-system]
78-
requires = ["setuptools>=42", "Cython"]
78+
requires = ["setuptools>=70", "Cython"]
7979

8080
build-backend = "setuptools.build_meta"
8181

0 commit comments

Comments
 (0)