-
Committer:
Zygmunt Krynicki
-
Date:
2013-05-28 17:03:27 UTC
-
mto:
This revision was merged to the branch mainline in
revision
2146.
-
Revision ID:
zygmunt.krynicki@canonical.com-20130528170327-ot0e4ogon5mxiija
support: add dependency support module
This patch changes all of the deployment scripts and adds a few new
conventions and utilities.
By convention, all sub-projects should have a directory called
'requirements' that may have any number of deb-*.txt and pip-*.txt files
inside. All of the deb-*.txt files must list the debian packages to
install, one per line. All of the pip-*.txt files must list the pypi
packages to install. Unlike debian packages, pypi packages must be
pinned, that is, refer to a particular version using the name==version
syntax. All of those packages must be collected in a separate repository
'external-tarballs' which is managed externally.
To prepare a fresh system for checkbox development a number of steps are
taken. Firsst all of the debian dependencies are gathered and installed.
After that pip is installed from source. This is required because pip
for python3 is not packaged in Ubuntu 12.04 and it is required to
install additional packages. Pip, as all non-Debian packages, is
installed from 'external-tarballs'. Pip then is used to install all of
the gathered pip dependencies. At this time all of the external
dependencies should be ready. The last step is to develop all of the
sub-projects, in order: checkbox, plainbox and checkbox-ng.
The same sequence of actions is taken when provisioning vagrant images
and local, virtualenv-based development. Due to the overall complexity
the per-subproject mk-venv.sh files are now replaced with a single
global copy.
Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>