1. ==========================
    
  2. Django 2.2.1 release notes
    
  3. ==========================
    
  4. 
    
  5. *May 1, 2019*
    
  6. 
    
  7. Django 2.2.1 fixes several bugs in 2.2.
    
  8. 
    
  9. Bugfixes
    
  10. ========
    
  11. 
    
  12. * Fixed a regression in Django 2.1 that caused the incorrect quoting of
    
  13.   database user password when using :djadmin:`dbshell` on Oracle
    
  14.   (:ticket:`30307`).
    
  15. 
    
  16. * Added compatibility for ``psycopg2`` 2.8 (:ticket:`30331`).
    
  17. 
    
  18. * Fixed a regression in Django 2.2 that caused a crash when loading the
    
  19.   template for the technical 500 debug page (:ticket:`30324`).
    
  20. 
    
  21. * Fixed crash of ``ordering`` argument in
    
  22.   :class:`~django.contrib.postgres.aggregates.ArrayAgg` and
    
  23.   :class:`~django.contrib.postgres.aggregates.StringAgg` when it contains an
    
  24.   expression with params (:ticket:`30332`).
    
  25. 
    
  26. * Fixed a regression in Django 2.2 that caused a single instance fast-delete
    
  27.   to not set the primary key to ``None`` (:ticket:`30330`).
    
  28. 
    
  29. * Prevented :djadmin:`makemigrations` from generating infinite migrations for
    
  30.   check constraints and partial indexes when ``condition`` contains
    
  31.   a :class:`~python:range` object (:ticket:`30350`).
    
  32. 
    
  33. * Reverted an optimization in Django 2.2 (:ticket:`29725`) that caused the
    
  34.   inconsistent behavior of ``count()`` and ``exists()`` on a reverse
    
  35.   many-to-many relationship with a custom manager (:ticket:`30325`).
    
  36. 
    
  37. * Fixed a regression in Django 2.2 where
    
  38.   :class:`~django.core.paginator.Paginator` crashes if ``object_list`` is
    
  39.   a queryset ordered or aggregated over a nested ``JSONField`` key transform
    
  40.   (:ticket:`30335`).
    
  41. 
    
  42. * Fixed a regression in Django 2.2 where ``IntegerField`` validation of
    
  43.   database limits crashes if ``limit_value`` attribute in a custom validator is
    
  44.   callable (:ticket:`30328`).
    
  45. 
    
  46. * Fixed a regression in Django 2.2 where
    
  47.   :class:`~django.contrib.postgres.search.SearchVector` generates SQL that is
    
  48.   not indexable (:ticket:`30385`).
    
  49. 
    
  50. * Fixed a regression in Django 2.2 that caused an exception to be raised when
    
  51.   a custom error handler could not be imported (:ticket:`30318`).
    
  52. 
    
  53. * Relaxed the system check added in Django 2.2 for the admin app's dependencies
    
  54.   to reallow use of
    
  55.   :class:`~django.contrib.sessions.middleware.SessionMiddleware` subclasses,
    
  56.   rather than requiring :mod:`django.contrib.sessions` to be in
    
  57.   :setting:`INSTALLED_APPS` (:ticket:`30312`).
    
  58. 
    
  59. * Increased the default timeout when using ``Watchman`` to 5 seconds to prevent
    
  60.   falling back to ``StatReloader`` on larger projects and made it customizable
    
  61.   via the :envvar:`DJANGO_WATCHMAN_TIMEOUT` environment variable
    
  62.   (:ticket:`30361`).
    
  63. 
    
  64. * Fixed a regression in Django 2.2 that caused a crash when migrating
    
  65.   permissions for proxy models if the target permissions already existed. For
    
  66.   example, when a permission had been created manually or a model had been
    
  67.   migrated from concrete to proxy (:ticket:`30351`).
    
  68. 
    
  69. * Fixed a regression in Django 2.2 that caused a crash of :djadmin:`runserver`
    
  70.   when URLConf modules raised exceptions (:ticket:`30323`).
    
  71. 
    
  72. * Fixed a regression in Django 2.2 where changes were not reliably detected by
    
  73.   auto-reloader when using ``StatReloader`` (:ticket:`30323`).
    
  74. 
    
  75. * Fixed a migration crash on Oracle and PostgreSQL when adding a check
    
  76.   constraint with a ``contains``, ``startswith``, or ``endswith`` lookup (or
    
  77.   their case-insensitive variant) (:ticket:`30408`).
    
  78. 
    
  79. * Fixed a migration crash on Oracle and SQLite when adding a check constraint
    
  80.   with ``condition`` contains ``|`` (``OR``) operator (:ticket:`30412`).