From fe745bf8244c0580c24d4f5fffcdbc02f6cd9ff9 Mon Sep 17 00:00:00 2001 From: Talha Muhammad Date: Thu, 15 Oct 2026 12:10:06 +0100 Subject: [PATCH 1/6] Add support for python 3.13, remove support for 3.8,3.9 & 3.10 --- .github/workflows/sonar.yml | 4 ++-- .github/workflows/test.yml | 4 +--- CHANGELOG.md | 14 ++++++++++++-- README.md | 15 +++++++-------- oauth1/__init__.py | 12 ------------ oauth1/version.py | 2 +- requirements.txt | 2 +- setup.py | 9 +++------ 8 files changed, 27 insertions(+), 35 deletions(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 17a3e9d..15fb90d 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -23,10 +23,10 @@ jobs: github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request_target') }} run: echo "Unsecure PR, must be labelled with the 'safe' label, then run the workflow again" && exit 1 - - name: Set up Python 3.12 + - name: Set up Python 3.13 uses: actions/setup-python@v4 with: - python-version: 3.12 + python-version: 3.13 - name: Install dependencies run: | pip3 install --upgrade pip setuptools wheel diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2f75ac0..743f084 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,11 +15,9 @@ jobs: strategy: matrix: python-version: - - "3.8" - - "3.9" - - "3.10" - "3.11" - "3.12" + - "3.13" include: - os: "ubuntu-latest" steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 496b42c..364640d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,17 @@ ### Changed - Declared `python_requires=">=3.8,<3.13"`. -## [2.0.0] - 2026-05-01 (Planned) +## [2.0.0] - 2026-10-XX (TODO UPDATE) + +### Deprecated +- Support for Python 3.8, 3.9 and 3.10 has been deprecated as they have reached EOL. + +### Added +- Support for Python 3.13. + +### Changed +- Declared `python_requires=">=3.11,<3.14"`. +- Upgrade requests library to `>=2.33.0`. ### Breaking Changes -- Minimum supported Python: 3.10 (dropped 3.8 and 3.9). +- Minimum supported Python version is now 3.11, dropped support for 3.8, 3.9 and 3.10 diff --git a/README.md b/README.md index 09b63b7..63db10b 100644 --- a/README.md +++ b/README.md @@ -33,14 +33,13 @@ Python library for generating a Mastercard API compliant OAuth signature. ### Compatibility -| Version | Python | Status | Notes | -|------------------------|--------|--------|-------| -| **1.9.2** | 3.8, 3.9, 3.10, 3.11, 3.12 | Current | Maintenance & security fixes | -| **2.0.0** (coming soon) | 3.10, 3.11, 3.12 | Planned | Drops 3.8/3.9 support | - -⚠️ **Deprecation Notice:** Python 3.8 (EOL Oct 2024) and 3.9 (EOL Oct 2025) support will be removed in v2.0.0. -Python 3.8 and 3.9 are deprecated and will be removed in v2.0.0 (Python 3.10+ only). -A `DeprecationWarning` is emitted when importing this package on Python 3.8/3.9. +| Version | Python | Status | Notes | +|-----------|----------------------------|----------|---------------------------------------------------| +| **1.9.2** | 3.8, 3.9, 3.10, 3.11, 3.12 | Previous | Maintenance & security fixes | +| **2.0.0** | 3.11, 3.12, 3.13 | Current | Maintenance and dropping support for 3.8/3.9/3.10 | + +⚠️ **Deprecation Notice:** +Python 3.8 (EOL Oct 2024), 3.9 (EOL Oct 2025) and 3.10 (EOL Oct 2026) have reached EOL and are no longer supported. Support for them has been removed in v2.0.0. Release notes: see [CHANGELOG.md](CHANGELOG.md) (or GitHub Releases). diff --git a/oauth1/__init__.py b/oauth1/__init__.py index cab3fa2..e69de29 100644 --- a/oauth1/__init__.py +++ b/oauth1/__init__.py @@ -1,12 +0,0 @@ -import sys -import warnings - -# Deprecation warning for Python 3.8/3.9 -if sys.version_info < (3, 10): - warnings.warn( - "Support for Python 3.8 and 3.9 is deprecated and will be removed in v2.0.0 (coming soon). " - "Please upgrade to Python 3.10 or higher. " - "See: https://github.com/Mastercard/oauth1-signer-python#compatibility", - DeprecationWarning, - stacklevel=2 - ) diff --git a/oauth1/version.py b/oauth1/version.py index 476f4ec..96ae1be 100644 --- a/oauth1/version.py +++ b/oauth1/version.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = '1.9.2' +__version__ = '2.0.0' diff --git a/requirements.txt b/requirements.txt index 93c8251..2d10a0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -requests>=2.31.0,<2.32.5 +requests>=2.33.0 Deprecated==1.2.5 cryptography>=42.0.0 diff --git a/setup.py b/setup.py index ee05e32..cd82afe 100644 --- a/setup.py +++ b/setup.py @@ -36,19 +36,16 @@ url='https://github.com/Mastercard/oauth1-signer-python', license='MIT', packages=find_packages(), - python_requires='>=3.8,<3.13', + python_requires='>=3.11,<3.14', classifiers=[ 'Intended Audience :: Developers', 'Natural Language :: English', 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'Topic :: Software Development :: Libraries :: Python Modules' ], tests_require=['coverage'], - install_requires=['cryptography>=42.0.0','urllib3', 'Deprecated', 'requests>=2.31.0,<2.32.5; python_version<"3.10"', 'requests>=2.33.0; python_version>="3.10"'] + install_requires=['cryptography>=42.0.0','urllib3', 'Deprecated', 'requests>=2.33.0'] ) From 874f21cce705d63600d46a9702f3e6dd8218903a Mon Sep 17 00:00:00 2001 From: Talha Muhammad Date: Fri, 16 Oct 2026 12:29:03 +0100 Subject: [PATCH 2/6] Removed deprecated tests_require, update workflow for testing --- .github/workflows/test.yml | 2 ++ setup.py | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 743f084..23ba0f2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,9 +15,11 @@ jobs: strategy: matrix: python-version: + - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" include: - os: "ubuntu-latest" steps: diff --git a/setup.py b/setup.py index cd82afe..ed9b9da 100644 --- a/setup.py +++ b/setup.py @@ -46,6 +46,5 @@ 'Programming Language :: Python :: 3.13', 'Topic :: Software Development :: Libraries :: Python Modules' ], - tests_require=['coverage'], install_requires=['cryptography>=42.0.0','urllib3', 'Deprecated', 'requests>=2.33.0'] ) From 2a798ba73450b5f47f65d85c8407daa9c53950cd Mon Sep 17 00:00:00 2001 From: Talha Muhammad Date: Fri, 16 Oct 2026 12:36:00 +0100 Subject: [PATCH 3/6] Revert testing updates --- .github/workflows/test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 23ba0f2..743f084 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,11 +15,9 @@ jobs: strategy: matrix: python-version: - - "3.10" - "3.11" - "3.12" - "3.13" - - "3.14" include: - os: "ubuntu-latest" steps: From e91261691df4f65c2ed471835f058de5fd9bb7a7 Mon Sep 17 00:00:00 2001 From: Talha Muhammad Date: Mon, 19 Oct 2026 11:41:18 +0100 Subject: [PATCH 4/6] Keep 3.8,3.9.3.10 support, update content --- CHANGELOG.md | 30 +++++++++++++++--------------- README.md | 11 ++++++----- oauth1/__init__.py | 12 ++++++++++++ oauth1/version.py | 2 +- requirements.txt | 3 ++- setup.py | 7 +++++-- 6 files changed, 41 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 364640d..093b47e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,28 +1,28 @@ # Changelog -## [1.9.2] - 2026-04-01 - -### Deprecated -- Python 3.8 and 3.9 support, will be removed in v2.0.0. Import-time deprecation warning emitted on 3.8/3.9. +## [1.10.0] - 2026-10-XX (TODO UPDATE) ### Added -- Support for Python 3.10, 3.11, 3.12. -- Support for selecting the OAuth signature method via `SignatureMethod`, including `RSA-PSS-SHA256`. `RSA-SHA256` remains the default when `signature_method` is not provided. +- Support for Python 3.13. + +### Deprecated +- Python 3.8, 3.9 and 3.10 have reached end-of-life. They remain usable with the library, but will not be actively supported going forward. +- Importing the package on Python 3.8, 3.9 or 3.10 emits a `DeprecationWarning` (previously only on 3.8 and 3.9). ### Changed -- Declared `python_requires=">=3.8,<3.13"`. +- Declared `python_requires=">=3.8,<3.14"`, added the 3.13 classifier and removed deprecated `tests_require` in `setup.py`. + +### Security +- Python 3.10+ requires `requests>=2.33.0` (unchanged from 1.9.2), which fixes [CVE-2026-25645](https://github.com/advisories/GHSA-gc5v-m9x4-r6x2). This library does not call the affected `extract_zipped_paths()` function, so Python 3.8 and 3.9, which cannot use `requests>=2.33.0`, remain on `requests>=2.31.0,<2.32.5` and are not affected in standard use. -## [2.0.0] - 2026-10-XX (TODO UPDATE) +## [1.9.2] - 2026-04-01 ### Deprecated -- Support for Python 3.8, 3.9 and 3.10 has been deprecated as they have reached EOL. +- Python 3.8 and 3.9 support, will be removed in v2.0.0. Import-time deprecation warning emitted on 3.8/3.9. ### Added -- Support for Python 3.13. +- Support for Python 3.10, 3.11, 3.12. +- Support for selecting the OAuth signature method via `SignatureMethod`, including `RSA-PSS-SHA256`. `RSA-SHA256` remains the default when `signature_method` is not provided. ### Changed -- Declared `python_requires=">=3.11,<3.14"`. -- Upgrade requests library to `>=2.33.0`. - -### Breaking Changes -- Minimum supported Python version is now 3.11, dropped support for 3.8, 3.9 and 3.10 +- Declared `python_requires=">=3.8,<3.13"`. diff --git a/README.md b/README.md index 63db10b..cacf9e1 100644 --- a/README.md +++ b/README.md @@ -33,13 +33,14 @@ Python library for generating a Mastercard API compliant OAuth signature. ### Compatibility -| Version | Python | Status | Notes | -|-----------|----------------------------|----------|---------------------------------------------------| -| **1.9.2** | 3.8, 3.9, 3.10, 3.11, 3.12 | Previous | Maintenance & security fixes | -| **2.0.0** | 3.11, 3.12, 3.13 | Current | Maintenance and dropping support for 3.8/3.9/3.10 | +| Version | Python | Status | Notes | +|------------|----------------------------------|----------|--------------------------------| +| **1.9.2** | 3.8, 3.9, 3.10, 3.11, 3.12 | Previous | Maintenance & security fixes | +| **1.10.0** | 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 | Current | Adding support for Python 3.13 | ⚠️ **Deprecation Notice:** -Python 3.8 (EOL Oct 2024), 3.9 (EOL Oct 2025) and 3.10 (EOL Oct 2026) have reached EOL and are no longer supported. Support for them has been removed in v2.0.0. +Python 3.8 (EOL Oct 2024), 3.9 (EOL Oct 2025) and 3.10 (EOL Oct 2026) have reached end-of-life. +We will not be providing support for these versions going forward. Release notes: see [CHANGELOG.md](CHANGELOG.md) (or GitHub Releases). diff --git a/oauth1/__init__.py b/oauth1/__init__.py index e69de29..04c6d81 100644 --- a/oauth1/__init__.py +++ b/oauth1/__init__.py @@ -0,0 +1,12 @@ +import sys +import warnings + +# Deprecation warning for Python 3.8/3.9/3.10 +if sys.version_info < (3, 11): + warnings.warn( + "Python 3.8, 3.9 and 3.10 have reached EOL and we will not be providing support for them going forward. " + "Please upgrade to Python 3.11 or higher. " + "See: https://github.com/Mastercard/oauth1-signer-python#compatibility", + DeprecationWarning, + stacklevel=2 + ) diff --git a/oauth1/version.py b/oauth1/version.py index 96ae1be..7c6acba 100644 --- a/oauth1/version.py +++ b/oauth1/version.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = '2.0.0' +__version__ = '1.10.0' diff --git a/requirements.txt b/requirements.txt index 2d10a0b..f352dbd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ -requests>=2.33.0 +requests>=2.31.0,<2.32.5; python_version<"3.10" +requests>=2.33.0; python_version>="3.10" Deprecated==1.2.5 cryptography>=42.0.0 diff --git a/setup.py b/setup.py index ed9b9da..4fc6364 100644 --- a/setup.py +++ b/setup.py @@ -36,15 +36,18 @@ url='https://github.com/Mastercard/oauth1-signer-python', license='MIT', packages=find_packages(), - python_requires='>=3.11,<3.14', + python_requires='>=3.8,<3.14', classifiers=[ 'Intended Audience :: Developers', 'Natural Language :: English', 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', 'Topic :: Software Development :: Libraries :: Python Modules' ], - install_requires=['cryptography>=42.0.0','urllib3', 'Deprecated', 'requests>=2.33.0'] + install_requires=['cryptography>=42.0.0','urllib3', 'Deprecated', 'requests>=2.31.0,<2.32.5; python_version<"3.10"', 'requests>=2.33.0; python_version>="3.10"'] ) From 64f32c6eac09f0ffe8650c03ec4bbecdc4a83696 Mon Sep 17 00:00:00 2001 From: Talha Muhammad Date: Tue, 20 Oct 2026 12:52:21 +0100 Subject: [PATCH 5/6] PR comments --- README.md | 9 ++++----- oauth1/__init__.py | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cacf9e1..eb19f78 100644 --- a/README.md +++ b/README.md @@ -33,14 +33,13 @@ Python library for generating a Mastercard API compliant OAuth signature. ### Compatibility -| Version | Python | Status | Notes | -|------------|----------------------------------|----------|--------------------------------| -| **1.9.2** | 3.8, 3.9, 3.10, 3.11, 3.12 | Previous | Maintenance & security fixes | -| **1.10.0** | 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 | Current | Adding support for Python 3.13 | +| Version | Supported Python Versions | +|------------|----------------------------------| +| **1.10.0** | 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 | ⚠️ **Deprecation Notice:** Python 3.8 (EOL Oct 2024), 3.9 (EOL Oct 2025) and 3.10 (EOL Oct 2026) have reached end-of-life. -We will not be providing support for these versions going forward. +We will not be providing ongoing support for these versions. Release notes: see [CHANGELOG.md](CHANGELOG.md) (or GitHub Releases). diff --git a/oauth1/__init__.py b/oauth1/__init__.py index 04c6d81..19f3870 100644 --- a/oauth1/__init__.py +++ b/oauth1/__init__.py @@ -4,7 +4,7 @@ # Deprecation warning for Python 3.8/3.9/3.10 if sys.version_info < (3, 11): warnings.warn( - "Python 3.8, 3.9 and 3.10 have reached EOL and we will not be providing support for them going forward. " + "Python 3.8, 3.9 and 3.10 have reached EOL and we will not be providing ongoing support for these versions. " "Please upgrade to Python 3.11 or higher. " "See: https://github.com/Mastercard/oauth1-signer-python#compatibility", DeprecationWarning, From 0e86fce932afd34792af35059362a1d99119e0be Mon Sep 17 00:00:00 2001 From: Talha Muhammad Date: Mon, 2 Nov 2026 13:28:03 +0000 Subject: [PATCH 6/6] Update date --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 093b47e..6885b73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [1.10.0] - 2026-10-XX (TODO UPDATE) +## [1.10.0] - 2026-11-01 ### Added - Support for Python 3.13.