Requirements

Before adding a new requirement to a project:

  1. Our core technologies are Django and Ember.

  2. Ask… is it really required? We want to re-use good code, but keep requirements to a minimum.

  3. Check the project is active i.e. has recent commits and is keeping up with recent releases e.g. Django 2

  4. Discuss with the team before adding.

Common requirements:

APScheduler==3.6.3
attrs==19.3.0
beautifulsoup4==4.9.0
bleach==3.1.5
django-braces==1.14.0
django-dramatiq==0.9.1
django-extensions==2.2.5
django-reversion==3.0.7
django-taggit==1.2.0
# For Ubuntu 16.04 servers (ILSPA etc)
# Django==2.2.12
Django==3.0.7
djangorestframework==3.11.0
dramatiq[redis, watch]==1.8.1
easy-thumbnails==2.7
elastic-apm==5.5.2
psycopg2==2.8.5
# for windows
psycopg2-binary==2.7.6.1
python-dateutil==2.8.1
pytz==2019.3

Other requirements:

anytree==2.4.3
beautifulsoup4==4.8.1
# bleach needs 'html5lib' (I think)
boto==2.36.0
celery==4.3.0
# for windows
# celery==3.1.26.post2
coreapi==2.3.3
cssselect==1.0.3
django-anymail==7.0.0
django-axes==5.3.1
django-bootstrap3==10.0.1
django-braces==1.14.0
django-colorful==1.2
django-cors-headers==3.2.0
django-countries==5.3.3
django-crispy-forms==1.7.2
django-formtools==2.1
django-mptt==0.11.0
django-nvd3==0.9.7
# no longer using  'django-pyodbc-azure' or 'django-azure-sql-backend'
django-mssql-backend==2.8.1
django-recaptcha==1.4.0
django-sendfile==0.3.11
# 09/06/2020, We need to try 'sendfile2' instead!
# django-sendfile2==0.5.1
django-statsd-mozilla==0.3.14
django-storages-redux
django-waffle==0.11.1
django-webserver[waitress]==1.1.0
djangoajax==3.1
djrill==2.1.0
dnspython==1.15.0
docutils==0.14
elasticsearch==6.8.1
Flask-Cors==3.0.6
Flask==1.0.2
git+https://github.com/pyinstaller/pyinstaller.git@c7a24e5a023bdd7d2d6c571f6bab0513d8e809a1#egg=PyInstaller
google-api-python-client==1.7.11
google-auth==1.7.2
hg+https://bitbucket.org/schinckel/django-jsonfield#egg=jsonfield
html5lib==1.0.1
humanize==0.5.1
iso8601==0.1.10
lxml==4.4.1
mailchimp3==3.0.6
mozilla-django-oidc==1.2.3
mysqlclient==1.4.6
paramiko==2.7.1
Pillow==7.1.2
psd-tools==1.4
PyInstaller==3.4
pypiwin32==223
# Replace pypyodbc==1.3.5 with a maintained package
# https://www.kbsoftware.co.uk/crm/ticket/4957/
pyodbc==4.0.30
python-slugify==4.0.0
python-whois==0.7.0
pyxero==0.9.2
# CVE-2017-18342 - https://github.com/advisories/GHSA-rprw-h62v-c2w7
PyYAML==5.3.1
redis==3.3.8
# for windows
# redis==2.10.6
reportlab==3.5.42
# see urllib3 (below)
requests==2.23.0
scp==0.13.2
social-auth-app-django==1.1.0
sparkpost==1.3.6
spyne==2.11.0
statsd==3.0.1
# legacy
stripe==1.84.2
# SCA
stripe==2.43.0
tasklib==1.1.0
transitions==0.7.1
# for compatibility with requests
urllib3==1.24.2
workalendar==2.5.0
xmltodict==0.12.0
whitenoise==5.0.1
Yapsy==1.10.423

For local requirements (requirements/local.txt):

# django-debug-panel has not been updated since 2016
django-debug-toolbar==2.1

To update the version of a dependency in base.txt:

find . -name "base.txt" | xargs sed -i 's/Django==1.6.1/Django==1.6.2/g'