浏览代码

Removed versionadded/changed annotations for 4.2.

This also removes remaining versionadded/changed annotations for older
versions.
Mariusz Felisiak 1 年之前
父节点
当前提交
295467c04a
共有 55 个文件被更改,包括 0 次插入346 次删除
  1. 0 2
      docs/howto/custom-file-storage.txt
  2. 0 4
      docs/howto/error-reporting.txt
  3. 0 4
      docs/howto/static-files/deployment.txt
  4. 0 5
      docs/internals/contributing/writing-documentation.txt
  5. 0 4
      docs/ref/contrib/admin/index.txt
  6. 0 4
      docs/ref/contrib/auth.txt
  7. 0 6
      docs/ref/contrib/gis/functions.txt
  8. 0 4
      docs/ref/contrib/gis/gdal.txt
  9. 0 4
      docs/ref/contrib/gis/geoip2.txt
  10. 0 2
      docs/ref/contrib/gis/geoquerysets.txt
  11. 0 4
      docs/ref/contrib/gis/install/postgis.txt
  12. 0 5
      docs/ref/contrib/gis/serializers.txt
  13. 0 5
      docs/ref/contrib/postgres/fields.txt
  14. 0 2
      docs/ref/contrib/postgres/lookups.txt
  15. 0 4
      docs/ref/contrib/postgres/search.txt
  16. 0 2
      docs/ref/contrib/sitemaps.txt
  17. 0 7
      docs/ref/contrib/staticfiles.txt
  18. 0 12
      docs/ref/databases.txt
  19. 0 7
      docs/ref/django-admin.txt
  20. 0 6
      docs/ref/exceptions.txt
  21. 0 4
      docs/ref/files/storage.txt
  22. 0 4
      docs/ref/forms/fields.txt
  23. 0 5
      docs/ref/logging.txt
  24. 0 4
      docs/ref/middleware.txt
  25. 0 2
      docs/ref/migration-operations.txt
  26. 0 5
      docs/ref/models/database-functions.txt
  27. 0 10
      docs/ref/models/expressions.txt
  28. 0 11
      docs/ref/models/fields.txt
  29. 0 12
      docs/ref/models/instances.txt
  30. 0 5
      docs/ref/models/lookups.txt
  31. 0 2
      docs/ref/models/options.txt
  32. 0 5
      docs/ref/models/querysets.txt
  33. 0 16
      docs/ref/models/relations.txt
  34. 0 6
      docs/ref/request-response.txt
  35. 0 2
      docs/ref/schema-editor.txt
  36. 0 4
      docs/ref/settings.txt
  37. 0 10
      docs/ref/templates/builtins.txt
  38. 0 5
      docs/ref/urls.txt
  39. 0 6
      docs/ref/utils.txt
  40. 0 12
      docs/ref/validators.txt
  41. 0 4
      docs/topics/async.txt
  42. 0 7
      docs/topics/auth/customizing.txt
  43. 0 9
      docs/topics/auth/default.txt
  44. 0 9
      docs/topics/auth/passwords.txt
  45. 0 7
      docs/topics/db/queries.txt
  46. 0 8
      docs/topics/db/transactions.txt
  47. 0 4
      docs/topics/files.txt
  48. 0 4
      docs/topics/forms/modelforms.txt
  49. 0 8
      docs/topics/http/file-uploads.txt
  50. 0 4
      docs/topics/http/middleware.txt
  51. 0 5
      docs/topics/i18n/translation.txt
  52. 0 4
      docs/topics/migrations.txt
  53. 0 8
      docs/topics/testing/advanced.txt
  54. 0 2
      docs/topics/testing/overview.txt
  55. 0 40
      docs/topics/testing/tools.txt

+ 0 - 2
docs/howto/custom-file-storage.txt

@@ -125,8 +125,6 @@ obtain an alternative name.
 Use your custom storage engine
 Use your custom storage engine
 ==============================
 ==============================
 
 
-.. versionadded:: 4.2
-
 The first step to using your custom storage with Django is to tell Django about
 The first step to using your custom storage with Django is to tell Django about
 the file storage backend you'll be using. This is done using the
 the file storage backend you'll be using. This is done using the
 :setting:`STORAGES` setting. This setting maps storage aliases, which are a way
 :setting:`STORAGES` setting. This setting maps storage aliases, which are a way

+ 0 - 4
docs/howto/error-reporting.txt

@@ -306,10 +306,6 @@ following attributes and methods:
 
 
             re.compile(r"API|TOKEN|KEY|SECRET|PASS|SIGNATURE|HTTP_COOKIE", flags=re.IGNORECASE)
             re.compile(r"API|TOKEN|KEY|SECRET|PASS|SIGNATURE|HTTP_COOKIE", flags=re.IGNORECASE)
 
 
-        .. versionchanged:: 4.2
-
-            ``HTTP_COOKIE`` was added.
-
     .. method:: is_active(request)
     .. method:: is_active(request)
 
 
         Returns ``True`` to activate the filtering in
         Returns ``True`` to activate the filtering in

+ 0 - 4
docs/howto/static-files/deployment.txt

@@ -106,10 +106,6 @@ provide storage backends for many common file storage APIs. A good starting
 point is the `overview at djangopackages.org
 point is the `overview at djangopackages.org
 <https://djangopackages.org/grids/g/storage-backends/>`_.
 <https://djangopackages.org/grids/g/storage-backends/>`_.
 
 
-.. versionchanged:: 4.2
-
-    The :setting:`STORAGES` setting was added.
-
 Learn more
 Learn more
 ==========
 ==========
 
 

+ 0 - 5
docs/internals/contributing/writing-documentation.txt

@@ -262,11 +262,6 @@ documentation:
   also need to define a reference to the documentation for that environment
   also need to define a reference to the documentation for that environment
   variable using :rst:dir:`.. envvar:: <envvar>`.
   variable using :rst:dir:`.. envvar:: <envvar>`.
 
 
-.. versionchanged:: 4.2
-
-    All Python code blocks in the Django documentation were reformatted with
-    :pypi:`blacken-docs`.
-
 Django-specific markup
 Django-specific markup
 ======================
 ======================
 
 

+ 0 - 4
docs/ref/contrib/admin/index.txt

@@ -2142,10 +2142,6 @@ forms or widgets depending on ``django.jQuery`` must specify
 ``js=['admin/js/jquery.init.js', …]`` when :ref:`declaring form media assets
 ``js=['admin/js/jquery.init.js', …]`` when :ref:`declaring form media assets
 <assets-as-a-static-definition>`.
 <assets-as-a-static-definition>`.
 
 
-.. versionchanged:: 4.2
-
-    jQuery was upgraded from 3.6.0 to 3.6.4.
-
 .. versionchanged:: 5.0
 .. versionchanged:: 5.0
 
 
     jQuery was upgraded from 3.6.4 to 3.7.1.
     jQuery was upgraded from 3.6.4 to 3.7.1.

+ 0 - 4
docs/ref/contrib/auth.txt

@@ -716,10 +716,6 @@ Utility functions
     backend's ``get_user()`` method, or if the session auth hash doesn't
     backend's ``get_user()`` method, or if the session auth hash doesn't
     validate.
     validate.
 
 
-    .. versionchanged:: 4.1.8
-
-        Fallback verification with :setting:`SECRET_KEY_FALLBACKS` was added.
-
     .. versionchanged:: 5.0
     .. versionchanged:: 5.0
 
 
         ``aget_user()`` function was added.
         ``aget_user()`` function was added.

+ 0 - 6
docs/ref/contrib/gis/functions.txt

@@ -354,8 +354,6 @@ are returned unchanged.
 ``FromWKB``
 ``FromWKB``
 ===========
 ===========
 
 
-.. versionadded:: 4.2
-
 .. class:: FromWKB(expression, **extra)
 .. class:: FromWKB(expression, **extra)
 
 
 *Availability*: MariaDB, `MySQL
 *Availability*: MariaDB, `MySQL
@@ -367,8 +365,6 @@ Creates geometry from `Well-known binary (WKB)`_ representation.
 ``FromWKT``
 ``FromWKT``
 ===========
 ===========
 
 
-.. versionadded:: 4.2
-
 .. class:: FromWKT(expression, **extra)
 .. class:: FromWKT(expression, **extra)
 
 
 *Availability*: MariaDB, `MySQL
 *Availability*: MariaDB, `MySQL
@@ -421,8 +417,6 @@ intersection between them.
 ``IsEmpty``
 ``IsEmpty``
 ===========
 ===========
 
 
-.. versionadded:: 4.2
-
 .. class:: IsEmpty(expr)
 .. class:: IsEmpty(expr)
 
 
 *Availability*: `PostGIS <https://postgis.net/docs/ST_IsEmpty.html>`__
 *Availability*: `PostGIS <https://postgis.net/docs/ST_IsEmpty.html>`__

+ 0 - 4
docs/ref/contrib/gis/gdal.txt

@@ -1282,10 +1282,6 @@ blue.
         >>> rst.name  # Stored in a random path in the vsimem filesystem.
         >>> rst.name  # Stored in a random path in the vsimem filesystem.
         '/vsimem/da300bdb-129d-49a8-b336-e410a9428dad'
         '/vsimem/da300bdb-129d-49a8-b336-e410a9428dad'
 
 
-    .. versionchanged:: 4.2
-
-        Support for :class:`pathlib.Path` ``ds_input`` was added.
-
     .. attribute:: name
     .. attribute:: name
 
 
         The name of the source which is equivalent to the input file path or the name
         The name of the source which is equivalent to the input file path or the name

+ 0 - 4
docs/ref/contrib/gis/geoip2.txt

@@ -23,10 +23,6 @@ __ https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
 __ https://db-ip.com/db/lite.php
 __ https://db-ip.com/db/lite.php
 __ https://github.com/maxmind/libmaxminddb/
 __ https://github.com/maxmind/libmaxminddb/
 
 
-.. versionchanged:: 4.2
-
-    Support for ``.mmdb`` files downloaded from DB-IP was added.
-
 Example
 Example
 =======
 =======
 
 

+ 0 - 2
docs/ref/contrib/gis/geoquerysets.txt

@@ -351,8 +351,6 @@ SpatiaLite  ``Intersects(poly, geom)``
 ``isempty``
 ``isempty``
 -----------
 -----------
 
 
-.. versionadded:: 4.2
-
 *Availability*: `PostGIS <https://postgis.net/docs/ST_IsEmpty.html>`__
 *Availability*: `PostGIS <https://postgis.net/docs/ST_IsEmpty.html>`__
 
 
 Tests if the geometry is empty.
 Tests if the geometry is empty.

+ 0 - 4
docs/ref/contrib/gis/install/postgis.txt

@@ -22,10 +22,6 @@ platform-specific instructions if you are on :ref:`macos` or :ref:`windows`.
 .. _PostGIS requirements: https://postgis.net/docs/postgis_installation.html#install_requirements
 .. _PostGIS requirements: https://postgis.net/docs/postgis_installation.html#install_requirements
 .. _build from source: https://postgis.net/docs/postgis_installation.html#install_short_version
 .. _build from source: https://postgis.net/docs/postgis_installation.html#install_short_version
 
 
-.. versionchanged:: 4.2
-
-    Support for ``psycopg`` 3.1.8+ was added.
-
 Post-installation
 Post-installation
 =================
 =================
 
 

+ 0 - 5
docs/ref/contrib/gis/serializers.txt

@@ -60,8 +60,3 @@ Would output::
 When the ``fields`` parameter is not specified, the ``geojson`` serializer adds
 When the ``fields`` parameter is not specified, the ``geojson`` serializer adds
 a ``pk`` key to the ``properties`` dictionary with the primary key of the
 a ``pk`` key to the ``properties`` dictionary with the primary key of the
 object as the value.
 object as the value.
-
-.. versionchanged:: 4.2
-
-    The ``id`` key for serialized features was added. Also, the ``id_field``
-    option was added to the ``geojson`` serializer.

+ 0 - 5
docs/ref/contrib/postgres/fields.txt

@@ -196,11 +196,6 @@ the SQL operator ``&&``. For example:
     >>> Post.objects.filter(tags__overlap=Post.objects.values_list("tags"))
     >>> Post.objects.filter(tags__overlap=Post.objects.values_list("tags"))
     <QuerySet [<Post: First post>, <Post: Second post>, <Post: Third post>]>
     <QuerySet [<Post: First post>, <Post: Second post>, <Post: Third post>]>
 
 
-.. versionchanged:: 4.2
-
-    Support for ``QuerySet.values()`` and ``values_list()`` as a right-hand
-    side was added.
-
 .. fieldlookup:: arrayfield.len
 .. fieldlookup:: arrayfield.len
 
 
 ``len``
 ``len``

+ 0 - 2
docs/ref/contrib/postgres/lookups.txt

@@ -61,8 +61,6 @@ The ``trigram_word_similar`` lookup can be used on
 ``trigram_strict_word_similar``
 ``trigram_strict_word_similar``
 -------------------------------
 -------------------------------
 
 
-.. versionadded:: 4.2
-
 Similar to :lookup:`trigram_word_similar`, except that it forces extent
 Similar to :lookup:`trigram_word_similar`, except that it forces extent
 boundaries to match word boundaries.
 boundaries to match word boundaries.
 
 

+ 0 - 4
docs/ref/contrib/postgres/search.txt

@@ -378,8 +378,6 @@ Usage example:
 
 
 .. class:: TrigramStrictWordSimilarity(string, expression, **extra)
 .. class:: TrigramStrictWordSimilarity(string, expression, **extra)
 
 
-.. versionadded:: 4.2
-
 Accepts a string or expression, and a field name or expression. Returns the
 Accepts a string or expression, and a field name or expression. Returns the
 trigram strict word similarity between the two arguments. Similar to
 trigram strict word similarity between the two arguments. Similar to
 :class:`TrigramWordSimilarity() <TrigramWordSimilarity>`, except that it forces
 :class:`TrigramWordSimilarity() <TrigramWordSimilarity>`, except that it forces
@@ -436,7 +434,5 @@ Usage example:
 
 
 .. class:: TrigramStrictWordDistance(string, expression, **extra)
 .. class:: TrigramStrictWordDistance(string, expression, **extra)
 
 
-.. versionadded:: 4.2
-
 Accepts a string or expression, and a field name or expression. Returns the
 Accepts a string or expression, and a field name or expression. Returns the
 trigram strict word distance between the two arguments.
 trigram strict word distance between the two arguments.

+ 0 - 2
docs/ref/contrib/sitemaps.txt

@@ -316,8 +316,6 @@ Note:
 
 
     .. method:: Sitemap.get_languages_for_item(item)
     .. method:: Sitemap.get_languages_for_item(item)
 
 
-        .. versionadded:: 4.2
-
         **Optional.** A method that returns the sequence of language codes for
         **Optional.** A method that returns the sequence of language codes for
         which the item is displayed. By default
         which the item is displayed. By default
         :meth:`~Sitemap.get_languages_for_item` returns
         :meth:`~Sitemap.get_languages_for_item` returns

+ 0 - 7
docs/ref/contrib/staticfiles.txt

@@ -345,15 +345,8 @@ argument. For example::
     commented out. This :ticket:`may crash on the nonexistent paths <21080>`.
     commented out. This :ticket:`may crash on the nonexistent paths <21080>`.
     You should check and eventually strip comments.
     You should check and eventually strip comments.
 
 
-.. versionchanged:: 4.2
-
-    Experimental optional support for finding paths to JavaScript modules in
-    ``import`` and ``export`` statements was added.
-
 .. attribute:: storage.ManifestStaticFilesStorage.manifest_hash
 .. attribute:: storage.ManifestStaticFilesStorage.manifest_hash
 
 
-.. versionadded:: 4.2
-
 This attribute provides a single hash that changes whenever a file in the
 This attribute provides a single hash that changes whenever a file in the
 manifest changes. This can be useful to communicate to SPAs that the assets on
 manifest changes. This can be useful to communicate to SPAs that the assets on
 the server have changed (due to a new deployment).
 the server have changed (due to a new deployment).

+ 0 - 12
docs/ref/databases.txt

@@ -122,10 +122,6 @@ Django supports PostgreSQL 12 and higher. `psycopg`_ 3.1.8+ or `psycopg2`_
     Support for ``psycopg2`` is likely to be deprecated and removed at some
     Support for ``psycopg2`` is likely to be deprecated and removed at some
     point in the future.
     point in the future.
 
 
-.. versionchanged:: 4.2
-
-    Support for ``psycopg`` 3.1.8+ was added.
-
 .. _postgresql-connection-settings:
 .. _postgresql-connection-settings:
 
 
 PostgreSQL connection settings
 PostgreSQL connection settings
@@ -223,17 +219,11 @@ configuration in :setting:`DATABASES`::
 
 
 .. _isolation level: https://www.postgresql.org/docs/current/transaction-iso.html
 .. _isolation level: https://www.postgresql.org/docs/current/transaction-iso.html
 
 
-.. versionchanged:: 4.2
-
-    ``IsolationLevel`` was added.
-
 .. _database-role:
 .. _database-role:
 
 
 Role
 Role
 ----
 ----
 
 
-.. versionadded:: 4.2
-
 If you need to use a different role for database connections than the role use
 If you need to use a different role for database connections than the role use
 to establish the connection, set it in the :setting:`OPTIONS` part of your
 to establish the connection, set it in the :setting:`OPTIONS` part of your
 database configuration in :setting:`DATABASES`::
 database configuration in :setting:`DATABASES`::
@@ -253,8 +243,6 @@ database configuration in :setting:`DATABASES`::
 Server-side parameters binding
 Server-side parameters binding
 ------------------------------
 ------------------------------
 
 
-.. versionadded:: 4.2
-
 With `psycopg`_ 3.1.8+, Django defaults to the :ref:`client-side binding
 With `psycopg`_ 3.1.8+, Django defaults to the :ref:`client-side binding
 cursors <psycopg:client-side-binding-cursors>`. If you want to use the
 cursors <psycopg:client-side-binding-cursors>`. If you want to use the
 :ref:`server-side binding <psycopg:server-side-binding>` set it in the
 :ref:`server-side binding <psycopg:server-side-binding>` set it in the

+ 0 - 7
docs/ref/django-admin.txt

@@ -744,11 +744,6 @@ Generate migration files without Django version and timestamp header.
 Makes ``makemigrations`` exit with a non-zero status when model changes without
 Makes ``makemigrations`` exit with a non-zero status when model changes without
 migrations are detected.
 migrations are detected.
 
 
-.. versionchanged:: 4.2
-
-    In older versions, the missing migrations were also created when using the
-    ``--check`` option.
-
 .. django-admin-option:: --scriptable
 .. django-admin-option:: --scriptable
 
 
 Diverts log output and input prompts to ``stderr``, writing only paths of
 Diverts log output and input prompts to ``stderr``, writing only paths of
@@ -756,8 +751,6 @@ generated migration files to ``stdout``.
 
 
 .. django-admin-option:: --update
 .. django-admin-option:: --update
 
 
-.. versionadded:: 4.2
-
 Merges model changes into the latest migration and optimize the resulting
 Merges model changes into the latest migration and optimize the resulting
 operations.
 operations.
 
 

+ 0 - 6
docs/ref/exceptions.txt

@@ -47,8 +47,6 @@ Django core exception classes are defined in ``django.core.exceptions``.
 
 
 .. exception:: FullResultSet
 .. exception:: FullResultSet
 
 
-.. versionadded:: 4.2
-
     ``FullResultSet`` may be raised during query generation if a query will
     ``FullResultSet`` may be raised during query generation if a query will
     match everything. Most Django projects won't encounter this exception, but
     match everything. Most Django projects won't encounter this exception, but
     it might be useful for implementing custom lookups and expressions.
     it might be useful for implementing custom lookups and expressions.
@@ -102,10 +100,6 @@ Django core exception classes are defined in ``django.core.exceptions``.
     a :class:`~django.http.HttpResponseBadRequest`. See the :doc:`logging
     a :class:`~django.http.HttpResponseBadRequest`. See the :doc:`logging
     documentation </topics/logging/>` for more information.
     documentation </topics/logging/>` for more information.
 
 
-.. versionchanged:: 3.2.18
-
-    ``SuspiciousOperation`` is raised when too many files are submitted.
-
 ``PermissionDenied``
 ``PermissionDenied``
 --------------------
 --------------------
 
 

+ 0 - 4
docs/ref/files/storage.txt

@@ -11,8 +11,6 @@ Django provides convenient ways to access the default storage class:
 
 
 .. data:: storages
 .. data:: storages
 
 
-    .. versionadded:: 4.2
-
     Storage instances as defined by :setting:`STORAGES`.
     Storage instances as defined by :setting:`STORAGES`.
 
 
 .. class:: DefaultStorage
 .. class:: DefaultStorage
@@ -88,8 +86,6 @@ The ``FileSystemStorage`` class
 The ``InMemoryStorage`` class
 The ``InMemoryStorage`` class
 =============================
 =============================
 
 
-.. versionadded:: 4.2
-
 .. class:: InMemoryStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None)
 .. class:: InMemoryStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None)
 
 
     The :class:`~django.core.files.storage.InMemoryStorage` class implements
     The :class:`~django.core.files.storage.InMemoryStorage` class implements

+ 0 - 4
docs/ref/forms/fields.txt

@@ -656,10 +656,6 @@ For each field, we describe the default widget used if you don't specify
     ``empty_value`` which work just as they do for :class:`CharField`. The
     ``empty_value`` which work just as they do for :class:`CharField`. The
     ``max_length`` argument defaults to 320 (see :rfc:`3696#section-3`).
     ``max_length`` argument defaults to 320 (see :rfc:`3696#section-3`).
 
 
-    .. versionchanged:: 3.2.20
-
-        The default value for ``max_length`` was changed to 320 characters.
-
 ``FileField``
 ``FileField``
 -------------
 -------------
 
 

+ 0 - 5
docs/ref/logging.txt

@@ -199,11 +199,6 @@ This logging does not include framework-level initialization (e.g.
 ``SET TIMEZONE``). Turn on query logging in your database if you wish to view
 ``SET TIMEZONE``). Turn on query logging in your database if you wish to view
 all database queries.
 all database queries.
 
 
-.. versionchanged:: 4.2
-
-    Support for logging transaction management queries (``BEGIN``, ``COMMIT``,
-    and ``ROLLBACK``) was added.
-
 .. _django-security-logger:
 .. _django-security-logger:
 
 
 ``django.security.*``
 ``django.security.*``

+ 0 - 4
docs/ref/middleware.txt

@@ -118,10 +118,6 @@ GZip middleware
     .. _breachattack.com: https://www.breachattack.com/
     .. _breachattack.com: https://www.breachattack.com/
     .. _Heal The Breach (HTB) paper: https://ieeexplore.ieee.org/document/9754554
     .. _Heal The Breach (HTB) paper: https://ieeexplore.ieee.org/document/9754554
 
 
-.. versionchanged:: 4.2
-
-    Mitigation for the BREACH attack was added.
-
 The ``django.middleware.gzip.GZipMiddleware`` compresses content for browsers
 The ``django.middleware.gzip.GZipMiddleware`` compresses content for browsers
 that understand GZip compression (all modern browsers).
 that understand GZip compression (all modern browsers).
 
 

+ 0 - 2
docs/ref/migration-operations.txt

@@ -91,8 +91,6 @@ option on the ``Meta`` subclass).
 ``AlterModelTableComment``
 ``AlterModelTableComment``
 --------------------------
 --------------------------
 
 
-.. versionadded:: 4.2
-
 .. class:: AlterModelTableComment(name, table_comment)
 .. class:: AlterModelTableComment(name, table_comment)
 
 
 Changes the model's table comment (the
 Changes the model's table comment (the

+ 0 - 5
docs/ref/models/database-functions.txt

@@ -567,11 +567,6 @@ Usage example:
     On Oracle, the SQL ``LOCALTIMESTAMP`` is used to avoid issues with casting
     On Oracle, the SQL ``LOCALTIMESTAMP`` is used to avoid issues with casting
     ``CURRENT_TIMESTAMP`` to ``DateTimeField``.
     ``CURRENT_TIMESTAMP`` to ``DateTimeField``.
 
 
-.. versionchanged:: 4.2
-
-    Support for microsecond precision on MySQL and millisecond precision on
-    SQLite were added.
-
 .. versionchanged:: 5.0
 .. versionchanged:: 5.0
 
 
     In older versions, the SQL ``CURRENT_TIMESTAMP`` was used on Oracle instead
     In older versions, the SQL ``CURRENT_TIMESTAMP`` was used on Oracle instead

+ 0 - 10
docs/ref/models/expressions.txt

@@ -282,8 +282,6 @@ is null) after companies that have been contacted::
 Using ``F()`` with logical operations
 Using ``F()`` with logical operations
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
-.. versionadded:: 4.2
-
 ``F()`` expressions that output ``BooleanField`` can be logically negated with
 ``F()`` expressions that output ``BooleanField`` can be logically negated with
 the inversion operator ``~F()``. For example, to swap the activation status of
 the inversion operator ``~F()``. For example, to swap the activation status of
 companies::
 companies::
@@ -876,10 +874,6 @@ from groups to be included:
     NotImplementedError: Heterogeneous disjunctive predicates against window functions
     NotImplementedError: Heterogeneous disjunctive predicates against window functions
     are not implemented when performing conditional aggregation.
     are not implemented when performing conditional aggregation.
 
 
-.. versionchanged:: 4.2
-
-    Support for filtering against window functions was added.
-
 Among Django's built-in database backends, MySQL, PostgreSQL, and Oracle
 Among Django's built-in database backends, MySQL, PostgreSQL, and Oracle
 support window expressions. Support for different window expression features
 support window expressions. Support for different window expression features
 varies among the different databases. For example, the options in
 varies among the different databases. For example, the options in
@@ -1100,10 +1094,6 @@ calling the appropriate methods on the wrapped expression.
         nested expressions. ``F()`` objects, in particular, hold a reference
         nested expressions. ``F()`` objects, in particular, hold a reference
         to a column.
         to a column.
 
 
-        .. versionchanged:: 4.2
-
-            The ``alias=None`` keyword argument was removed.
-
     .. method:: asc(nulls_first=None, nulls_last=None)
     .. method:: asc(nulls_first=None, nulls_last=None)
 
 
         Returns the expression ready to be sorted in ascending order.
         Returns the expression ready to be sorted in ascending order.

+ 0 - 11
docs/ref/models/fields.txt

@@ -392,8 +392,6 @@ scenes.
 ``db_comment``
 ``db_comment``
 --------------
 --------------
 
 
-.. versionadded:: 4.2
-
 .. attribute:: Field.db_comment
 .. attribute:: Field.db_comment
 
 
 The comment on the database column to use for this field. It is useful for
 The comment on the database column to use for this field. It is useful for
@@ -740,10 +738,6 @@ The default form widget for this field is a :class:`~django.forms.TextInput`.
         ``max_length`` for some backends. Refer to the :doc:`database backend
         ``max_length`` for some backends. Refer to the :doc:`database backend
         notes </ref/databases>` for details.
         notes </ref/databases>` for details.
 
 
-    .. versionchanged:: 4.2
-
-        Support for unlimited ``VARCHAR`` columns was added on PostgreSQL.
-
 .. attribute:: CharField.db_collation
 .. attribute:: CharField.db_collation
 
 
     Optional. The database collation name of the field.
     Optional. The database collation name of the field.
@@ -2469,11 +2463,6 @@ Registering and fetching lookups
 The API can be used to customize which lookups are available for a field class
 The API can be used to customize which lookups are available for a field class
 and its instances, and how lookups are fetched from a field.
 and its instances, and how lookups are fetched from a field.
 
 
-.. versionchanged:: 4.2
-
-    Support for registering lookups on :class:`~django.db.models.Field`
-    instances was added.
-
 .. _model-field-attributes:
 .. _model-field-attributes:
 
 
 =========================
 =========================

+ 0 - 12
docs/ref/models/instances.txt

@@ -200,10 +200,6 @@ all of the instance's fields when a deferred field is reloaded::
 A helper method that returns a set containing the attribute names of all those
 A helper method that returns a set containing the attribute names of all those
 fields that are currently deferred for this model.
 fields that are currently deferred for this model.
 
 
-.. versionchanged:: 4.2
-
-    ``arefresh_from_db()`` method was added.
-
 .. _validating-objects:
 .. _validating-objects:
 
 
 Validating objects
 Validating objects
@@ -426,10 +422,6 @@ method. See :ref:`overriding-model-methods` for more details.
 
 
 The model save process also has some subtleties; see the sections below.
 The model save process also has some subtleties; see the sections below.
 
 
-.. versionchanged:: 4.2
-
-    ``asave()`` method was added.
-
 Auto-incrementing primary keys
 Auto-incrementing primary keys
 ------------------------------
 ------------------------------
 
 
@@ -709,10 +701,6 @@ Sometimes with :ref:`multi-table inheritance <multi-table-inheritance>` you may
 want to delete only a child model's data. Specifying ``keep_parents=True`` will
 want to delete only a child model's data. Specifying ``keep_parents=True`` will
 keep the parent model's data.
 keep the parent model's data.
 
 
-.. versionchanged:: 4.2
-
-    ``adelete()`` method was added.
-
 Pickling objects
 Pickling objects
 ================
 ================
 
 

+ 0 - 5
docs/ref/models/lookups.txt

@@ -82,11 +82,6 @@ For a class to be a lookup, it must follow the :ref:`Query Expression API
 <query-expression>`. :class:`~Lookup` and :class:`~Transform` naturally
 <query-expression>`. :class:`~Lookup` and :class:`~Transform` naturally
 follow this API.
 follow this API.
 
 
-.. versionchanged:: 4.2
-
-    Support for registering lookups on :class:`~django.db.models.Field`
-    instances was added.
-
 .. _query-expression:
 .. _query-expression:
 
 
 The Query Expression API
 The Query Expression API

+ 0 - 2
docs/ref/models/options.txt

@@ -94,8 +94,6 @@ Django quotes column and table names behind the scenes.
 ``db_table_comment``
 ``db_table_comment``
 --------------------
 --------------------
 
 
-.. versionadded:: 4.2
-
 .. attribute:: Options.db_table_comment
 .. attribute:: Options.db_table_comment
 
 
 The comment on the database table to use for this model. It is useful for
 The comment on the database table to use for this model. It is useful for

+ 0 - 5
docs/ref/models/querysets.txt

@@ -2353,11 +2353,6 @@ Like :meth:`get_or_create` and :meth:`create`, if you're using manually
 specified primary keys and an object needs to be created but the key already
 specified primary keys and an object needs to be created but the key already
 exists in the database, an :exc:`~django.db.IntegrityError` is raised.
 exists in the database, an :exc:`~django.db.IntegrityError` is raised.
 
 
-.. versionchanged:: 4.2
-
-    In older versions, ``update_or_create()`` didn't specify ``update_fields``
-    when calling :meth:`Model.save() <django.db.models.Model.save>`.
-
 .. versionchanged:: 5.0
 .. versionchanged:: 5.0
 
 
     The ``create_defaults`` argument was added.
     The ``create_defaults`` argument was added.

+ 0 - 16
docs/ref/models/relations.txt

@@ -84,10 +84,6 @@ Related objects reference
         dictionary and they will be evaluated once before creating any
         dictionary and they will be evaluated once before creating any
         intermediate instance(s).
         intermediate instance(s).
 
 
-        .. versionchanged:: 4.2
-
-            ``aadd()`` method was added.
-
     .. method:: create(through_defaults=None, **kwargs)
     .. method:: create(through_defaults=None, **kwargs)
     .. method:: acreate(through_defaults=None, **kwargs)
     .. method:: acreate(through_defaults=None, **kwargs)
 
 
@@ -168,10 +164,6 @@ Related objects reference
         For many-to-many relationships, the ``bulk`` keyword argument doesn't
         For many-to-many relationships, the ``bulk`` keyword argument doesn't
         exist.
         exist.
 
 
-        .. versionchanged:: 4.2
-
-            ``aremove()`` method was added.
-
     .. method:: clear(bulk=True)
     .. method:: clear(bulk=True)
     .. method:: aclear(bulk=True)
     .. method:: aclear(bulk=True)
 
 
@@ -194,10 +186,6 @@ Related objects reference
         For many-to-many relationships, the ``bulk`` keyword argument doesn't
         For many-to-many relationships, the ``bulk`` keyword argument doesn't
         exist.
         exist.
 
 
-        .. versionchanged:: 4.2
-
-            ``aclear()`` method was added.
-
     .. method:: set(objs, bulk=True, clear=False, through_defaults=None)
     .. method:: set(objs, bulk=True, clear=False, through_defaults=None)
     .. method:: aset(objs, bulk=True, clear=False, through_defaults=None)
     .. method:: aset(objs, bulk=True, clear=False, through_defaults=None)
 
 
@@ -236,10 +224,6 @@ Related objects reference
         dictionary and they will be evaluated once before creating any
         dictionary and they will be evaluated once before creating any
         intermediate instance(s).
         intermediate instance(s).
 
 
-        .. versionchanged:: 4.2
-
-            ``aset()`` method was added.
-
     .. note::
     .. note::
 
 
        Note that ``add()``, ``aadd()``, ``create()``, ``acreate()``,
        Note that ``add()``, ``aadd()``, ``create()``, ``acreate()``,

+ 0 - 6
docs/ref/request-response.txt

@@ -1246,10 +1246,6 @@ with the following notable differences:
 The :class:`HttpResponseBase` base class is common between
 The :class:`HttpResponseBase` base class is common between
 :class:`HttpResponse` and :class:`StreamingHttpResponse`.
 :class:`HttpResponse` and :class:`StreamingHttpResponse`.
 
 
-.. versionchanged:: 4.2
-
-    Support for asynchronous iteration was added.
-
 Attributes
 Attributes
 ----------
 ----------
 
 
@@ -1280,8 +1276,6 @@ Attributes
 
 
 .. attribute:: StreamingHttpResponse.is_async
 .. attribute:: StreamingHttpResponse.is_async
 
 
-    .. versionadded:: 4.2
-
     Boolean indicating whether :attr:`StreamingHttpResponse.streaming_content`
     Boolean indicating whether :attr:`StreamingHttpResponse.streaming_content`
     is an asynchronous iterator or not.
     is an asynchronous iterator or not.
 
 

+ 0 - 2
docs/ref/schema-editor.txt

@@ -128,8 +128,6 @@ Renames the model's table from ``old_db_table`` to ``new_db_table``.
 ``alter_db_table_comment()``
 ``alter_db_table_comment()``
 ----------------------------
 ----------------------------
 
 
-.. versionadded:: 4.2
-
 .. method:: BaseDatabaseSchemaEditor.alter_db_table_comment(model, old_db_table_comment, new_db_table_comment)
 .. method:: BaseDatabaseSchemaEditor.alter_db_table_comment(model, old_db_table_comment, new_db_table_comment)
 
 
 Change the ``model``’s table comment to ``new_db_table_comment``.
 Change the ``model``’s table comment to ``new_db_table_comment``.

+ 0 - 4
docs/ref/settings.txt

@@ -1067,8 +1067,6 @@ perform a similar check at that level.
 ``DATA_UPLOAD_MAX_NUMBER_FILES``
 ``DATA_UPLOAD_MAX_NUMBER_FILES``
 --------------------------------
 --------------------------------
 
 
-.. versionadded:: 3.2.18
-
 Default: ``100``
 Default: ``100``
 
 
 The maximum number of files that may be received via POST in a
 The maximum number of files that may be received via POST in a
@@ -2597,8 +2595,6 @@ See also the :doc:`/ref/checks` documentation.
 ``STORAGES``
 ``STORAGES``
 ------------
 ------------
 
 
-.. versionadded:: 4.2
-
 Default::
 Default::
 
 
     {
     {

+ 0 - 10
docs/ref/templates/builtins.txt

@@ -244,11 +244,6 @@ Outputs a whole load of debugging information, including the current context
 and imported modules. ``{% debug %}`` outputs nothing when the :setting:`DEBUG`
 and imported modules. ``{% debug %}`` outputs nothing when the :setting:`DEBUG`
 setting is ``False``.
 setting is ``False``.
 
 
-.. versionchanged:: 2.2.27
-
-    In older versions, debugging information was displayed when the
-    :setting:`DEBUG` setting was ``False``.
-
 .. templatetag:: extends
 .. templatetag:: extends
 
 
 ``extends``
 ``extends``
@@ -1803,11 +1798,6 @@ produce empty output:
 
 
 Ordering by elements at specified index is not supported on dictionaries.
 Ordering by elements at specified index is not supported on dictionaries.
 
 
-.. versionchanged:: 2.2.26
-
-    In older versions, ordering elements at specified index was supported on
-    dictionaries.
-
 .. templatefilter:: dictsortreversed
 .. templatefilter:: dictsortreversed
 
 
 ``dictsortreversed``
 ``dictsortreversed``

+ 0 - 5
docs/ref/urls.txt

@@ -79,11 +79,6 @@ pattern (:py:func:`re.fullmatch` is used).
 The ``view``, ``kwargs`` and ``name`` arguments are the same as for
 The ``view``, ``kwargs`` and ``name`` arguments are the same as for
 :func:`~django.urls.path()`.
 :func:`~django.urls.path()`.
 
 
-.. versionchanged:: 2.2.25
-
-    In older versions, a full-match wasn't required for a ``route`` which ends
-    with ``$``.
-
 ``include()``
 ``include()``
 =============
 =============
 
 

+ 0 - 6
docs/ref/utils.txt

@@ -685,10 +685,6 @@ escaping HTML.
     serialize the data. See :ref:`JSON serialization
     serialize the data. See :ref:`JSON serialization
     <serialization-formats-json>` for more details about this serializer.
     <serialization-formats-json>` for more details about this serializer.
 
 
-    .. versionchanged:: 4.2
-
-        The ``encoder`` argument was added.
-
 .. function:: strip_tags(value)
 .. function:: strip_tags(value)
 
 
     Tries to remove anything that looks like an HTML tag from the string, that
     Tries to remove anything that looks like an HTML tag from the string, that
@@ -742,8 +738,6 @@ escaping HTML.
 
 
 .. function:: content_disposition_header(as_attachment, filename)
 .. function:: content_disposition_header(as_attachment, filename)
 
 
-    .. versionadded:: 4.2
-
     Constructs a ``Content-Disposition`` HTTP header value from the given
     Constructs a ``Content-Disposition`` HTTP header value from the given
     ``filename`` as specified by :rfc:`6266`. Returns ``None`` if
     ``filename`` as specified by :rfc:`6266`. Returns ``None`` if
     ``as_attachment`` is ``False`` and ``filename`` is ``None``, otherwise
     ``as_attachment`` is ``False`` and ``filename`` is ``None``, otherwise

+ 0 - 12
docs/ref/validators.txt

@@ -159,11 +159,6 @@ to, or in lieu of custom ``field.clean()`` methods.
         validation, so you'd need to add them to the ``allowlist`` as
         validation, so you'd need to add them to the ``allowlist`` as
         necessary.
         necessary.
 
 
-    .. versionchanged:: 3.2.20
-
-        In older versions, values longer than 320 characters could be
-        considered valid.
-
 ``URLValidator``
 ``URLValidator``
 ----------------
 ----------------
 
 
@@ -190,16 +185,9 @@ to, or in lieu of custom ``field.clean()`` methods.
 
 
     .. attribute:: max_length
     .. attribute:: max_length
 
 
-        .. versionadded:: 3.2.20
-
         The maximum length of values that could be considered valid. Defaults
         The maximum length of values that could be considered valid. Defaults
         to 2048 characters.
         to 2048 characters.
 
 
-    .. versionchanged:: 3.2.20
-
-        In older versions, values longer than 2048 characters could be
-        considered valid.
-
 ``validate_email``
 ``validate_email``
 ------------------
 ------------------
 
 

+ 0 - 4
docs/topics/async.txt

@@ -150,10 +150,6 @@ Transactions do not yet work in async mode. If you have a piece of code that
 needs transactions behavior, we recommend you write that piece as a single
 needs transactions behavior, we recommend you write that piece as a single
 synchronous function and call it using :func:`sync_to_async`.
 synchronous function and call it using :func:`sync_to_async`.
 
 
-.. versionchanged:: 4.2
-
-    Asynchronous model and related manager interfaces were added.
-
 .. _async_performance:
 .. _async_performance:
 
 
 Performance
 Performance

+ 0 - 7
docs/topics/auth/customizing.txt

@@ -731,8 +731,6 @@ The following attributes and methods are available on any subclass of
 
 
     .. method:: models.AbstractBaseUser.get_session_auth_fallback_hash()
     .. method:: models.AbstractBaseUser.get_session_auth_fallback_hash()
 
 
-        .. versionadded:: 4.1.8
-
         Yields the HMAC of the password field using
         Yields the HMAC of the password field using
         :setting:`SECRET_KEY_FALLBACKS`. Used by ``get_user()``.
         :setting:`SECRET_KEY_FALLBACKS`. Used by ``get_user()``.
 
 
@@ -871,11 +869,6 @@ extend these forms in this manner::
             model = CustomUser
             model = CustomUser
             fields = UserCreationForm.Meta.fields + ("custom_field",)
             fields = UserCreationForm.Meta.fields + ("custom_field",)
 
 
-.. versionchanged:: 4.2
-
-    In older versions, :class:`~django.contrib.auth.forms.UserCreationForm`
-    didn't save many-to-many form fields for a custom user model.
-
 Custom users and :mod:`django.contrib.admin`
 Custom users and :mod:`django.contrib.admin`
 --------------------------------------------
 --------------------------------------------
 
 

+ 0 - 9
docs/topics/auth/default.txt

@@ -1723,8 +1723,6 @@ provides several built-in forms located in :mod:`django.contrib.auth.forms`:
 
 
 .. class:: BaseUserCreationForm
 .. class:: BaseUserCreationForm
 
 
-    .. versionadded:: 4.2
-
     A :class:`~django.forms.ModelForm` for creating a new user. This is the
     A :class:`~django.forms.ModelForm` for creating a new user. This is the
     recommended base class if you need to customize the user creation form.
     recommended base class if you need to customize the user creation form.
 
 
@@ -1741,13 +1739,6 @@ provides several built-in forms located in :mod:`django.contrib.auth.forms`:
     similar usernames, the form doesn't allow usernames that differ only in
     similar usernames, the form doesn't allow usernames that differ only in
     case.
     case.
 
 
-    .. versionchanged:: 4.2
-
-        In older versions, :class:`UserCreationForm` didn't save many-to-many
-        form fields for a custom user model.
-
-        In older versions, usernames that differ only in case are allowed.
-
 .. currentmodule:: django.contrib.auth
 .. currentmodule:: django.contrib.auth
 
 
 Authentication data in templates
 Authentication data in templates

+ 0 - 9
docs/topics/auth/passwords.txt

@@ -620,10 +620,6 @@ Django includes four validators:
     ``user_attributes``, whereas a value of 1.0 rejects only passwords that are
     ``user_attributes``, whereas a value of 1.0 rejects only passwords that are
     identical to an attribute's value.
     identical to an attribute's value.
 
 
-    .. versionchanged:: 2.2.26
-
-        The ``max_similarity`` parameter was limited to a minimum value of 0.1.
-
 .. class:: CommonPasswordValidator(password_list_path=DEFAULT_PASSWORD_LIST_PATH)
 .. class:: CommonPasswordValidator(password_list_path=DEFAULT_PASSWORD_LIST_PATH)
 
 
     Validates that the password is not a common password. This converts the
     Validates that the password is not a common password. This converts the
@@ -635,11 +631,6 @@ Django includes four validators:
     common passwords. This file should contain one lowercase password per line
     common passwords. This file should contain one lowercase password per line
     and may be plain text or gzipped.
     and may be plain text or gzipped.
 
 
-    .. versionchanged:: 4.2
-
-        The list of 20,000 common passwords was updated to the most recent
-        version.
-
 .. class:: NumericPasswordValidator()
 .. class:: NumericPasswordValidator()
 
 
     Validate that the password is not entirely numeric.
     Validate that the password is not entirely numeric.

+ 0 - 7
docs/topics/db/queries.txt

@@ -1085,11 +1085,6 @@ Unless you are sure you wish to work with SQL ``NULL`` values, consider setting
     Storing JSON scalar ``null`` does not violate :attr:`null=False
     Storing JSON scalar ``null`` does not violate :attr:`null=False
     <django.db.models.Field.null>`.
     <django.db.models.Field.null>`.
 
 
-.. versionchanged:: 4.2
-
-    Support for expressing JSON ``null`` using ``Value(None, JSONField())`` was
-    added.
-
 .. deprecated:: 4.2
 .. deprecated:: 4.2
 
 
     Passing ``Value("null")`` to express JSON ``null`` is deprecated.
     Passing ``Value("null")`` to express JSON ``null`` is deprecated.
@@ -1162,8 +1157,6 @@ To query for missing keys, use the ``isnull`` lookup:
 ``KT()`` expressions
 ``KT()`` expressions
 ~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~
 
 
-.. versionadded:: 4.2
-
 .. module:: django.db.models.fields.json
 .. module:: django.db.models.fields.json
 
 
 .. class:: KT(lookup)
 .. class:: KT(lookup)

+ 0 - 8
docs/topics/db/transactions.txt

@@ -332,10 +332,6 @@ are caught and logged to the ``django.db.backends.base`` logger.
 You can use :meth:`.TestCase.captureOnCommitCallbacks` to test callbacks
 You can use :meth:`.TestCase.captureOnCommitCallbacks` to test callbacks
 registered with :func:`on_commit`.
 registered with :func:`on_commit`.
 
 
-.. versionchanged:: 4.2
-
-    The ``robust`` argument was added.
-
 Savepoints
 Savepoints
 ----------
 ----------
 
 
@@ -382,10 +378,6 @@ transaction raises an uncaught exception, no later registered functions in that
 same transaction will run. This is the same behavior as if you'd executed the
 same transaction will run. This is the same behavior as if you'd executed the
 functions sequentially yourself without :func:`on_commit`.
 functions sequentially yourself without :func:`on_commit`.
 
 
-.. versionchanged:: 4.2
-
-    The ``robust`` argument was added.
-
 Timing of execution
 Timing of execution
 -------------------
 -------------------
 
 

+ 0 - 4
docs/topics/files.txt

@@ -272,7 +272,3 @@ use :data:`~django.core.files.storage.storages`::
 
 
     class MyModel(models.Model):
     class MyModel(models.Model):
         upload = models.FileField(storage=select_storage)
         upload = models.FileField(storage=select_storage)
-
-.. versionchanged:: 4.2
-
-    Support for ``storages`` was added.

+ 0 - 4
docs/topics/forms/modelforms.txt

@@ -676,10 +676,6 @@ the field declaratively and setting its ``validators`` parameter::
     See the :doc:`form field documentation </ref/forms/fields>` for more information
     See the :doc:`form field documentation </ref/forms/fields>` for more information
     on fields and their arguments.
     on fields and their arguments.
 
 
-.. versionchanged:: 4.2
-
-    The ``Meta.formfield_callback`` attribute was added.
-
 Enabling localization of fields
 Enabling localization of fields
 -------------------------------
 -------------------------------
 
 

+ 0 - 8
docs/topics/http/file-uploads.txt

@@ -230,14 +230,6 @@ uploads:
    instance (in a single field), for example, even if the custom widget is used
    instance (in a single field), for example, even if the custom widget is used
    with a form field related to a model ``FileField``.
    with a form field related to a model ``FileField``.
 
 
-.. versionchanged:: 3.2.19
-
-   In previous versions, there was no support for the ``allow_multiple_selected``
-   class attribute, and users were advised to create the widget with the HTML
-   attribute ``multiple`` set through the ``attrs`` argument. However, this
-   caused validation of the form field to be applied only to the last file
-   submitted, which could have adverse security implications.
-
 Upload Handlers
 Upload Handlers
 ===============
 ===============
 
 

+ 0 - 4
docs/topics/http/middleware.txt

@@ -273,10 +273,6 @@ asynchronous iterators. The wrapping function must match. Check
 <django.http.StreamingHttpResponse.is_async>` if your middleware needs to
 <django.http.StreamingHttpResponse.is_async>` if your middleware needs to
 support both types of iterator.
 support both types of iterator.
 
 
-..  versionchanged:: 4.2
-
-    Support for streaming responses with asynchronous iterators was added.
-
 Exception handling
 Exception handling
 ==================
 ==================
 
 

+ 0 - 5
docs/topics/i18n/translation.txt

@@ -741,11 +741,6 @@ In practice you'll use this to get a string you can use in multiple places in a
 template or so you can use the output as an argument for other template tags or
 template or so you can use the output as an argument for other template tags or
 filters.
 filters.
 
 
-.. versionchanged:: 4.2
-
-    In older versions, ``asvar`` instances weren't marked as safe for (HTML)
-    output purposes.
-
 ``{% blocktranslate %}`` also supports :ref:`contextual
 ``{% blocktranslate %}`` also supports :ref:`contextual
 markers<contextual-markers>` using the ``context`` keyword:
 markers<contextual-markers>` using the ``context`` keyword:
 
 

+ 0 - 4
docs/topics/migrations.txt

@@ -795,10 +795,6 @@ Django can serialize the following:
 - Any class reference (must be in module's top-level scope)
 - Any class reference (must be in module's top-level scope)
 - Anything with a custom ``deconstruct()`` method (:ref:`see below <custom-deconstruct-method>`)
 - Anything with a custom ``deconstruct()`` method (:ref:`see below <custom-deconstruct-method>`)
 
 
-.. versionchanged:: 4.2
-
-    Serialization support for ``enum.Flag`` was added.
-
 .. versionchanged:: 5.0
 .. versionchanged:: 5.0
 
 
     Serialization support for functions decorated with :func:`functools.cache`
     Serialization support for functions decorated with :func:`functools.cache`

+ 0 - 8
docs/topics/testing/advanced.txt

@@ -32,10 +32,6 @@ restricted subset of the test client API:
   attributes must be supplied by the test itself if required
   attributes must be supplied by the test itself if required
   for the view to function properly.
   for the view to function properly.
 
 
-.. versionchanged:: 4.2
-
-    The ``headers`` parameter was added.
-
 Example
 Example
 -------
 -------
 
 
@@ -89,10 +85,6 @@ difference being that it returns ``ASGIRequest`` instances rather than
 Arbitrary keyword arguments in ``defaults`` are added directly into the ASGI
 Arbitrary keyword arguments in ``defaults`` are added directly into the ASGI
 scope.
 scope.
 
 
-.. versionchanged:: 4.2
-
-    The ``headers`` parameter was added.
-
 Testing class-based views
 Testing class-based views
 =========================
 =========================
 
 

+ 0 - 2
docs/topics/testing/overview.txt

@@ -381,8 +381,6 @@ time to run tests.
 Avoiding disk access for media files
 Avoiding disk access for media files
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
-.. versionadded:: 4.2
-
 The :class:`~django.core.files.storage.InMemoryStorage` is a convenient way to
 The :class:`~django.core.files.storage.InMemoryStorage` is a convenient way to
 prevent disk access for media files. All data is kept in memory, then it gets
 prevent disk access for media files. All data is kept in memory, then it gets
 discarded after tests run.
 discarded after tests run.

+ 0 - 40
docs/topics/testing/tools.txt

@@ -158,10 +158,6 @@ Use the ``django.test.Client`` class to make requests.
     Once you have a ``Client`` instance, you can call any of the following
     Once you have a ``Client`` instance, you can call any of the following
     methods:
     methods:
 
 
-    .. versionchanged:: 4.2
-
-        The ``headers`` parameter was added.
-
     .. method:: Client.get(path, data=None, follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.get(path, data=None, follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a GET request on the provided ``path`` and returns a ``Response``
         Makes a GET request on the provided ``path`` and returns a ``Response``
@@ -234,10 +230,6 @@ Use the ``django.test.Client`` class to make requests.
         If you set ``secure`` to ``True`` the client will emulate an HTTPS
         If you set ``secure`` to ``True`` the client will emulate an HTTPS
         request.
         request.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.post(path, data=None, content_type=MULTIPART_CONTENT, follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.post(path, data=None, content_type=MULTIPART_CONTENT, follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a POST request on the provided ``path`` and returns a
         Makes a POST request on the provided ``path`` and returns a
@@ -351,10 +343,6 @@ Use the ``django.test.Client`` class to make requests.
         If you set ``secure`` to ``True`` the client will emulate an HTTPS
         If you set ``secure`` to ``True`` the client will emulate an HTTPS
         request.
         request.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.head(path, data=None, follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.head(path, data=None, follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a HEAD request on the provided ``path`` and returns a
         Makes a HEAD request on the provided ``path`` and returns a
@@ -362,10 +350,6 @@ Use the ``django.test.Client`` class to make requests.
         including the ``follow``, ``secure``, ``headers``, and ``extra``
         including the ``follow``, ``secure``, ``headers``, and ``extra``
         parameters, except it does not return a message body.
         parameters, except it does not return a message body.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.options(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.options(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes an OPTIONS request on the provided ``path`` and returns a
         Makes an OPTIONS request on the provided ``path`` and returns a
@@ -377,10 +361,6 @@ Use the ``django.test.Client`` class to make requests.
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         the same as for :meth:`Client.get`.
         the same as for :meth:`Client.get`.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.put(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.put(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a PUT request on the provided ``path`` and returns a
         Makes a PUT request on the provided ``path`` and returns a
@@ -392,10 +372,6 @@ Use the ``django.test.Client`` class to make requests.
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         the same as for :meth:`Client.get`.
         the same as for :meth:`Client.get`.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.patch(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.patch(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a PATCH request on the provided ``path`` and returns a
         Makes a PATCH request on the provided ``path`` and returns a
@@ -404,10 +380,6 @@ Use the ``django.test.Client`` class to make requests.
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         the same as for :meth:`Client.get`.
         the same as for :meth:`Client.get`.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.delete(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.delete(path, data='', content_type='application/octet-stream', follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a DELETE request on the provided ``path`` and returns a
         Makes a DELETE request on the provided ``path`` and returns a
@@ -419,10 +391,6 @@ Use the ``django.test.Client`` class to make requests.
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         the same as for :meth:`Client.get`.
         the same as for :meth:`Client.get`.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.trace(path, follow=False, secure=False, *, headers=None, **extra)
     .. method:: Client.trace(path, follow=False, secure=False, *, headers=None, **extra)
 
 
         Makes a TRACE request on the provided ``path`` and returns a
         Makes a TRACE request on the provided ``path`` and returns a
@@ -435,10 +403,6 @@ Use the ``django.test.Client`` class to make requests.
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         The ``follow``, ``secure``, ``headers``, and ``extra`` parameters act
         the same as for :meth:`Client.get`.
         the same as for :meth:`Client.get`.
 
 
-        .. versionchanged:: 4.2
-
-            The ``headers`` parameter was added.
-
     .. method:: Client.login(**credentials)
     .. method:: Client.login(**credentials)
     .. method:: Client.alogin(**credentials)
     .. method:: Client.alogin(**credentials)
 
 
@@ -2041,10 +2005,6 @@ test client, with the following exceptions:
     >>> c = AsyncClient()
     >>> c = AsyncClient()
     >>> c.get("/customers/details/", {"name": "fred", "age": 7}, ACCEPT="application/json")
     >>> c.get("/customers/details/", {"name": "fred", "age": 7}, ACCEPT="application/json")
 
 
-.. versionchanged:: 4.2
-
-    The ``headers`` parameter was added.
-
 .. versionchanged:: 5.0
 .. versionchanged:: 5.0
 
 
     Support for the ``follow`` parameter was added to the ``AsyncClient``.
     Support for the ``follow`` parameter was added to the ``AsyncClient``.