diff options
| author | 夏音 / natsuoto.exe <[email protected]> | 2026-06-25 12:38:18 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-06-25 12:38:18 +0530 |
| commit | 684cfc554f88596ee266f0f0e8c92c4da9ae6051 (patch) | |
| tree | 4a9374fb1d03c58f3acb7d38bf07a90e27518e9d | |
| parent | 10e511b5476df7ddf77b1eafdbb311a90f6005fa (diff) | |
| parent | 291a8c5b146e0d07fb3536678e5efd6162ed38d7 (diff) | |
| download | edify-684cfc554f88596ee266f0f0e8c92c4da9ae6051.tar.xz edify-684cfc554f88596ee266f0f0e8c92c4da9ae6051.zip | |
feat!: drop Python 3.8 support (#64)
## Summary
Python 3.8 reached end-of-life on **2024-10-07** — 20 months ago.
Dependencies are now actively dropping it; Dependabot PR #62
(`virtualenv >=21.5.1`) surfaced the first concrete CI break (virtualenv
21.5 requires Python 3.9+). Same rationale that drove dropping Python
3.7 in #32 applies more strongly here.
Floor moves to **Python 3.9**.
## Changes
Mirrors #32 (drop 3.7):
- `setup.py` — drop `Programming Language :: Python :: 3.8` classifier;
`python_requires=>=3.9`.
- `pyproject.toml` — black `target-version = ['py39']`.
- `tox.ini` — drop `py38` from `envlist` and its `basepython` entry.
- `README.rst` — quick-start now "Python 3.9-3.14".
- `.github/workflows/github-actions.yml` — drop `py38 (ubuntu)` matrix
entry (the only py38 job left after the multi-OS drop in #60).
- `CHANGELOG.rst` — new `Unreleased` section covering this PR plus #56,
#58, #60.
`tests.local.sh` doesn't need changes — it's been programmatic since
#47.
## Branch protection
Already updated in lockstep: `required_status_checks.contexts` on `main`
went from **13 → 12** (dropped `py38 (ubuntu)`).
## After this lands
Dependabot PR #62 (`virtualenv >=21.5.1`) becomes mergeable on its next
CI re-run.
**BREAKING CHANGE:** Edify now requires Python 3.9 or newer.
Closes #63
| -rw-r--r-- | .github/workflows/github-actions.yml | 6 | ||||
| -rw-r--r-- | CHANGELOG.rst | 7 | ||||
| -rw-r--r-- | README.rst | 2 | ||||
| -rw-r--r-- | docs/conf.py | 1 | ||||
| -rw-r--r-- | pyproject.toml | 2 | ||||
| -rwxr-xr-x | setup.py | 3 | ||||
| -rw-r--r-- | tox.ini | 3 |
7 files changed, 12 insertions, 12 deletions
diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index a52b114..61665e0 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -19,12 +19,6 @@ jobs: toxpython: 'python3.9' tox_env: 'docs' os: 'ubuntu-latest' - - name: 'py38 (ubuntu)' - python: '3.8' - toxpython: 'python3.8' - python_arch: 'x64' - tox_env: 'py38' - os: 'ubuntu-latest' - name: 'py39 (ubuntu)' python: '3.9' toxpython: 'python3.9' diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1fb2f99..9453464 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,13 @@ Changelog ========= +Unreleased +---------- + +* **Breaking:** Dropped support for Python 3.8. Edify now requires Python 3.9 or newer (:pr:`64`). Python 3.8 reached EOL on 2024-10-07; dependencies are now actively dropping it (e.g. ``virtualenv`` 21.5+ requires ``>=3.9``). +* **Tooling and CI:** Dropped macOS and Windows runners from the CI matrix; Linux-only from here on. Edify is a pure-Python wheel with no platform-specific code, so the multi-OS jobs were buying ~zero signal and produced false negatives. Branch-protection required contexts went from 31 → 13 in lockstep (and now 12 with the Python 3.8 drop) (:pr:`60`). +* **Dependencies:** Bumped the minimum ``virtualenv`` floor for the CI bootstrap to ``>=21.4.2`` (:pr:`56`, :pr:`58`). + 0.3.0 (2026-04-29) ------------------ @@ -53,7 +53,7 @@ It also allows you to verify a string quickly by providing commonly used regex p Quick Start ============= -To get started make sure you have Python 3.8-3.14 installed and then, install Edify from ``pip``: +To get started make sure you have Python 3.9-3.14 installed and then, install Edify from ``pip``: .. code-block:: bash diff --git a/docs/conf.py b/docs/conf.py index eb29037..74c45f5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -34,6 +34,7 @@ extlinks = { # rather than letting docs CI fail every time we bump. linkcheck_ignore = [ r'https://github\.com/luciferreeves/edify/compare/v\d+\.\d+\.\d+\.\.\.main', + r'https://github\.com/luciferreeves/edify/(pull|issues)/\d+', ] # on_rtd is whether we are on readthedocs.org on_rtd = os.environ.get('READTHEDOCS', None) == 'True' diff --git a/pyproject.toml b/pyproject.toml index 4dc0ff5..6baa4ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,5 +6,5 @@ requires = [ [tool.black] line-length = 140 -target-version = ['py38'] +target-version = ['py39'] skip-string-normalization = true @@ -46,7 +46,6 @@ setup( 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', @@ -69,7 +68,7 @@ setup( keywords=[ # eg: 'keyword1', 'keyword2', 'keyword3', ], - python_requires='>=3.8', + python_requires='>=3.9', install_requires=[ # eg: 'aspectlib==1.1.1', 'six>=1.7', ], @@ -5,7 +5,7 @@ envlist = clean, check, docs, - {py38,py39,py310,py311,py312,py313,py314,pypy310,pypy311}, + {py39,py310,py311,py312,py313,py314,pypy310,pypy311}, report ignore_basepython_conflict = true @@ -13,7 +13,6 @@ ignore_basepython_conflict = true basepython = pypy310: {env:TOXPYTHON:pypy3.10} pypy311: {env:TOXPYTHON:pypy3.11} - py38: {env:TOXPYTHON:python3.8} py39: {env:TOXPYTHON:python3.9} py310: {env:TOXPYTHON:python3.10} py311: {env:TOXPYTHON:python3.11} |
