alunduil / alunduil/zfs-replicate

Python 3.8 and 3.9 support is removed from the support matrix

未关闭
#398 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
Python
星标
24
派生
6
平均合并
3 小时 11 分钟
30 天内合并 PR
49

描述

## User story

As a **maintainer**, I want to **drop support for Python versions that are past upstream EOL** so that **I can use modern language features (PEP 604 unions, `StrEnum`, structural pattern matching, `typing.Self`) without compatibility shims**.

## Why

Python 3.8 reached EOL 2024-10; 3.9 reaches EOL 2025-10. Keeping them in the CI matrix costs maintenance and blocks language-level simplifications called out throughout the modernization assessment. Dropping supported Python versions is the canonical trigger for a SemVer major bump for a Python distribution.

## Acceptance criteria

- [ ] `pyproject.toml` sets `python = "^3.10"` (or later, if the team prefers 3.11+).
- [ ] The Python classifiers list is updated to drop 3.8 and 3.9.
- [ ] `.github/workflows/pytest.yml` and `.github/workflows/scripts.yml` (or the consolidated CI workflow) drop 3.8 and 3.9 from the matrix.
- [ ] `typing.Optional[X]` / `typing.List[X]` / `typing.Dict[K, V]` are migrated to PEP 604 / PEP 585 (`X | None`, `list[X]`, `dict[K, V]`). Tooling allowed: Ruff's `UP` ruleset handles most of this automatically.
- [ ] `# type: ignore[misc]` comments on `click` decorators are re-evaluated against current `click` + `mypy`; those that become unnecessary are removed.
- [ ] CHANGELOG entry under "Removed".
- [ ] README "Prerequisites" section updated.

## Out of scope

- Other breaking changes bundled in the same major release (those get their own issues).

## Notes

- Target release: **v5.0.0** (major — support-matrix change)
- Source: modernization assessment §3.10, §3.11.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。