Skip to content

Commit

Permalink
Preparing v4.2 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
bigfootjon committed Jul 21, 2024
1 parent 8d90b07 commit fc9053e
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 1 deletion.
13 changes: 13 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
Full release notes, with more details and upgrade information, are available at:
https://channels.readthedocs.io/en/latest/releases

4.2.0 (expected by EOY 2024)
------------------

Channels 4.2 introduces a couple of major but backwards-compatible
changes, including most notably enhanced async suppport and fixing
a long-standing bug where tests would try and close db connections
and erroneously fail.

There are a number of other small bugfixes. Please ensure to review the
`Version 4.2.0 release notes
<https://channels.readthedocs.io/en/latest/releases/4.2.0.html>`_ for full
details.

4.1.0 (2024-04-03)
------------------

Expand Down
2 changes: 1 addition & 1 deletion channels/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "4.1.0"
__version__ = "4.2.0"


DEFAULT_CHANNEL_LAYER = "default"
48 changes: 48 additions & 0 deletions docs/releases/4.2.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
4.2.0 Release Notes
===================

Channels 4.2 introduces a couple of major but backwards-compatible
changes, including most notably enhanced async suppport and fixing
a long-standing bug where tests would try and close db connections
and erroneously fail.

Enhanced Async Support
----------------------

Support for asynchronous consumers has been greatly improved.
The documentation has been updated to reflect the async ORM
features added in Django 4.2. A new `channels.db.aclose_old_connections`
function has been added to easily close old database connections
in async consumers.

Warning: Channels now automatically closes connections in async
consumers before a new connection, after recieving message (but
before dispatching to consumer code), and after disconnecting.

This change has been made to more closely align with Django's
request/response cycle, and to help users avoid attempting
to use stale/broken connections.

Notably, Channels does NOT close connections before or after
a consumer **sends** data. This is to avoid database churn and
more closely align with user expectations. Instead, users are
expected to call `aclose_old_connections` occasionally during
long-lived async connections.


Bugfixes & Small Changes
------------------------

* Database connections are no longer closed inside tests, which
prevents erroneous "Cannot operate on a closed database" errors
when running tets.

Thanks to Jon Janzen.

* An old import override and an unused deprecation message were removed

Thanks to @sevdog (Devid) and Jon Janzen.

* WebsocketCommunicator now has informative `assert` error messages

Thanks to Karel Hovorka.
1 change: 1 addition & 0 deletions docs/releases/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Release Notes
.. toctree::
:maxdepth: 1

4.2.0
4.1.0
4.0.0
3.0.5
Expand Down

0 comments on commit fc9053e

Please sign in to comment.