From cd23dd1a16558b40ebdfae72f233db42e5b485f9 Mon Sep 17 00:00:00 2001 From: Rodos Date: Tue, 4 Nov 2025 10:07:22 +1100 Subject: [PATCH 1/2] feat: Enforce Python 3.8+ requirement and add multi-version CI testing - Add python_requires=">=3.8" to setup.py to enforce minimum version at install time - Update README to explicitly document Python 3.8+ requirement - Add CI matrix to test lint/build on Python 3.8-3.14 (7 versions) - Aligns with actual usage patterns (~99% of downloads on Python 3.8+) - Prevents future PRs from inadvertently using incompatible syntax This change protects users by preventing installation on unsupported Python versions and ensures contributors can see version requirements clearly. --- .github/workflows/lint.yml | 5 ++++- README.rst | 2 +- setup.py | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e0036e2..cf74eb7 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,6 +15,9 @@ jobs: lint: name: lint runs-on: ubuntu-24.04 + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout repository @@ -24,7 +27,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v6 with: - python-version: "3.12" + python-version: ${{ matrix.python-version }} cache: "pip" - run: pip install -r release-requirements.txt && pip install wheel - run: flake8 --ignore=E501,E203,W503 diff --git a/README.rst b/README.rst index 5dcef95..c5fafa3 100644 --- a/README.rst +++ b/README.rst @@ -9,8 +9,8 @@ The package can be used to backup an *entire* `Github `_ or Requirements ============ +- Python 3.8 or higher - GIT 1.9+ -- Python Installation ============ diff --git a/setup.py b/setup.py index c4b8cf1..6ef7551 100644 --- a/setup.py +++ b/setup.py @@ -50,5 +50,6 @@ setup( long_description=open_file("README.rst").read(), long_description_content_type="text/x-rst", install_requires=open_file("requirements.txt").readlines(), + python_requires=">=3.8", zip_safe=True, ) From 73dc75ab952300213d4930bc93cb76067b7f87e0 Mon Sep 17 00:00:00 2001 From: Rodos Date: Tue, 4 Nov 2025 13:30:42 +1100 Subject: [PATCH 2/2] fix: Remove Python 3.8 and 3.9 from CI matrix 3.8 and 3.9 are failing because the pinned dependencies don't support them: - autopep8==2.3.2 needs Python 3.9+ - bleach==6.3.0 needs Python 3.10+ Both are EOL now anyway (3.8 in Oct 2024, 3.9 in Oct 2025). Just fixing CI to test 3.10-3.14 for now. Will do a separate PR to formally drop 3.8/3.9 support with python_requires and README updates. --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index cf74eb7..02ad174 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-24.04 strategy: matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout repository