This repository was archived by the owner on Apr 3, 2026. It is now read-only.
Open
Conversation
3091647 to
46f1ef9
Compare
46f1ef9 to
5a1b6cb
Compare
5a1b6cb to
f7cb2ea
Compare
f7cb2ea to
2e39540
Compare
2e39540 to
6a37f65
Compare
6a37f65 to
bdc6f3f
Compare
bdc6f3f to
af768cd
Compare
af768cd to
5846c92
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==3.5.2→==3.11.1Release Notes
django/asgiref (asgiref)
v3.11.1Compare Source
SECURITY FIX CVE-2025-14550: There was a potential DoS vector for users of
the
asgiref.wsgi.WsgiToAsgiadapter. Malicious requests, including an unreasonablylarge number of values for the same header, could lead to resource exhaustion
when building the WSGI environment.
To mitigate this, the algorithm is changed to be more efficient, and
WsgiToAsgigains a new optionalduplicate_header_limitparameter,which defaults to 100. This specifies the number of times a single header may
be repeated before the request is rejected as malformed.
You may override
duplicate_header_limitwhen configuring your application::Set
duplicate_header_limit=Noneif you wish to disable this check.Fixed a regression in 3.11.0 in
sync_to_asyncwhen wrapping a callablewith an attribute named
context. (#537)v3.11.0Compare Source
sync_to_asyncgains acontextparameter, similar to those forasyncio.create_task,TaskGroup&co, that can be used on Python 3.11+ tocontrol the context used by the underlying task.
The parent context is already propagated by default but the additional
control is useful if multiple
sync_to_asynccalls need to share the samecontext, e.g. when used with
asyncio.gather().v3.10.0Compare Source
invocations use the same thread. (#511)
v3.9.2Compare Source
Adds support for Python 3.14.
Fixes wsgi.errors file descriptor in WsgiToAsgi adapter.
v3.9.1Compare Source
Fixed deletion of Local values affecting other contexts. (#523)
Skip CPython specific garbage collection test on pypy. (#521)
v3.9.0Compare Source
Adds support for Python 3.13.
Drops support for (end-of-life) Python 3.8.
Fixes an error with conflicting kwargs between AsyncToSync and the wrapped
function. (#471)
Fixes Local isolation between asyncio Tasks. (#478)
Fixes a reference cycle in Local (#508)
Fixes a deadlock in CurrentThreadExecutor with nested async_to_sync →
sync_to_async → async_to_sync → create_task calls. (#494)
The ApplicationCommunicator testing utility will now return the task result
if it's already completed on send_input and receive_nothing. You may need to
catch (e.g.) the asyncio.exceptions.CancelledError if sending messages to
already finished consumers in your tests. (#505)
v3.8.1Compare Source
sync_to_async.
v3.8.0Compare Source
Adds support for Python 3.12.
Drops support for (end-of-life) Python 3.7.
Fixes task cancellation propagation to subtasks when using synchronous Django
middleware.
Allows nesting
sync_to_asyncviaasyncio.wait_for.Corrects WSGI adapter handling of root path.
Handles case where
"client"isNonein WsgiToAsgi adapter.v3.7.2more accurately reflect the kind of callables they return.
v3.7.1is now constrained to be at least version 4 (as we depend on functionality
in that version and above)
v3.7.0Compare Source
Contextvars are now required for the implementation of
syncas Python 3.6is now no longer a supported version.
sync_to_async and async_to_sync now pass-through
Debug and Lifespan State extensions have resulted in a typing change for some
request and response types. This change should be backwards-compatible.
asgirefframes will now be hidden in Django tracebacks by default.Raw performance and garbage collection improvements in Local, SyncToAsync,
and AsyncToSync.
v3.6.0Compare Source
Two new functions are added to the
asgiref.syncmodule:iscoroutinefunction()and
markcoroutinefunction().Python 3.12 deprecates
asyncio.iscoroutinefunction()as an alias forinspect.iscoroutinefunction(), whilst also removing the_is_coroutinemarker.The latter is replaced with the
inspect.markcoroutinefunctiondecorator.The new
asgiref.syncfunctions are compatibility shims for thesefunctions that can be used until Python 3.12 is the minimum supported
version.
Note that these functions are considered beta, and as such, whilst
not likely, are subject to change in a point release, until the final release
of Python 3.12. They are included in
asgirefnow so that they can beadopted by Django 4.2, in preparation for support of Python 3.12.
The
loopargument toasgiref.timeout.timeoutis deprecated. As per otherasynciobased APIs, the running event loop is used by default. Note thatasyncioprovides timeout utilities from Python 3.11, and these should bepreferred where available.
Support for the
ASGI_THREADSenvironment variable, used bySyncToAsync, is removed. In general, a running event-loop is notavailable to
asgirefat import time, and so the default thread poolexecutor cannot be configured. Protocol servers, or applications, should set
the default executor as required when configuring the event loop at
application startup.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.