doc: Python support policy — drop EOL versions over contorting code

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
golem
2026-10-04 19:09:02 -06:00
co-authored by Claude Opus 5.5
parent da9568b4f9
commit 713c49b4c4
2 changed files with 22 additions and 14 deletions
+4
View File
@@ -27,6 +27,10 @@ python -m setuptools_scm # print the version the build will get
- **Lint is not currently clean on `main`.** black wants to reformat 2 files, isort flags 3, and flake8 reports W391 and W503. Keep unrelated reformatting out of feature diffs. - **Lint is not currently clean on `main`.** black wants to reformat 2 files, isort flags 3, and flake8 reports W391 and W503. Keep unrelated reformatting out of feature diffs.
- Tests cover only `cfg` (ConfigObj fixtures live in `tests/cfg/`) plus a CommandTree constructor smoke test. `tests/test_log.py` is empty. - Tests cover only `cfg` (ConfigObj fixtures live in `tests/cfg/`) plus a CommandTree constructor smoke test. `tests/test_log.py` is empty.
## Python support policy
`requires-python` is `>=3.8`, and the claim should match what CI actually tests. When an end-of-life Python version starts failing, drop it: raise `requires-python` and remove its CI lane. Don't add compat shims, version branches or contorted code just to keep it working. Clean code matters more than supporting EOL runtimes. Users on old Pythons keep the older releases on PyPI.
## Architecture ## Architecture
Package layout: `_bootstrap.py`, `_util.py`, `cfg.py`, `log.py`, `cli.py` and `app_container.py`. `__init__.py` re-exports the public names explicitly. Package layout: `_bootstrap.py`, `_util.py`, `cfg.py`, `log.py`, `cli.py` and `app_container.py`. `__init__.py` re-exports the public names explicitly.
+18 -14
View File
@@ -1,20 +1,24 @@
# file generated by setuptools-scm # file generated by vcs-versioning
# don't change, don't track in version control # don't change, don't track in version control
from __future__ import annotations
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"] __all__ = [
"__version__",
TYPE_CHECKING = False "__version_tuple__",
if TYPE_CHECKING: "version",
from typing import Tuple, Union "version_tuple",
"__commit_id__",
VERSION_TUPLE = Tuple[Union[int, str], ...] "commit_id",
else: ]
VERSION_TUPLE = object
version: str version: str
__version__: str __version__: str
__version_tuple__: VERSION_TUPLE __version_tuple__: tuple[int | str, ...]
version_tuple: VERSION_TUPLE version_tuple: tuple[int | str, ...]
commit_id: str | None
__commit_id__: str | None
__version__ = version = "0.3.0.dev7+gd155176.d20250223" __version__ = version = '0.3.0.dev10+gda9568b4f.d20261005'
__version_tuple__ = version_tuple = (0, 3, 0, "dev7", "gd155176.d20250223") __version_tuple__ = version_tuple = (0, 3, 0, 'dev10', 'gda9568b4f.d20261005')
__commit_id__ = commit_id = 'gda9568b4f'