zulip/requirements
Tim Abbott 15c49679fe requirements: Document the process a bit more. 2017-08-22 10:42:01 -07:00
..
README.md requirements: Document the process a bit more. 2017-08-22 10:42:01 -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 scandir implicit dependency. 2017-08-22 10:10:57 -07:00
dev_lock.txt requirements: Mark dateutil as being explicitly used by tests. 2017-08-22 10:42:01 -07:00
docs.txt requirements: Upgrade babel to 2.5.0. 2017-08-21 07:52:16 -07:00
mypy.txt requirements: Include egg fragment in mypy git url. 2017-08-20 22:59:20 -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
py3k.txt requirements: Upgrade typing to 3.6.2. 2017-08-21 07:52:15 -07:00

README.md

The dependency graph of the requirements is as follows:

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

Of the files, only dev, prod, py3k, 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.