Reviewers: mp+195700_code.launchpad.net, Message: Please take a look. Description: Add a download cache for test dependencies To QA, remove the .venv in your tests dir and try running make. It is a lot faster and more reliable for me. Testing make clean would be good too. https://code.launchpad.net/~gary/charms/precise/juju-gui/download-cache/+merge/195700 (do not edit description out of merge proposal) Please review this at https://codereview.appspot.com/28770043/ Affected files (+49, -1 lines): M .bzrignore M HACKING.md M Makefile A [revision details] M test-requirements.pip M tests/00-setup Index: .bzrignore === modified file '.bzrignore' --- .bzrignore 2013-07-17 15:23:10 +0000 +++ .bzrignore 2013-11-19 02:50:54 +0000 @@ -6,3 +6,4 @@ server/dist server/MANIFEST tests/.venv +tests/download-cache Index: HACKING.md === modified file 'HACKING.md' --- HACKING.md 2013-11-12 17:35:42 +0000 +++ HACKING.md 2013-11-19 02:50:54 +0000 @@ -185,3 +185,24 @@ To upgrade the dependencies, add a tarball to the `deps` directory, remove the old dependency if required, and update the `server-requirements.pip` file. At this point, running `make` should also update the virtualenv used for tests. + +## Upgrading the test dependencies ## + +The tests also have a number of dependencies. For speed and reliability, these +are also in a directory. However, they are not necessary for normal use of the +charm, and so, unlike the server dependencies, they are not part of the normal +charm branch. The 00-setup script makes a lightweight checkout of the branch +lp:~juju-gui-charmers/juju-gui/charm-download-cache and then uses this to build +the test virtual environment. + +To take best advantage of this approach, either use the same charm branch +repeatedly for development; or develop the charm within a parent directory +in which you have run `bzr init-repo`, so that the different branches can use +the local cache; or both. + +To upgrade test dependencies, add them to the `test-requirements.pip` file and +add the tarballs to the download-cache branch. You may need to temporarily +disable the `--no-allow-external` and `--no-index` flags in 00-setup to get +new transitive dependencies. Once you do, run `pip freeze` to add the +transitive dependencies to the `test-requirements.pip` file, and make sure to +add those tarballs to the download cache as well. Index: Makefile === modified file 'Makefile' --- Makefile 2013-11-14 08:52:35 +0000 +++ Makefile 2013-11-19 02:50:54 +0000 @@ -62,6 +62,7 @@ clean: find . -name '*.pyc' -delete rm -rf $(VENV) + rm -rf tests/download-cache deploy: setup $(VENV)/bin/python ./tests/deploy.py Index: [revision details] === added file '[revision details]' --- [revision details] 2012-01-01 00:00:00 +0000 +++ [revision details] 2012-01-01 00:00:00 +0000 @@ -0,0 +1,2 @@ +Old revision: