aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author夏音 / natsuoto.exe <[email protected]>2026-06-25 12:38:18 +0530
committerGitHub <[email protected]>2026-06-25 12:38:18 +0530
commit684cfc554f88596ee266f0f0e8c92c4da9ae6051 (patch)
tree4a9374fb1d03c58f3acb7d38bf07a90e27518e9d
parent10e511b5476df7ddf77b1eafdbb311a90f6005fa (diff)
parent291a8c5b146e0d07fb3536678e5efd6162ed38d7 (diff)
downloadedify-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.yml6
-rw-r--r--CHANGELOG.rst7
-rw-r--r--README.rst2
-rw-r--r--docs/conf.py1
-rw-r--r--pyproject.toml2
-rwxr-xr-xsetup.py3
-rw-r--r--tox.ini3
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)
------------------
diff --git a/README.rst b/README.rst
index 9ea78f9..e795fb5 100644
--- a/README.rst
+++ b/README.rst
@@ -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
diff --git a/setup.py b/setup.py
index 22a3729..9547444 100755
--- a/setup.py
+++ b/setup.py
@@ -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',
],
diff --git a/tox.ini b/tox.ini
index f8a362e..348586c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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}