From 9a3434bf69aee3289ff6199b69072c86afd053ae Mon Sep 17 00:00:00 2001 From: Guillermo Candia Huerta Date: Wed, 29 Apr 2026 11:24:53 -0400 Subject: [PATCH 1/4] chore: Drop support for Python 3.9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stop running **tests** for Python **3.9** in CI/CD. - Remove **explicit** support for Python **3.9** from Python project configuration (`setup.py`, `setup.cfg`, and/or `pyproject.toml`). - Compile Python **dependency manifests** with the **next highest** Python version (**3.10**). - Remove Python **3.9** from **Black** configuration. - Remove support for Python **3.9** from Mypy configuration. - Remove support for Python **3.9** from Tox configuration. - Update documentation in README. Reasons for this change: - The end of support date of Python **3.9** is **2025-10-31**: - [PEP 596 – Python 3.9 Release Schedule → 3.9 Lifespan](https://peps.python.org/pep-0596/#lifespan) - [Status of Python versions](https://devguide.python.org/versions/) - [Dependabot will no longer support Python version 3.9 - Issue already open](https://github.com/dependabot/dependabot-core/issues/14699) Ref: https://app.shortcut.com/cordada/story/20068/ Ref: https://app.shortcut.com/cordada/story/20069/ --- .black.cfg.toml | 2 +- .github/workflows/ci.yaml | 4 +--- README.md | 3 +-- mypy.ini | 2 +- pyproject.toml | 1 - requirements-dev.txt | 5 +---- requirements.in | 1 - requirements.txt | 2 +- tox.ini | 2 -- 9 files changed, 6 insertions(+), 16 deletions(-) diff --git a/.black.cfg.toml b/.black.cfg.toml index da415726..a1c8ede5 100644 --- a/.black.cfg.toml +++ b/.black.cfg.toml @@ -9,4 +9,4 @@ include = '\.pyi?$' line-length = 100 skip-string-normalization = true -target-version = ['py39', 'py310', 'py311', 'py312', 'py313', 'py314'] +target-version = ['py310', 'py311', 'py312', 'py313', 'py314'] diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index eae33a1d..9fb17858 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,7 +28,6 @@ jobs: strategy: matrix: python_version: - - "3.9" - "3.10" - "3.11" - "3.12" @@ -90,7 +89,6 @@ jobs: strategy: matrix: python_version: - - "3.9" - "3.10" - "3.11" - "3.12" @@ -158,7 +156,7 @@ jobs: - name: Check that compiled Python dependency manifests are up-to-date with their sources # FIXME: There are issues related to testing with multiple Python versions. - if: ${{ startsWith(steps.set_up_python.outputs.python-version, '3.9.') }} + if: ${{ startsWith(steps.set_up_python.outputs.python-version, '3.10.') }} run: | source "$PYTHON_VIRTUALENV_ACTIVATE" make python-deps-sync-check diff --git a/README.md b/README.md index 7046c03c..33041c20 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,7 @@ The full documentation is at . ## Supported Python versions -Only Python 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14. Python 3.8 and below will not work because we use -some features introduced in Python 3.9. +Only Python 3.10, 3.11, 3.12, 3.13, and 3.14. Python 3.9 and below will not work. ## Quickstart diff --git a/mypy.ini b/mypy.ini index f3bb76a0..8f397de0 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,5 +1,5 @@ [mypy] -python_version = 3.9 +python_version = 3.10 platform = linux mypy_path = src diff --git a/pyproject.toml b/pyproject.toml index 995ff368..9306f320 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,7 +42,6 @@ classifiers = [ "Intended Audience :: Developers", "Natural Language :: English", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", diff --git a/requirements-dev.txt b/requirements-dev.txt index 317f5e16..f629c762 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile --allow-unsafe --strip-extras requirements-dev.in @@ -67,10 +67,7 @@ idna==3.7 importlib-metadata==8.7.0 # via # -c requirements.txt - # build - # isort # keyring - # twine isort==6.1.0 # via -r requirements-dev.in jaraco-classes==3.4.0 diff --git a/requirements.in b/requirements.in index f7ad120b..3ba5a765 100644 --- a/requirements.in +++ b/requirements.in @@ -5,7 +5,6 @@ # Note: To install a package from a Git VCS repository, see the following example: # git+https://github.com/example/example.git@example-vcs-ref#egg=example-pkg[foo,bar]==1.42.3 -backports-zoneinfo==0.2.1 ; python_version < "3.9" # Used by `djangorestframework`. cryptography==46.0.7 defusedxml==0.7.1 django-filter>=24.2 diff --git a/requirements.txt b/requirements.txt index 1654b247..ecc83259 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile --allow-unsafe --strip-extras requirements.in diff --git a/tox.ini b/tox.ini index 412bfaf1..ff733517 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,5 @@ [tox] envlist = - py39, py310, py311, py312, @@ -15,7 +14,6 @@ deps = -r{toxinidir}/requirements.txt -r{toxinidir}/requirements-dev.txt basepython = - py39: python3.9 py310: python3.10 py311: python3.11 py312: python3.12 From b8675e7396fc0bfdb240dd22055a37038135fdcb Mon Sep 17 00:00:00 2001 From: Guillermo Candia Huerta Date: Tue, 28 Apr 2026 17:25:02 -0400 Subject: [PATCH 2/4] chore(deps): Bump marshmallow from 4.0.1 to 4.3.0 - https://marshmallow.readthedocs.io/en/latest/changelog.html Ref: https://app.shortcut.com/cordada/story/19535/ --- requirements-dev.txt | 2 +- requirements.in | 2 +- requirements.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index f629c762..063b9d36 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -168,7 +168,7 @@ six==1.16.0 # via bleach soupsieve==2.6 # via beautifulsoup4 -tomli==2.2.1 +tomli==2.4.1 # via # black # build diff --git a/requirements.in b/requirements.in index 3ba5a765..fa37817d 100644 --- a/requirements.in +++ b/requirements.in @@ -13,7 +13,7 @@ djangorestframework>=3.10.3,<3.17 importlib-metadata==8.7.0 jsonschema==4.25.1 lxml==6.0.2 -marshmallow==4.0.1 +marshmallow==4.3.0 pydantic==2.12.5 pyOpenSSL==26.0.0 pytz==2025.2 diff --git a/requirements.txt b/requirements.txt index ecc83259..e524e509 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,7 +44,7 @@ lxml==6.0.2 # via # -r requirements.in # signxml -marshmallow==4.0.1 +marshmallow==4.3.0 # via -r requirements.in pycparser==2.22 # via cffi From 2a9eedce37e3b835e378e605522ec5444402d351 Mon Sep 17 00:00:00 2001 From: Guillermo Candia Huerta Date: Mon, 4 May 2026 12:13:04 -0400 Subject: [PATCH 3/4] chore: Update history for new version --- HISTORY.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index 4006daae..210703d4 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,10 @@ # History +## 0.76.0 (2026-05-04) + +- (PR #1029, 2026-04-29) Drop support for Python 3.9 +- (PR #1028, 2026-04-30) Bump marshmallow from 4.0.1 to 4.3.0 + ## 0.75.0 (2026-04-15) - (PR #1024, 2026-04-15) Fix Python version and caching in CI/CD From ae1574673f065b8fbfd08bf780053189b5652387 Mon Sep 17 00:00:00 2001 From: Guillermo Candia Huerta Date: Mon, 4 May 2026 12:14:16 -0400 Subject: [PATCH 4/4] chore: Bump version from 0.75.0 to 0.76.0 --- .bumpversion.cfg | 2 +- src/cl_sii/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 6303387d..b08c4380 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.75.0 +current_version = 0.76.0 commit = True tag = False message = chore: Bump version from {current_version} to {new_version} diff --git a/src/cl_sii/__init__.py b/src/cl_sii/__init__.py index 029f6f0a..19b83fc9 100644 --- a/src/cl_sii/__init__.py +++ b/src/cl_sii/__init__.py @@ -4,4 +4,4 @@ """ -__version__ = '0.75.0' +__version__ = '0.76.0'