A tool to help manage projects with dependencies spread across repositories.
I work on several projects spread across repositories; some of these leverage sub-repositories in some form, and it's led to additional complexity trying to stay in sync (especially when dealing with merges, release lines, hot fixes, and all the other fun things that happen in large software projects). The goal here is to have a suite of scripts to help keep repositories in sync and working well together, without the issues that sub-repositories introduce.
The simplest way to install is using pip.
$ cd /path/to/dev-pipeline
$ pip install
If you don't have pip available, you can run setup.py
directly.
$ cd /path/to/dev-pipeline
$ python setup.py install
If the install completes you're good to go. Depending on your project configuration you may need to install additional tools such as cmake or git; installing those tools is beyond the scope of this document.
The first thing you'll need to do is write a build configuration. Once you're ready, configure a build directory.
# configure with default settings
$ dev-pipeline configure
If everything went well, you're ready to build.
# enter whatever directory the configure step used
$ cd build
# bootstrap will both pull the package sources and build them
$ dev-pipeline bootstrap
That's it. Check the tool documentation for information on what's available.
- configure - Prepare an environment for dev-pipeline to operate. This is required before most tools will work.
- bootstrap - Fetch sources and build packages in dependecy order.
- build - Build packages in dependency order. This tool assumes the sources are available.
- checkout - Fetch sources in dependecy order.
- build-order - Determine the order to build a set of packages, including any dependencies.