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.

Branches:

# cms
git checkout 1043-convert-from-cms-models-to-block

Requirements:

anytree==2.4.3
attrs==18.1.0
# our projects seem to use 'bs4' not 'beautifulsoup4==4.6.0'?!  Why?
beautifulsoup4==4.6.0
bs4
bleach==2.1.3
boto==2.36.0
celery==3.1.26.post2
coreapi==2.3.3
cssselect==1.0.3
d2to1==0.2.12
django-axes==4.4.0
django-bootstrap3==10.0.1
django-braces==1.13.0
# remove this ref. https://www.kbsoftware.co.uk/crm/ticket/1689/
# django-celery-transactions==0.3.6
django-colorful==1.2
# remove this ref. https://www.kbsoftware.co.uk/crm/ticket/1009/
# django-compressor==2.1
django-cors-headers==2.2.0
django-countries==5.0
django-crispy-forms==1.7.2
django-extensions==2.0.7
django-formtools==2.1
django-mptt==0.9.1
django-nvd3==0.9.7
django-recaptcha==1.4.0
django-redis==4.8.0
django-reversion==3.0.0
django-sendfile==0.3.11
django-statsd-mozilla==0.3.14
django-storages-redux
django-taggit==0.23.0
django-waffle==0.11.1
Django==2.1
djangoajax==2.4
djangorestframework-jsonapi==2.4.0
djangorestframework==3.8.2
djrill==2.1.0
dnspython==1.15.0
docutils==0.14
easy-thumbnails==2.5
elastic-apm==3.0.0
elasticsearch==6.3.0
Flask-Cors==3.0.3
Flask==0.12.2
git+https://github.com/pyinstaller/pyinstaller.git@c7a24e5a023bdd7d2d6c571f6bab0513d8e809a1#egg=PyInstaller
google-api-python-client==1.6.2
hg+https://bitbucket.org/schinckel/django-jsonfield#egg=jsonfield
html5lib==1.0b10
humanize==0.5.1
iso8601==0.1.10
lxml==3.4.4
mysqlclient==1.3.12
Pillow==5.2.0
psd-tools==1.4
# see 'psycopg2' note below...
psycopg2==2.7.5 --no-binary=psycopg2
pypiwin32==220
pypyodbc==1.3.5
python-dateutil==2.7.3
python-slugify==1.2.5
python-whois==0.6.5
pytz==2018.5
PyYAML==3.13
redis==2.10.6
reportlab==3.5.4
requests==2.19.1
social-auth-app-django==1.1.0
sparkpost==1.3.6
spyne==2.11.0
statsd==3.0.1
stripe==1.80.0
tasklib==1.1.0
transitions==0.6.4
workalendar==2.3.1
xmltodict==0.11.0
Yapsy==1.10.423

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'

psycopg2

Psycopg 2.7.4 released, What’s the problem with Wheels?

email from Malcolm, 04/07/2018… it seems that until v2.8 is released the wheel is still included in the psycopg2 package and is installed by default so to install from source we need to specify the --no-binary option in the requirements file as follows:

psycopg2==2.7.5 --no-binary=psycopg2

Recreating the virtual environment or running pip uninstall psycopg2 and then pip install -r requirements/local.txt will install from source and remove the message.