zulip/requirements
rht 41e3db81be dependencies: Upgrade to Django 2.2.10.
Django 2.2.x is the next LTS release after Django 1.11.x; I expect
we'll be on it for a while, as Django 3.x won't have an LTS release
series out for a while.

Because of upstream API changes in Django, this commit includes
several changes beyond requirements and:

* urls: django.urls.resolvers.RegexURLPattern has been replaced by
  django.urls.resolvers.URLPattern; affects OpenAPI code and related
  features which re-parse Django's internals.
  https://code.djangoproject.com/ticket/28593
* test_runner: Change number to suffix. Django changed the name in this
  ticket: https://code.djangoproject.com/ticket/28578
* Delete now-unnecessary SameSite cookie code (it's now the default).
* forms: urlsafe_base64_encode returns string in Django 2.2.
  https://docs.djangoproject.com/en/2.2/ref/utils/#django.utils.http.urlsafe_base64_encode
* upload: Django's File.size property replaces _get_size().
  https://docs.djangoproject.com/en/2.2/_modules/django/core/files/base/
* process_queue: Migrate to new autoreload API.
* test_messages: Add an extra query caused by .refresh_from_db() losing
  the .select_related() on the Realm object.
* session: Sync SessionHostDomainMiddleware with Django 2.2.

There's a lot more we can do to take advantage of the new release;
this is tracked in #11341.

Many changes by Tim Abbott, Umair Waheed, and Mateusz Mandera squashed
are squashed into this commit.

Fixes #10835.
2020-02-13 16:27:26 -08:00
..
README.md requirements: Improve README's format. 2018-05-26 06:26:14 -07:00
common.in dependencies: Upgrade to Django 2.2.10. 2020-02-13 16:27:26 -08:00
dev.in tests: Replace httpretty with responses. 2020-01-22 11:56:15 -08:00
dev.txt dependencies: Upgrade to Django 2.2.10. 2020-02-13 16:27:26 -08:00
docs.in docs: Upgrade recommonmark to 0.6.0, fixing issues. 2019-10-02 12:29:24 -07:00
docs.txt requirements: Upgrade all Python requirements. 2020-02-05 12:38:10 -08:00
mypy.in mypy: Upgrade from 0.730 to 0.740. 2019-11-13 12:38:45 -08:00
mypy.txt requirements: Upgrade all Python requirements. 2020-02-05 12:38:10 -08:00
pip.in requirements: Generate pip.txt from pip.in like the other *.txt files. 2019-09-23 13:23:58 -07:00
pip.txt requirements: Upgrade all Python requirements. 2020-02-05 12:38:10 -08:00
pip2.txt requirements: Upgrade all Python requirements. 2020-02-05 12:38:10 -08:00
prod.in requirements: Remove unnecessary version bounds from *.in. 2019-09-23 13:23:58 -07:00
prod.txt dependencies: Upgrade to Django 2.2.10. 2020-02-13 16:27:26 -08:00
thumbor-dev.in requirements: Remove unnecessary version bounds from *.in. 2019-09-23 13:23:58 -07:00
thumbor-dev.txt requirements: Upgrade all Python requirements. 2020-02-05 12:38:10 -08:00
thumbor.in requirements: Remove unnecessary version bounds from *.in. 2019-09-23 13:23:58 -07:00
thumbor.txt requirements: Upgrade all Python requirements. 2020-02-05 12:38:10 -08:00

README.md

The dependency graph of the requirements is as follows:

dev         prod
+ +          +
| +->common<-+
v
mypy,docs

Of the files, only dev, prod, and mypy have been used in the install scripts directly. The rest are implicit dependencies.

common and dev are locked.

Steps to update a lock file, e.g. to update ipython from 5.3.0 to 6.0.0 in common.in and propagate it to dev.txt and prod.txt: 0. Replace ipython==5.4.1 with ipython==6.0.0 in common.in.

  1. Run ./tools/update-locked-requirements.
  2. Increase PROVISION_VERSION in version.py.
  3. Run ./tools/provision to install the new deps and test them.
  4. Commit your changes.