Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 42 additions & 63 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 5 additions & 2 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
4 changes: 3 additions & 1 deletion betterforms/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
__version__ = __import__('pkg_resources').get_distribution('django-betterforms').version
from importlib.metadata import version

__version__ = version('django-betterforms')
18 changes: 9 additions & 9 deletions betterforms/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,8 @@ class TestForm(BetterForm):
test = """
<div class="required error a formField">
<label class="required" for="id_a">A</label>
<input id="id_a" name="a" required type="text" />
<ul class="errorlist"><li>this is an error message</li></ul>
{field_a}
{errors_a}
</div>
<div class="b formField">
<label for="id_b">B</label>
Expand All @@ -378,7 +378,7 @@ class TestForm(BetterForm):
<label class="required" for="id_c">C</label>
<input id="id_c" name="c" required type="text" />
</div>
"""
""".format(field_a=form['a'], errors_a=form['a'].errors)

self.assertHTMLEqual(
render_to_string('betterforms/form_as_fieldsets.html', env),
Expand Down Expand Up @@ -421,8 +421,8 @@ def test_include_tag_rendering(self):
<fieldset class="formFieldset first">
<div class="required error a formField">
<label class="required" for="id_a">A</label>
<input id="id_a" name="a" required type="text" />
<ul class="errorlist"><li>this is an error message</li></ul>
{field_a}
{errors_a}
</div>
<div class="required b formField">
<label class="required" for="id_b">B</label>
Expand All @@ -435,7 +435,7 @@ def test_include_tag_rendering(self):
<input id="id_c" name="c" required type="text" />
</div>
</fieldset>
"""
""".format(field_a=form['a'], errors_a=form['a'].errors)

self.assertHTMLEqual(
render_to_string('betterforms/form_as_fieldsets.html', env),
Expand Down Expand Up @@ -516,9 +516,9 @@ def test_form_as_p(self):
test = """
<fieldset class="formFieldset first">
<p class="required error">
<ul class="errorlist"><li>this is an error</li></ul>
{errors_a}
<label class="required" for="id_a">A</label>
<input id="id_a" name="a" required type="text" />
{field_a}
</p>
<p class="required">
<label class="required" for="id_b">B</label>
Expand All @@ -531,7 +531,7 @@ def test_form_as_p(self):
<input id="id_c" name="c" required type="text" />
</p>
</fieldset>
"""
""".format(field_a=form['a'], errors_a=form['a'].errors)
self.maxDiff=None

self.assertHTMLEqual(
Expand Down
9 changes: 5 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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=[
Expand All @@ -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',
],
)
30 changes: 15 additions & 15 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -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