diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3067f6a..fd0e7f6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,72 +8,51 @@ jobs: fail-fast: false matrix: include: - # Django 1.11 - - django-version: "1.11.0" - python-version: "3.5" - - django-version: "1.11.0" - python-version: "3.6" - - django-version: "1.11.0" - python-version: "3.7" - # Django 2.0 - - django-version: "2.0.0" - python-version: "3.5" - - django-version: "2.0.0" - python-version: "3.6" - - django-version: "2.0.0" - python-version: "3.7" - # Django 2.1 - - django-version: "2.1.0" - python-version: "3.5" - - django-version: "2.1.0" - python-version: "3.6" - - django-version: "2.1.0" - python-version: "3.7" - # Django 2.2 - - django-version: "2.2.0" - python-version: "3.5" - - django-version: "2.2.0" - python-version: "3.6" - - django-version: "2.2.0" - python-version: "3.7" - - django-version: "2.2.0" + # Django 4.2 + - django-version: "4.2" python-version: "3.8" - - django-version: "2.2.0" + - django-version: "4.2" python-version: "3.9" - # Django 3.0 - - django-version: "3.0.0" - python-version: "3.6" - - django-version: "3.0.0" - python-version: "3.7" - - django-version: "3.0.0" - python-version: "3.8" - - django-version: "3.0.0" - python-version: "3.9" - # Django 3.1 - - django-version: "3.1.0" - python-version: "3.6" - - django-version: "3.1.0" - python-version: "3.7" - - django-version: "3.1.0" - python-version: "3.8" - - django-version: "3.1.0" - python-version: "3.9" - # Django 3.2 - - django-version: "3.2.0" - python-version: "3.6" - - django-version: "3.2.0" - python-version: "3.7" - - django-version: "3.2.0" - python-version: "3.8" - - django-version: "3.2.0" - python-version: "3.9" - # Django 4.0 - - django-version: "4.0.0" - python-version: "3.8" - - django-version: "4.0.0" - python-version: "3.9" - - django-version: "4.0.0" + - django-version: "4.2" + python-version: "3.10" + - django-version: "4.2" + python-version: "3.11" + - django-version: "4.2" + python-version: "3.12" + # Django 5.0 + - django-version: "5.0" + python-version: "3.10" + - django-version: "5.0" + python-version: "3.11" + - django-version: "5.0" + python-version: "3.12" + # Django 5.1 + - django-version: "5.1" + python-version: "3.10" + - django-version: "5.1" + python-version: "3.11" + - django-version: "5.1" + python-version: "3.12" + - django-version: "5.1" + python-version: "3.13" + # Django 5.2 + - django-version: "5.2" python-version: "3.10" + - django-version: "5.2" + python-version: "3.11" + - django-version: "5.2" + python-version: "3.12" + - django-version: "5.2" + python-version: "3.13" + - django-version: "5.2" + python-version: "3.14" + # Django 6.0 + - django-version: "6.0" + python-version: "3.12" + - django-version: "6.0" + python-version: "3.13" + - django-version: "6.0" + python-version: "3.14" steps: - uses: actions/checkout@v3 diff --git a/CHANGES.rst b/CHANGES.rst index 0713556..b2f489e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,7 +1,10 @@ -2.0.1 (unreleased) +3.0.0 (unreleased) ------------------ -- Nothing changed yet. +- Dropped support for Python 3.5, 3.6, and 3.7. +- Dropped support for Django 1.11, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, and 4.0. +- Added support for Django 4.2, 5.0, 5.1, 5.2, and 6.0. +- Added support for Python 3.11, 3.12, 3.13, and 3.14. 2.0.0 (2022-08-11) diff --git a/betterforms/__init__.py b/betterforms/__init__.py index 107b59f..1069a0a 100644 --- a/betterforms/__init__.py +++ b/betterforms/__init__.py @@ -1 +1,3 @@ -__version__ = __import__('pkg_resources').get_distribution('django-betterforms').version +from importlib.metadata import version + +__version__ = version('django-betterforms') diff --git a/betterforms/tests.py b/betterforms/tests.py index 70c417f..0eb44b3 100644 --- a/betterforms/tests.py +++ b/betterforms/tests.py @@ -367,8 +367,8 @@ class TestForm(BetterForm): test = """
- - + {field_a} + {errors_a}
@@ -378,7 +378,7 @@ class TestForm(BetterForm):
- """ + """.format(field_a=form['a'], errors_a=form['a'].errors) self.assertHTMLEqual( render_to_string('betterforms/form_as_fieldsets.html', env), @@ -421,8 +421,8 @@ def test_include_tag_rendering(self):
- - + {field_a} + {errors_a}
@@ -435,7 +435,7 @@ def test_include_tag_rendering(self):
- """ + """.format(field_a=form['a'], errors_a=form['a'].errors) self.assertHTMLEqual( render_to_string('betterforms/form_as_fieldsets.html', env), @@ -516,9 +516,9 @@ def test_form_as_p(self): test = """

-

+ {errors_a} - + {field_a}

@@ -531,7 +531,7 @@ def test_form_as_p(self):

- """ + """.format(field_a=form['a'], errors_a=form['a'].errors) self.maxDiff=None self.assertHTMLEqual( diff --git a/setup.py b/setup.py index e9ed8cf..47b966c 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ def read(fname): author_email='programmers@fusionbox.com', packages=[package for package in find_packages() if package.startswith('betterforms')], - install_requires=['Django>=1.11'], + install_requires=['Django>=4.2'], zip_safe=False, include_package_data=True, classifiers=[ @@ -31,12 +31,13 @@ def read(fname): 'License :: OSI Approved :: BSD License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - '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', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'Topic :: Internet :: WWW/HTTP', ], ) diff --git a/tox.ini b/tox.ini index cd92134..040b03b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,28 +1,28 @@ [tox] envlist = - py{35,36,37}-dj{111,20,21} - py{35,36,37,38,39}-dj22 - py{36,37,38,39}-dj{30,31,32} - py{38,39,310}-dj40 + py{38,39,310,311,312}-dj42 + py{310,311,312}-dj50 + py{310,311,312,313}-dj51 + py{310,311,312,313,314}-dj52 + py{312,313,314}-dj60 + [testenv] python = - py35: python3.5 - py36: python3.6 - py37: python3.7 py38: python3.8 py39: python3.9 py310: python3.10 + py311: python3.11 + py312: python3.12 + py313: python3.13 + py314: python3.14 commands = make {posargs:test} deps = -r tests/requirements.txt - dj111: Django>=1.11,<1.12 - dj20: Django>=2.0,<2.1 - dj21: Django>=2.1,<2.2 - dj22: Django>=2.2,<2.3 - dj30: Django>=3.0,<3.1 - dj31: Django>=3.1,<3.2 - dj32: Django>=3.2,<3.3 - dj40: Django>=4.0,<4.1 + dj42: Django>=4.2,<4.3 + dj50: Django>=5.0,<5.1 + dj51: Django>=5.1,<5.2 + dj52: Django>=5.2,<5.3 + dj60: Django>=6.0,<6.1 whitelist_externals = make