From 0260205c1b5044038b982633f0c655ec25a1d767 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 15 Nov 2022 12:06:42 +0200 Subject: [PATCH 01/13] Add support for Python 3.11 --- .github/workflows/test.yml | 2 +- setup.py | 1 + tox.ini | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6a01614..65e6325 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] services: postgres: diff --git a/setup.py b/setup.py index 2c6f855..3bbd1da 100644 --- a/setup.py +++ b/setup.py @@ -43,6 +43,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Framework :: Django', 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', diff --git a/tox.ini b/tox.ini index 1774e91..2e5a3ed 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = - py{37,38,39,310}-dj32 - py{38,39,310}-dj{40,41,main} + py{37,38,39,310,311}-dj32 + py{38,39,310,311}-dj{40,41,main} flake8 isort @@ -11,6 +11,7 @@ python = 3.8: py38, flake8, isort 3.9: py39 3.10: py310 + 3.11: py311 [testenv] deps = From c45c0380de0c90cb04f113d130e0dbc00c8c825e Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 15 Nov 2022 12:07:15 +0200 Subject: [PATCH 02/13] Bump GitHub Actions --- .github/workflows/release.yml | 6 +++--- .github/workflows/test.yml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f367713..640bf1b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,14 +11,14 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: - python-version: 3.8 + python-version: 3.x - name: Install dependencies run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 65e6325..1acf3c6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,10 +27,10 @@ jobs: --health-retries 5 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} @@ -40,7 +40,7 @@ jobs: echo "::set-output name=dir::$(pip cache dir)" - name: Cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.pip-cache.outputs.dir }} key: @@ -64,6 +64,6 @@ jobs: DB_PORT: 5432 - name: Upload coverage - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 with: name: Python ${{ matrix.python-version }} From 8653db566982bedfdc1d9d217f7683da70901333 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 15 Nov 2022 12:09:46 +0200 Subject: [PATCH 03/13] Bump psycopg2-binary to support Python 3.11 --- requirements-test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-test.txt b/requirements-test.txt index 62ed4cc..138b0de 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,4 +1,4 @@ pytest==6.2.5 pytest-django==3.10.0 -psycopg2-binary==2.8.6 +psycopg2-binary==2.9.5 pytest-cov==2.10.1 From aec019ca9719cf968f5a85aa09b325d3cda28596 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 15 Nov 2022 12:12:36 +0200 Subject: [PATCH 04/13] Add colour to CI logs for readability --- .github/workflows/test.yml | 3 +++ tox.ini | 1 + 2 files changed, 4 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1acf3c6..e70bfc3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,6 +2,9 @@ name: Test on: [push, pull_request] +env: + FORCE_COLOR: 1 + jobs: build: runs-on: ubuntu-latest diff --git a/tox.ini b/tox.ini index 2e5a3ed..ba1ae57 100644 --- a/tox.ini +++ b/tox.ini @@ -27,6 +27,7 @@ ignore_errors = djmain: True passenv = CI + FORCE_COLOR GITHUB_* DB_* usedevelop = True From e1b83d8265efc60130662d50ec37e598db0e9ac3 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 15 Nov 2022 12:17:33 +0200 Subject: [PATCH 05/13] Add support for Python 3.11 --- CHANGES.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.rst b/CHANGES.rst index 09d39ca..2c9522d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -11,6 +11,7 @@ Changelog - Drop support for `Django < 3.2` - Drop support for `Python 3.6` - Confirm support for `Django 4.1` +- Add support for `Python 3.11` (GH-#545) 4.3.0 ----- From 309f1d80808a2f402979c93c03062fd8e08de96f Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Mon, 12 Dec 2022 21:21:30 +0200 Subject: [PATCH 06/13] Test Python 3.12-dev --- .github/workflows/test.yml | 2 +- tox.ini | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e70bfc3..734da96 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12-dev'] services: postgres: diff --git a/tox.ini b/tox.ini index ba1ae57..dde2ad2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = - py{37,38,39,310,311}-dj32 - py{38,39,310,311}-dj{40,41,main} + py{37,38,39,310,311,312}-dj32 + py{38,39,310,311,312}-dj{40,41,main} flake8 isort @@ -12,6 +12,7 @@ python = 3.9: py39 3.10: py310 3.11: py311 + 3.12: py312 [testenv] deps = From 0167a18024e7eb224d3775894f461d3d49136af2 Mon Sep 17 00:00:00 2001 From: Jelmer Draaijer Date: Thu, 6 Apr 2023 13:38:02 +0200 Subject: [PATCH 07/13] Test django against 4.2 & main branch to formally support django 4.2 --- CHANGES.rst | 5 +++++ setup.py | 1 + tox.ini | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index f6cb6cc..88271a2 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,11 @@ Changelog ========= +To be released +-------- + +- Confirm support for `Django 4.2` + 4.3.1 (2022-11-15) ------------------ diff --git a/setup.py b/setup.py index 2c6f855..60ddbcb 100644 --- a/setup.py +++ b/setup.py @@ -47,6 +47,7 @@ setup( 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', 'Framework :: Django :: 4.1', + 'Framework :: Django :: 4.2', ], zip_safe=False, package_data={ diff --git a/tox.ini b/tox.ini index b4e1713..316ca1b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = py{37,38,39,310}-dj32 - py{38,39,310}-dj{40,41,main} + py{38,39,310}-dj{40,41,42,main} flake8 isort @@ -19,6 +19,7 @@ deps = dj32: Django==3.2.* dj40: Django==4.0.* dj41: Django==4.1.* + dj42: Django==4.2.* djmain: https://github.com/django/django/archive/main.tar.gz ignore_outcome = djmain: True From 3224ed4526a3a672d035d098cb0c0a5e659fc359 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 19:47:34 +0000 Subject: [PATCH 08/13] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/asottile/pyupgrade: v3.3.1 → v3.6.0](https://github.com/asottile/pyupgrade/compare/v3.3.1...v3.6.0) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 327897b..15a959b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: files: ^(model_utils|tests)/ - repo: https://github.com/asottile/pyupgrade - rev: v3.3.1 + rev: v3.6.0 hooks: - id: pyupgrade args: [--py37-plus] From b76c6c497b423210fe6890c0f733b5779fe1f935 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 15 Jun 2023 17:49:51 +0300 Subject: [PATCH 09/13] Replace setuptools' pkg_resources with stdlib importlib.metadata --- docs/conf.py | 5 +++-- model_utils/__init__.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 0d47d51..fbab4aa 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -11,7 +11,7 @@ # serve to show the default. import os -from pkg_resources import get_distribution +import importlib.metadata # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -49,7 +49,8 @@ parent_dir = os.path.dirname(os.path.dirname(__file__)) # |version| and |release|, also used in various other places throughout the # built documents. # -release = get_distribution('django-model-utils').version +release = importlib.metadata.version('django-model-utils') + # for example take major/minor version = '.'.join(release.split('.')[:2]) diff --git a/model_utils/__init__.py b/model_utils/__init__.py index 691cf5c..8b02a0e 100644 --- a/model_utils/__init__.py +++ b/model_utils/__init__.py @@ -1,10 +1,10 @@ -from pkg_resources import DistributionNotFound, get_distribution +import importlib.metadata from .choices import Choices # noqa:F401 from .tracker import FieldTracker, ModelTracker # noqa:F401 try: - __version__ = get_distribution("django-model-utils").version -except DistributionNotFound: # pragma: no cover + __version__ = importlib.metadata.version('django-model-utils') +except importlib.metadata.PackageNotFoundError: # pragma: no cover # package is not installed __version__ = None From dc505a968dddfe1725bd4a36877fc549ec199c35 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 15 Jun 2023 20:39:29 +0300 Subject: [PATCH 10/13] Drop support for EOL Python 3.7 --- .github/workflows/test.yml | 2 +- .pre-commit-config.yaml | 2 +- setup.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 734da96..20b5bc2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12-dev'] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12-dev'] services: postgres: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 327897b..098f13b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,4 +17,4 @@ repos: rev: v3.3.1 hooks: - id: pyupgrade - args: [--py37-plus] + args: [--py38-plus] diff --git a/setup.py b/setup.py index 05c46a0..566bdba 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ setup( maintainer='JazzBand', url='https://github.com/jazzband/django-model-utils', packages=find_packages(exclude=['tests*']), - python_requires=">=3.7", + python_requires=">=3.8", install_requires=['Django>=3.2'], classifiers=[ 'Development Status :: 5 - Production/Stable', @@ -39,11 +39,11 @@ setup( 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', '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', 'Framework :: Django', 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', From e35de428d58c5903fd47ba80d3e31cef28c12ea8 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 15 Jun 2023 20:44:33 +0300 Subject: [PATCH 11/13] Add Read the Docs config to upgrade Python version --- .readthedocs.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .readthedocs.yml diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..feadb8f --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,13 @@ +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +# Project page: https://readthedocs.org/projects/django-model-utils/ + +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3" + +sphinx: + configuration: docs/conf.py From e3d9e50b53f100b5d269459d449cea95a69947d8 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 15 Jun 2023 20:58:10 +0300 Subject: [PATCH 12/13] pip install . --- .readthedocs.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index feadb8f..d4eb136 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -9,5 +9,10 @@ build: tools: python: "3" +python: + install: + - method: pip + path: . + sphinx: configuration: docs/conf.py From cb292c25c95fdbfbd1b307a64895e539144d68ee Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 15 Jun 2023 21:18:03 +0300 Subject: [PATCH 13/13] Update changelog --- CHANGES.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 6736948..437c073 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,9 @@ To be released -------- - Confirm support for `Django 4.2` +- Add support for `Python 3.11` (GH-#545) +- Add support for `Python 3.12` (GH-#545) +- Drop support for `Python 3.7` (GH-#545) 4.3.1 (2022-11-15) ------------------ @@ -16,7 +19,6 @@ To be released - Drop support for `Django < 3.2` - Drop support for `Python 3.6` - Confirm support for `Django 4.1` -- Add support for `Python 3.11` (GH-#545) 4.3.0 -----