From d0c8f89c942d1379724bdd37127076d13452f71d Mon Sep 17 00:00:00 2001 From: Thibaut Decombe Date: Sun, 13 Jul 2025 20:01:02 +0200 Subject: [PATCH 1/5] Refs #31223 -- Added __class_getitem__() to SetPasswordMixin. --- django/contrib/auth/forms.py | 3 +++ tests/auth_tests/test_forms.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index 2214e134d092..aff0cca342aa 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -134,6 +134,9 @@ def set_password_and_save(self, user, password_field_name="password1", commit=Tr user.save() return user + def __class_getitem__(cls, *args, **kwargs): + return cls + class SetUnusablePasswordMixin: """ diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py index be55c4369bc1..73065adddf40 100644 --- a/tests/auth_tests/test_forms.py +++ b/tests/auth_tests/test_forms.py @@ -350,6 +350,9 @@ def test_html_autocomplete_attributes(self): form.fields[field_name].widget.attrs["autocomplete"], autocomplete ) + def test_user_creation_form_class_getitem(self): + self.assertIs(BaseUserCreationForm["MyCustomUser"], BaseUserCreationForm) + class CustomUserCreationFormTest(TestDataMixin, TestCase): From 5d6c36d8349be277bbfab282a1b4aa98296d4842 Mon Sep 17 00:00:00 2001 From: Augusto Pontes <101043200+RankracerBR@users.noreply.github.com> Date: Tue, 14 Oct 2025 09:38:41 -0300 Subject: [PATCH 2/5] Fixed #36654 -- Corrected Model._do_update()'s docstring. --- django/db/models/base.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/django/db/models/base.py b/django/db/models/base.py index d1321d654088..fd51052d0199 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -1182,8 +1182,9 @@ def _do_update( returning_fields, ): """ - Try to update the model. Return True if the model was updated (if an - update query was done and a matching row was found in the DB). + Try to update the model. Return a list of updated fields if the model + was updated (if an update query was done and a matching row was + found in the DB). """ filtered = base_qs.filter(pk=pk_val) if not values: From 19101158070429c8d314926a67ec22a88220f316 Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Mon, 13 Oct 2025 14:30:33 -0400 Subject: [PATCH 3/5] Removed mention of setuptools in docs/internals/contributing/writing-code/unit-tests.txt. --- docs/internals/contributing/writing-code/unit-tests.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index b4bc429af5fe..974b4861d5e9 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -325,7 +325,6 @@ dependencies: * :pypi:`PyYAML` 6.0.2+ * :pypi:`pywatchman` * :pypi:`redis` 5.1.0+ -* :pypi:`setuptools` * :pypi:`pymemcache`, plus a `supported Python binding `_ * `gettext `_ From 42758f882dc74059c562ef8ae3da01fd06cf0e0d Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Mon, 13 Oct 2025 14:32:04 -0400 Subject: [PATCH 4/5] Removed setuptools from GitHub actions. Follow-up to 61c5c3173281b1e906a891aa6a6c6f9cdc9f2b8a. --- .github/workflows/postgis.yml | 2 +- .github/workflows/python_matrix.yml | 2 +- .github/workflows/schedule_tests.yml | 10 +++++----- .github/workflows/screenshots.yml | 2 +- .github/workflows/selenium.yml | 4 ++-- .github/workflows/tests.yml | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/postgis.yml b/.github/workflows/postgis.yml index 1df146cd3e50..7976fdc03d78 100644 --- a/.github/workflows/postgis.yml +++ b/.github/workflows/postgis.yml @@ -59,7 +59,7 @@ jobs: run: | PGPASSWORD=$POSTGRES_PASSWORD psql -U $POSTGRES_USER -d $POSTGRES_DB -h localhost -c "SELECT PostGIS_full_version();" - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e . - name: Create PostgreSQL settings file run: mv ./.github/workflows/data/test_postgis.py.tpl ./tests/test_postgis.py diff --git a/.github/workflows/python_matrix.yml b/.github/workflows/python_matrix.yml index 072bf1cdbc8c..bbdb4458b4b6 100644 --- a/.github/workflows/python_matrix.yml +++ b/.github/workflows/python_matrix.yml @@ -46,7 +46,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run tests run: python -Wall tests/runtests.py -v2 diff --git a/.github/workflows/schedule_tests.yml b/.github/workflows/schedule_tests.yml index c4d559ec95c6..6ac72e24bbe8 100644 --- a/.github/workflows/schedule_tests.yml +++ b/.github/workflows/schedule_tests.yml @@ -31,7 +31,7 @@ jobs: cache: 'pip' cache-dependency-path: 'tests/requirements/py3.txt' - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run tests run: python -Wall tests/runtests.py -v2 @@ -50,7 +50,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install . - name: Prepare site-packages run: | @@ -92,7 +92,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run Selenium tests working-directory: ./tests/ @@ -128,7 +128,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e . - name: Create PostgreSQL settings file run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py @@ -173,7 +173,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e . - name: Create PostgreSQL settings file run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml index c7012366303c..c29cfc9eedf5 100644 --- a/.github/workflows/screenshots.yml +++ b/.github/workflows/screenshots.yml @@ -28,7 +28,7 @@ jobs: cache: 'pip' cache-dependency-path: 'tests/requirements/py3.txt' - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run Selenium tests with screenshots diff --git a/.github/workflows/selenium.yml b/.github/workflows/selenium.yml index 9cb71c914335..c5e22d70c320 100644 --- a/.github/workflows/selenium.yml +++ b/.github/workflows/selenium.yml @@ -30,7 +30,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run Selenium tests working-directory: ./tests/ @@ -67,7 +67,7 @@ jobs: - name: Install libmemcached-dev for pylibmc run: sudo apt-get install libmemcached-dev - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e . - name: Create PostgreSQL settings file run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d293f4dd0a12..eb0966e7a278 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -35,7 +35,7 @@ jobs: cache: 'pip' cache-dependency-path: 'tests/requirements/py3.txt' - name: Install and upgrade packaging tools - run: python -m pip install --upgrade pip setuptools wheel + run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run tests run: python -Wall tests/runtests.py -v2 From cc9df52666b90e2e6fdebd2213493c1c396e804a Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Tue, 14 Oct 2025 08:46:14 -0400 Subject: [PATCH 5/5] Removed pre-release wheel-only advice in docs/internals/howto-release-django.txt. The practice since 2.2a1 (2019) has been to upload source distributions as well. --- docs/internals/howto-release-django.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index a76651934a17..4a8dd6483c72 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -604,8 +604,7 @@ Now you're ready to actually put the release out there. To do this: __ https://djangoci.com/job/confirm-release/ -#. Upload the release packages to PyPI (for pre-releases, only upload the wheel - file): +#. Upload the release packages to PyPI: .. code-block:: shell