zulip/requirements
Greg Price b362e21ebb deps: Simplify tools/update-locked-requirements slightly.
This makes the code a little more concise and also more uniform,
treating `future` the same in prod and in dev.  The non-uniformity
looks like an oversight in 2be8a793e, one of the commits that updated
this code for the Python 3-only world.
2017-09-15 00:23:20 -07:00
..
README.md tools: Remove old python 3 compatibility checker. 2017-08-22 14:58:59 -07:00
common.txt requirements: Upgrade to version 0.3.4 of the Zulip API packages. 2017-09-12 03:02:29 -07:00
dev.txt profiling: Add snakeviz to dev tools. 2017-09-06 13:46:24 -07:00
dev_lock.txt deps: Simplify tools/update-locked-requirements slightly. 2017-09-15 00:23:20 -07:00
docs.txt requirements: Downgrade sphinx. 2017-08-22 13:21:15 -07:00
mypy.txt deps: Explain the `-e` oddness, and handle it uniformly. 2017-09-15 00:23: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: Upgrade to version 0.3.4 of the Zulip API packages. 2017-09-12 03:02:29 -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.