From cd23dd1a16558b40ebdfae72f233db42e5b485f9 Mon Sep 17 00:00:00 2001 From: Rodos Date: Tue, 4 Nov 2025 10:07:22 +1100 Subject: [PATCH] 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, )