diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f23e71a..6d41013 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,12 +5,12 @@ on: [push, pull_request] jobs: build: name: build (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }}) - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: - python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] django-version: ['2.2', '3.0', '3.1', '3.2'] steps: diff --git a/README.rst b/README.rst index 06d1187..f05e41a 100644 --- a/README.rst +++ b/README.rst @@ -69,7 +69,7 @@ Abnorm automatically creates and connects signal receivers with boring logic und The only requirement for the augmented model (the one with abnorm field added to hold denormalized value) is to have a standard django relation descriptor, as it is internally used to reach the desired data source. You can use, for example, standard backwards relation accessors, that are auto-created for relationship fields. -Abnorm currently supports django 2.2-4.0 and recent versions of python3. +Abnorm currently supports django 2.2-4.2 and recent versions of python3. Work on documentation and tests is in progress, any help would be appreciated. diff --git a/abnorm/adapters/__init__.py b/abnorm/adapters/__init__.py index 22f27a5..0259939 100644 --- a/abnorm/adapters/__init__.py +++ b/abnorm/adapters/__init__.py @@ -7,6 +7,8 @@ (3, 1), (3, 2), (4, 0), + (4, 1), + (4, 2), ] if DJANGO_VERSION[:2] not in SUPPORTED_DJANGO_VERSIONS: diff --git a/abnorm/adapters/django4p1.py b/abnorm/adapters/django4p1.py new file mode 100644 index 0000000..bd073db --- /dev/null +++ b/abnorm/adapters/django4p1.py @@ -0,0 +1,5 @@ +from .django4p0 import SpecificDjango as Django4p0 + + +class SpecificDjango(Django4p0): + pass diff --git a/abnorm/adapters/django4p2.py b/abnorm/adapters/django4p2.py new file mode 100644 index 0000000..59bdebf --- /dev/null +++ b/abnorm/adapters/django4p2.py @@ -0,0 +1,5 @@ +from .django4p1 import SpecificDjango as Django4p1 + + +class SpecificDjango(Django4p1): + pass diff --git a/setup.py b/setup.py index fd8f56c..182af56 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ DEPENDENCIES = [ - 'django >=2.2, <4.1', + 'django >=2.2, <4.3', ] @@ -18,7 +18,7 @@ setup( name='django-abnorm', - version='1.3.0', + version='1.4.0', description='Django automatic denormalization toolkit', author='trashnroll', author_email='trashnroll@gmail.com', @@ -29,11 +29,11 @@ classifiers=[ 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', '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', 'Topic :: Software Development', 'Topic :: Software Development :: Libraries :: Python Modules', 'Framework :: Django', @@ -42,6 +42,8 @@ 'Framework :: Django :: 3.1', 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', + 'Framework :: Django :: 4.1', + 'Framework :: Django :: 4.2', 'Environment :: Web Environment', 'Intended Audience :: Developers', 'Operating System :: OS Independent', diff --git a/tox.ini b/tox.ini index 84eae00..eb80933 100644 --- a/tox.ini +++ b/tox.ini @@ -1,16 +1,15 @@ [tox] -envlist = py{35,36,37,38,39,310}-django{2p2,3p0,3p1,3p2,4p0},coverage-report +envlist = py{37,38,39,310,311}-django{2p2,3p0,3p1,3p2,4p0,4p1,4p2},coverage-report install_command = pip install {opts} {packages} skip_missing_interpreters = True [gh-actions] python = - 3.5: py35 - 3.6: py36 3.7: py37 3.8: py38 3.9: py39 3.10: py310 + 3.11: py311 [gh-actions:env] DJANGO = @@ -19,16 +18,17 @@ DJANGO = 3.1: django3p1 3.2: django3p2 4.0: django4p0 + 4.1: django4p1 + 4.2: django4p2 [testenv] usedevelop = True basepython = - py35: python3.5 - py36: python3.6 py37: python3.7 py38: python3.8 py39: python3.9 py310: python3.10 + py311: python3.11 deps = coverage django2p2: Django >=2.2, < 2.3 @@ -36,6 +36,8 @@ deps = django3p1: Django < 3.2 django3p2: Django < 3.3 django4p0: Django < 4.1 + django4p1: Django < 4.2 + django4p2: Django < 4.3 commands = python --version