Quickly and exactly synchronize a large python project's virtualenv with its requirements.
Please see http://venv-update.readthedocs.org/en/master/ for the complete documentation.
-
Fork this repository on github: https://help.github.com/articles/fork-a-repo/
-
Clone it: https://help.github.com/articles/cloning-a-repository/
-
Make a feature branch for your changes:
git remote add upstream https://github.com/Yelp/venv-update.git git fetch upstream git checkout upstream/master -b my-feature-branch
-
Make sure the test suite works before you start:
source .activate.sh make test
-
Commit patches: http://gitref.org/basic/
-
Push to github:
git pull && git push origin
-
Send a pull request: https://help.github.com/articles/creating-a-pull-request/
Run a particular test:
py.test tests/functional/simple_test.py::test_downgrade
See all output from a test:
py.test -s -k downgrade
Check coverage of a single test:
./test tests/functional/simple_test.py::test_downgrade
To develop and run tests suites on a devbox, make sure to:
-
Python 3.6.0 on a xenial devbox breaks coverage. Use a bionic devbox instead.
-
Override pip.conf to use public pypi. Don't forget to delete it after you're done!
$ cat ~/.pip/pip.conf
[global]
index-url = https://pypi.org/simple/
sudo apt-get install pypy-dev
so TOXENV=pypy doesn't fail spectacularly