aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornatsuoto <[email protected]>2026-06-25 12:18:49 +0530
committernatsuoto <[email protected]>2026-06-25 12:18:49 +0530
commitdef4fe7c458c983340545dc89ef93aabf8b94a99 (patch)
tree7fe4bdd755f10b3e68af89b9ac7015f9d4664504
parent10e511b5476df7ddf77b1eafdbb311a90f6005fa (diff)
downloadedify-def4fe7c458c983340545dc89ef93aabf8b94a99.tar.xz
edify-def4fe7c458c983340545dc89ef93aabf8b94a99.zip
feat!: drop Python 3.8 support
Python 3.8 reached end-of-life on 2024-10-07. Dependencies are now actively dropping it — Dependabot PR #62 surfaced the first concrete instance (virtualenv 21.5+ requires Python 3.9+, breaking the py38 CI job). Same rationale that drove dropping Python 3.7 in #32 applies more strongly here. - setup.py: drop the 3.8 classifier; bump python_requires to >=3.9 - pyproject.toml: bump black target-version to py39 - tox.ini: drop py38 env and basepython entry - README.rst: bump quick-start to 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: add Unreleased section covering this PR, #60, #56, and #58 Branch protection on main was updated in lockstep — required contexts dropped from 13 to 12. BREAKING CHANGE: Edify now requires Python 3.9 or newer. Closes #63
-rw-r--r--.github/workflows/github-actions.yml6
-rw-r--r--CHANGELOG.rst18
-rw-r--r--README.rst2
-rw-r--r--pyproject.toml2
-rwxr-xr-xsetup.py3
-rw-r--r--tox.ini3
6 files changed, 22 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..baf7c6f 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,24 @@
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/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}