﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32128	Issue with asgiref dependency installing Django 3.1.x	Carlton Gibson	Carlton Gibson	"It looks like we've misspecified the `asgiref` dependency in Django 3.1.x. 

Specifically, I think we wanted ''latest asgiref that wasn't 4 (i.e. a break)'' but installing we're not picking up the latest asgiref 3.3, which we want (because it makes the `thread_sensitive` parameter default `True`). 

This came up on https://github.com/django/channels/pull/1522.

An example with a fresh venv: 

{{{
(tmp-472bce83ec89b59) ~/ve/tmp-472bce83ec89b59 $ pip install asgiref
Collecting asgiref
  Using cached asgiref-3.3.0-py3-none-any.whl (19 kB)
Installing collected packages: asgiref
Successfully installed asgiref-3.3.0
(tmp-472bce83ec89b59) ~/ve/tmp-472bce83ec89b59 $ pip install Django
Collecting Django
  Using cached Django-3.1.2-py3-none-any.whl (7.8 MB)
Collecting asgiref~=3.2.10
  Using cached asgiref-3.2.10-py3-none-any.whl (19 kB)
Collecting pytz
  Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB)
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.4.1-py3-none-any.whl (42 kB)
Installing collected packages: asgiref, pytz, sqlparse, Django
  Attempting uninstall: asgiref
    Found existing installation: asgiref 3.3.0
    Uninstalling asgiref-3.3.0:
      Successfully uninstalled asgiref-3.3.0
Successfully installed Django-3.1.2 asgiref-3.2.10 pytz-2020.1 sqlparse-0.4.1
(tmp-472bce83ec89b59) ~/ve/tmp-472bce83ec89b59 $ pip install -U asgiref
Collecting asgiref
  Using cached asgiref-3.3.0-py3-none-any.whl (19 kB)
Installing collected packages: asgiref
  Attempting uninstall: asgiref
    Found existing installation: asgiref 3.2.10
    Uninstalling asgiref-3.2.10:
      Successfully uninstalled asgiref-3.2.10
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

django 3.1.2 requires asgiref~=3.2.10, but you'll have asgiref 3.3.0 which is incompatible.
Successfully installed asgiref-3.3.0

}}}

* This is using the old resolver but the new one will pick asgiref 3.2.10 too. 
* I installed asgiref first here just for demonstration. A straight `pip install Django` equally picks 3.2.10. 

I think this is a RB as when I pip install Django 3.1 I want (need) the latest asgiref, but hoping for opinions on that. 
"	Cleanup/optimization	closed	Core (Other)	3.1	Release blocker	fixed		Andrew Godwin David Smith Mariusz Felisiak	Ready for checkin	1	0	0	0	0	0
