zulip/requirements
Tim Abbott 55f0555c8d requirements: Update mypy to latest master. 2017-08-25 10:53:10 -07:00
..
README.md tools: Remove old python 3 compatibility checker. 2017-08-22 14:58:59 -07:00
common.txt requirements: Mark dateutil as being explicitly used by tests. 2017-08-22 10:42:01 -07:00
dev.txt requirements: Remove pathlib2. 2017-08-23 10:00:21 -07:00
dev_lock.txt requirements: Update mypy to latest master. 2017-08-25 10:53:10 -07:00
docs.txt requirements: Downgrade sphinx. 2017-08-22 13:21:15 -07:00
mypy.txt requirements: Update mypy to latest master. 2017-08-25 10:53:10 -07:00
pip.txt requirements: Upgrade setuptools to 36.2.7. 2017-08-21 07:52:15 -07:00
prod.txt requirements: Remove unnecessary dateutil dependency. 2017-08-22 10:42:01 -07:00
prod_lock.txt requirements: Mark dateutil as being explicitly used by tests. 2017-08-22 10:42:01 -07: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.txt and propagate it to dev_lock.txt and prod_lock.txt: 0. Replace ipython==5.4.1 with ipython==6.0.0 in common.txt

  1. Run './tools/update-locked-requirements'
  2. Run ./tools/provision to install the new deps and test them
  3. Commit your changes.

The reason the steps to remove the -e is necessary is because pip-compile doesn't support installing from vcs without -e yet. You may track the ongoing progress here https://github.com/jazzband/pip-tools/issues/355.