|
56 | 56 | - [Future Roadmap](#future-roadmap) |
57 | 57 | - [Planned Features](#planned-features) |
58 | 58 | - [Technical Debt](#technical-debt) |
59 | | -- [Outdated Packages Held Back Due to Dependency Constraints](#outdated-packages-held-back-due-to-dependency-constraints) |
| 59 | +- [Dev Toolchain](#dev-toolchain) |
60 | 60 |
|
61 | 61 | ## Project Overview |
62 | 62 |
|
@@ -220,7 +220,7 @@ CSV2Notion Neo has been fully migrated to use the official [Notion API](https:// |
220 | 220 | - Pre-commit hooks for automated quality checks |
221 | 221 |
|
222 | 222 | ### Dependencies |
223 | | -- Python 3.9+ required |
| 223 | +- Python 3.11+ required (dev toolchain; local builds use 3.14.5) |
224 | 224 | - Poetry for dependency management |
225 | 225 | - Key dependencies: notion-client 3.0.0 (notion-sdk-py), requests, tqdm, emoji, python-dateutil, icecream |
226 | 226 |
|
@@ -429,32 +429,21 @@ CSV2Notion Neo has been fully migrated to use the official [Notion API](https:// |
429 | 429 |
|
430 | 430 | This documentation should be kept in sync with the cursorrule file to ensure consistent development practices and project understanding. |
431 | 431 |
|
432 | | -## Outdated Packages Held Back Due to Dependency Constraints |
433 | | - |
434 | | -The following packages are currently outdated but have not been updated because doing so would break compatibility with other dependencies in the project (such as flake8 plugins, wemake-python-styleguide, etc.): |
435 | | - |
436 | | -| Package | Installed | Latest | Reason Held Back | |
437 | | -|--------------------------|-----------|----------|-------------------------------------------------| |
438 | | -| click | 8.1.8 | 8.2.1 | Transitive, constrained by parent dependencies | |
439 | | -| eradicate | 2.3.0 | 3.0.0 | Required by flake8-eradicate/wemake-styleguide | |
440 | | -| flake8 | 3.9.0 | 7.3.0 | Required by wemake-python-styleguide | |
441 | | -| flake8-bandit | 3.0.0 | 4.1.1 | Plugin, version tied to flake8 | |
442 | | -| flake8-broken-line | 0.4.0 | 1.0.0 | Plugin, version tied to flake8 | |
443 | | -| flake8-bugbear | 22.12.6 | 24.12.12 | Plugin, version tied to flake8 | |
444 | | -| flake8-commas | 2.1.0 | 4.0.0 | Plugin, version tied to flake8 | |
445 | | -| flake8-eradicate | 1.4.0 | 1.5.0 | Plugin, version tied to eradicate/flak8 | |
446 | | -| flake8-isort | 4.2.0 | 6.1.2 | Plugin, version tied to flake8/isort | |
447 | | -| flake8-rst-docstrings | 0.2.7 | 0.3.1 | Plugin, version tied to flake8 | |
448 | | -| isort | 5.13.2 | 6.0.1 | Required by flake8-isort | |
449 | | -| mccabe | 0.6.1 | 0.7.0 | Required by flake8 <5 | |
450 | | -| pep8-naming | 0.11.1 | 0.15.1 | Latest requires flake8 >=5 | |
451 | | -| pre-commit | 2.21.0 | 4.2.0 | Not updated to avoid breaking hooks | |
452 | | -| pycodestyle | 2.7.0 | 2.14.0 | Required by flake8 <5 | |
453 | | -| pyfakefs | 4.7.0 | 5.9.1 | Not updated to avoid breaking tests | |
454 | | -| pyflakes | 2.3.1 | 3.4.0 | Required by flake8 <5 | |
455 | | -| pytest | 7.4.4 | 8.4.1 | Not updated to avoid breaking test compatibility | |
456 | | -| pytest-cov | 3.0.0 | 6.2.1 | Not updated to avoid breaking test compatibility | |
457 | | -| testfixtures | 7.2.2 | 9.1.0 | Not updated to avoid breaking test compatibility | |
458 | | -| wemake-python-styleguide | 0.16.1 | 1.3.0 | Latest requires Python >=3.10 | |
459 | | - |
460 | | -> These packages will be updated when their dependencies allow, or when the project drops support for Python 3.9 or older plugin versions. |
| 432 | +## Dev Toolchain |
| 433 | + |
| 434 | +The dev toolchain covers the local/CI development stack (not production runtime deps). Lint config lives in `setup.cfg` (`flakehell` was removed — incompatible with flake8 7+). |
| 435 | + |
| 436 | +| Package | Constraint (pyproject) | |
| 437 | +|---------|-------------------------| |
| 438 | +| pytest | ^9 | |
| 439 | +| pytest-cov | ^7 | |
| 440 | +| pyfakefs | ^6 | |
| 441 | +| testfixtures | ^12 (requires Python 3.11+) | |
| 442 | +| black | ^26 | |
| 443 | +| isort | ^8 | |
| 444 | +| pre-commit | ^4 | |
| 445 | +| flake8 | ^7.3 | |
| 446 | +| wemake-python-styleguide | ^1.6 | |
| 447 | +| mypy | ^2 (optional locally; not run in CI; strict config may report many issues) | |
| 448 | + |
| 449 | +Run lint: `poetry run flake8 csv2notion_neo tests` (after `./scripts/local-test-build.sh`). Tests are configured with relaxed `per-file-ignores`; `csv2notion_neo/` may still report WPS violations under wemake 1.6 until addressed incrementally. |
0 commit comments