Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-django-formtools for openSUSE:Factory checked in at 2023-05-21 19:09:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-django-formtools (Old) and /work/SRC/openSUSE:Factory/.python-django-formtools.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-formtools" Sun May 21 19:09:01 2023 rev:10 rq:1088118 version:2.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-django-formtools/python-django-formtools.changes 2023-01-07 17:22:59.303327885 +0100 +++ /work/SRC/openSUSE:Factory/.python-django-formtools.new.1533/python-django-formtools.changes 2023-05-21 19:09:46.490800403 +0200 @@ -1,0 +2,11 @@ +Sun May 21 09:13:47 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 2.4.1: + * Fixed a regression causing a recursion error when getting + ``get_form_list()`` from a form condition (#220). + * Removed Python 3.6 support and added Python 3.11 to test + matrix. + * Dropped testing for Django < 3.2 and confirmed support for + Django 4.2. + +------------------------------------------------------------------- Old: ---- django-formtools-2.4.tar.gz New: ---- django-formtools-2.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-django-formtools.spec ++++++ --- /var/tmp/diff_new_pack.G6viB0/_old 2023-05-21 19:09:47.662807093 +0200 +++ /var/tmp/diff_new_pack.G6viB0/_new 2023-05-21 19:09:47.702807322 +0200 @@ -16,11 +16,9 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} -%define skip_python2 1 -%define skip_python36 1 +%{?sle15_python_module_pythons} Name: python-django-formtools -Version: 2.4 +Version: 2.4.1 Release: 0 Summary: A set of high-level abstractions for Django forms License: BSD-3-Clause ++++++ django-formtools-2.4.tar.gz -> django-formtools-2.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/.editorconfig new/django-formtools-2.4.1/.editorconfig --- old/django-formtools-2.4/.editorconfig 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/.editorconfig 2023-05-13 14:49:41.000000000 +0200 @@ -1,4 +1,4 @@ -# http://editorconfig.org +# https://editorconfig.org root = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/.github/workflows/release.yml new/django-formtools-2.4.1/.github/workflows/release.yml --- old/django-formtools-2.4/.github/workflows/release.yml 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/.github/workflows/release.yml 2023-05-13 14:49:41.000000000 +0200 @@ -11,12 +11,12 @@ 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@v3 with: python-version: 3.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/.github/workflows/test.yml new/django-formtools-2.4.1/.github/workflows/test.yml --- old/django-formtools-2.4/.github/workflows/test.yml 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/.github/workflows/test.yml 2023-05-13 14:49:41.000000000 +0200 @@ -9,7 +9,7 @@ fail-fast: false max-parallel: 5 matrix: - python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/PKG-INFO new/django-formtools-2.4.1/PKG-INFO --- old/django-formtools-2.4/PKG-INFO 2022-09-28 20:33:18.600195200 +0200 +++ new/django-formtools-2.4.1/PKG-INFO 2023-05-13 14:49:58.502792800 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: django-formtools -Version: 2.4 +Version: 2.4.1 Summary: A set of high-level abstractions for Django forms Home-page: https://django-formtools.readthedocs.io/en/latest/ Author: Django Software Foundation @@ -10,23 +10,23 @@ Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Web Environment Classifier: Framework :: Django -Classifier: Framework :: Django :: 2.2 Classifier: Framework :: Django :: 3.2 Classifier: Framework :: Django :: 4.0 Classifier: Framework :: Django :: 4.1 +Classifier: Framework :: Django :: 4.2 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Internet :: WWW/HTTP -Requires-Python: >=3.6 +Requires-Python: >=3.7 Description-Content-Type: text/x-rst License-File: LICENSE @@ -97,12 +97,12 @@ $ tox -l ... - py38-django-AB - py38-django-master + py310-djangoAB + py310-djangomain You can run each environment with the ``-e`` option:: - $ tox -e py38-django-AB # runs the tests only on Python 3.5 and Django A.B.x + $ tox -e py310-djangoAB # runs the tests only on Python 3.10 and Django A.B.x Optionally you can also specify a country whose tests you want to run:: @@ -110,6 +110,6 @@ And combine both options:: - $ COUNTRY=us tox -e py38-django-AB + $ COUNTRY=us tox -e py310-djangoAB __ https://tox.readthedocs.io/en/latest/install.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/README.rst new/django-formtools-2.4.1/README.rst --- old/django-formtools-2.4/README.rst 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/README.rst 2023-05-13 14:49:41.000000000 +0200 @@ -65,12 +65,12 @@ $ tox -l ... - py38-django-AB - py38-django-master + py310-djangoAB + py310-djangomain You can run each environment with the ``-e`` option:: - $ tox -e py38-django-AB # runs the tests only on Python 3.5 and Django A.B.x + $ tox -e py310-djangoAB # runs the tests only on Python 3.10 and Django A.B.x Optionally you can also specify a country whose tests you want to run:: @@ -78,6 +78,6 @@ And combine both options:: - $ COUNTRY=us tox -e py38-django-AB + $ COUNTRY=us tox -e py310-djangoAB __ https://tox.readthedocs.io/en/latest/install.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/django_formtools.egg-info/PKG-INFO new/django-formtools-2.4.1/django_formtools.egg-info/PKG-INFO --- old/django-formtools-2.4/django_formtools.egg-info/PKG-INFO 2022-09-28 20:33:18.000000000 +0200 +++ new/django-formtools-2.4.1/django_formtools.egg-info/PKG-INFO 2023-05-13 14:49:58.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: django-formtools -Version: 2.4 +Version: 2.4.1 Summary: A set of high-level abstractions for Django forms Home-page: https://django-formtools.readthedocs.io/en/latest/ Author: Django Software Foundation @@ -10,23 +10,23 @@ Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Web Environment Classifier: Framework :: Django -Classifier: Framework :: Django :: 2.2 Classifier: Framework :: Django :: 3.2 Classifier: Framework :: Django :: 4.0 Classifier: Framework :: Django :: 4.1 +Classifier: Framework :: Django :: 4.2 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Internet :: WWW/HTTP -Requires-Python: >=3.6 +Requires-Python: >=3.7 Description-Content-Type: text/x-rst License-File: LICENSE @@ -97,12 +97,12 @@ $ tox -l ... - py38-django-AB - py38-django-master + py310-djangoAB + py310-djangomain You can run each environment with the ``-e`` option:: - $ tox -e py38-django-AB # runs the tests only on Python 3.5 and Django A.B.x + $ tox -e py310-djangoAB # runs the tests only on Python 3.10 and Django A.B.x Optionally you can also specify a country whose tests you want to run:: @@ -110,6 +110,6 @@ And combine both options:: - $ COUNTRY=us tox -e py38-django-AB + $ COUNTRY=us tox -e py310-djangoAB __ https://tox.readthedocs.io/en/latest/install.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/django_formtools.egg-info/requires.txt new/django-formtools-2.4.1/django_formtools.egg-info/requires.txt --- old/django-formtools-2.4/django_formtools.egg-info/requires.txt 2022-09-28 20:33:18.000000000 +0200 +++ new/django-formtools-2.4.1/django_formtools.egg-info/requires.txt 2023-05-13 14:49:58.000000000 +0200 @@ -1 +1 @@ -Django>=2.2 +Django>=3.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/docs/Makefile new/django-formtools-2.4.1/docs/Makefile --- old/django-formtools-2.4/docs/Makefile 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/docs/Makefile 2023-05-13 14:49:41.000000000 +0200 @@ -9,7 +9,7 @@ # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from https://sphinx-doc.org/) endif # Internal variables. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/docs/changelog.rst new/django-formtools-2.4.1/docs/changelog.rst --- old/django-formtools-2.4/docs/changelog.rst 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/docs/changelog.rst 2023-05-13 14:49:41.000000000 +0200 @@ -3,6 +3,16 @@ This page details the changes in the various ``django-formtools`` releases. +2.4.1 (2023-05-13) +------------------ + +- Fixed a regression causing a recursion error when getting ``get_form_list()`` + from a form condition (#220). + +- Removed Python 3.6 support and added Python 3.11 to test matrix. + +- Dropped testing for Django < 3.2 and confirmed support for Django 4.2. + 2.4 (2022-09-28) ---------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/docs/wizard.rst new/django-formtools-2.4.1/docs/wizard.rst --- old/django-formtools-2.4/docs/wizard.rst 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/docs/wizard.rst 2023-05-13 14:49:41.000000000 +0200 @@ -226,10 +226,10 @@ {% endif %} </table> {% if wizard.steps.prev %} - <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% trans "first step" %}</button> - <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}</button> + <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% translate "first step" %}</button> + <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% translate "prev step" %}</button> {% endif %} - <input type="submit" value="{% trans "submit" %}"/> + <input type="submit" value="{% translate "submit" %}"/> </form> {% endblock %} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/formtools/templates/formtools/form.html new/django-formtools-2.4.1/formtools/templates/formtools/form.html --- old/django-formtools-2.4/formtools/templates/formtools/form.html 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/formtools/templates/formtools/form.html 2023-05-13 14:49:41.000000000 +0200 @@ -3,14 +3,15 @@ {% block content %} -{% if form.errors %}<h1>{% trans "Please correct the following errors" %}</h1>{% else %}<h1>{% trans "Submit" %}</h1>{% endif %} +{% if form.errors %}<h1>{% translate "Please correct the following errors" %}</h1> +{% else %}<h1>{% translate "Submit" %}</h1>{% endif %} <form action="" method="post">{% csrf_token %} <table> {{ form.as_table }} </table> <input type="hidden" name="{{ stage_field }}" value="1" /> -<p><input type="submit" value="{% trans "Preview" %}" /></p> +<p><input type="submit" value="{% translate "Preview" %}" /></p> </form> {% endblock %} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/formtools/templates/formtools/preview.html new/django-formtools-2.4.1/formtools/templates/formtools/preview.html --- old/django-formtools-2.4/formtools/templates/formtools/preview.html 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/formtools/templates/formtools/preview.html 2023-05-13 14:49:41.000000000 +0200 @@ -3,7 +3,7 @@ {% block content %} -<h1>{% trans "Preview your submission" %}</h1> +<h1>{% translate "Preview your submission" %}</h1> <table> {% for field in form %} @@ -14,24 +14,24 @@ {% endfor %} </table> -<p>{% blocktrans %}Security hash: {{ hash_value }}{% endblocktrans %}</p> +<p>{% blocktranslate %}Security hash: {{ hash_value }}{% endblocktranslate %}</p> <form action="" method="post">{% csrf_token %} {% for field in form %}{{ field.as_hidden }} {% endfor %} <input type="hidden" name="{{ stage_field }}" value="2" /> <input type="hidden" name="{{ hash_field }}" value="{{ hash_value }}" /> -<p><input type="submit" value="{% trans "Submit" %}" /></p> +<p><input type="submit" value="{% translate "Submit" %}" /></p> </form> -<h1>{% trans "Or edit it again" %}</h1> +<h1>{% translate "Or edit it again" %}</h1> <form action="" method="post">{% csrf_token %} <table> {{ form.as_table }} </table> <input type="hidden" name="{{ stage_field }}" value="1" /> -<p><input type="submit" value="{% trans "Preview" %}" /></p> +<p><input type="submit" value="{% translate "Preview" %}" /></p> </form> {% endblock %} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/formtools/templates/formtools/wizard/wizard_form.html new/django-formtools-2.4.1/formtools/templates/formtools/wizard/wizard_form.html --- old/django-formtools-2.4/formtools/templates/formtools/wizard/wizard_form.html 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/formtools/templates/formtools/wizard/wizard_form.html 2023-05-13 14:49:41.000000000 +0200 @@ -13,8 +13,8 @@ {% endif %} {% if wizard.steps.prev %} -<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% trans "first step" %}</button> -<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}</button> +<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% translate "first step" %}</button> +<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% translate "prev step" %}</button> {% endif %} -<input type="submit" name="submit" value="{% trans "submit" %}" /> +<input type="submit" name="submit" value="{% translate "submit" %}" /> </form> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/formtools/wizard/views.py new/django-formtools-2.4.1/formtools/wizard/views.py --- old/django-formtools-2.4/formtools/wizard/views.py 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/formtools/wizard/views.py 2023-05-13 14:49:41.000000000 +0200 @@ -213,6 +213,11 @@ could use data from other (maybe previous forms). """ form_list = OrderedDict() + if getattr(self, '_check_cond_started', False): + # Guard against infinite recursion, in the case a get_form_list is + # called in the context of a condition() call. + return self.form_list + self._check_cond_started = True for form_key, form_class in self.form_list.items(): # try to fetch the value from condition list, by default, the form # gets passed to the new list. @@ -222,6 +227,7 @@ condition = condition(self) if condition: form_list[form_key] = form_class + del self._check_cond_started return form_list def dispatch(self, request, *args, **kwargs): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/setup.py new/django-formtools-2.4.1/setup.py --- old/django-formtools-2.4/setup.py 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/setup.py 2023-05-13 14:49:41.000000000 +0200 @@ -24,27 +24,27 @@ author_email="foundat...@djangoproject.com", packages=find_packages(exclude=["tests", "tests.*"]), include_package_data=True, - install_requires=["Django>=2.2"], - python_requires=">=3.6", + install_requires=["Django>=3.2"], + python_requires=">=3.7", classifiers=[ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", - "Framework :: Django :: 2.2", "Framework :: Django :: 3.2", "Framework :: Django :: 4.0", "Framework :: Django :: 4.1", + "Framework :: Django :: 4.2", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "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 :: Internet :: WWW/HTTP", ], zip_safe=False, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/tests/requirements.txt new/django-formtools-2.4.1/tests/requirements.txt --- old/django-formtools-2.4/tests/requirements.txt 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/tests/requirements.txt 2023-05-13 14:49:41.000000000 +0200 @@ -1,3 +1,3 @@ coverage==4.5.4 flake8 -isort +isort>=5.11.1, <6.0 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/tests/wizard/test_forms.py new/django-formtools-2.4.1/tests/wizard/test_forms.py --- old/django-formtools-2.4/tests/wizard/test_forms.py 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/tests/wizard/test_forms.py 2023-05-13 14:49:41.000000000 +0200 @@ -1,3 +1,4 @@ +import sys from importlib import import_module from django import forms, http @@ -158,6 +159,26 @@ response, instance = testform(request) self.assertEqual(instance.get_next_step(), 'step2') + def test_form_condition_avoid_recursion(self): + def subsequent_step_check(wizard): + data = wizard.get_cleaned_data_for_step('step3') or {} + return data.get('foo') + + testform = TestWizard.as_view( + [('start', Step1), ('step2', Step2), ('step3', Step3)], + condition_dict={'step3': subsequent_step_check} + ) + request = get_request() + old_limit = sys.getrecursionlimit() + sys.setrecursionlimit(80) + try: + response, instance = testform(request) + self.assertEqual(instance.get_next_step(), 'step2') + except RecursionError: + self.fail("RecursionError happened during wizard test.") + finally: + sys.setrecursionlimit(old_limit) + def test_form_condition_unstable(self): request = get_request() testform = TestWizard.as_view( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django-formtools-2.4/tox.ini new/django-formtools-2.4.1/tox.ini --- old/django-formtools-2.4/tox.ini 2022-09-28 20:33:04.000000000 +0200 +++ new/django-formtools-2.4.1/tox.ini 2023-05-13 14:49:41.000000000 +0200 @@ -1,9 +1,9 @@ [tox] args_are_paths = false envlist = - py{36,37,38,39}-django22 - py{36,37,38,39,310}-django32 - py{38,39,310}-django{40,41,main} + py{37,38,39,310,311}-django32 + py{38,39,310,311}-django{40,41,42} + py{310,311}-djangomain [testenv] usedevelop = true @@ -11,21 +11,21 @@ commands = make test pip_pre = true deps = - django22: Django>=2.2,<3.0 django32: Django>=3.2,<4.0 django40: Django>=4.0,<4.1 django41: Django>=4.1,<4.2 + django42: Django>=4.2,<5.0 djangomain: https://github.com/django/django/archive/main.tar.gz -r{toxinidir}/tests/requirements.txt ignore_outcome = - djmain: True + djangomain: True ignore_errors = - djmain: True + djangomain: True [gh-actions] python = - 3.6: py36 3.7: py37 3.8: py38 3.9: py39 3.10: py310 + 3.11: py311