Orchestrate Installation of Software Packages
Orchestrate automates the installation suites of packages from source.
Details of the design and use of Orchestrate are in the doc/orchestrate.org.
The orchestration is driven by a suite description file using a Python-based application and per-package Bash scripts.
Python versions before and including 2.4 is not supported. Python 2.7 is recommended. Other versions are not guaranteed to work.
Orchestrate installs as a Python package in a few ways. Which way is best to use depends on what the build host provides. Each method is described below.
If the build host lacks a sufficiently new version of Python and/or virtualenv
then it is recommended to use the ./bash/bootstrap.sh script to install these. To do that:
cd orchestrate/ ./bash/bootstrap.sh /path/to/venv [/path/to/temp]
If no temporary directory is given, one is generated in /tmp
.
After the bootstrap completes successfully the temporary directory may be removed.
The resulting installation can be “activated” using the standard virtualenv
mechanism:
source /path/to/venv/bin/activate
and later “deactivated” via:
deactivate
If you want to provide your own Python environment it is still recommended to install Orchestrate into a virtualenv
.
virtualenv /path/to/venv
Then, install Orchestrate as described in the next section.
Given an existing, suitable Python environment the orchestrate package can be installed with, for example, pip
:
pip install /path/to/orchestrate-X.Y.tar.gz
Orchestrate can be run directly from the source if a suitable Python environment exists. All that is needed is to locate its Python modules.
export PYTHONPATH=/path/to/orchestrate/python
T.b.d, provide online PyPi-style package repository and configuration instructions.
Orchestrate is run via the command orch
.
orch [global options] <command> [command options]
An invocation that runs an example:
./orch -s examples/larsoft/shims -c examples/larsoft/suite.cfg list
The doc/orchestrate.org doc should be consulted. The ./tests/test.cfg file is a simple example used by the tests. There are also examples configuration files and package shims in the examples directory.
There are many unit tests. If the nosetests
program is installed it can be run from the top level source directory, after setting PYTHONPATH
to point to the orchestrate/python
directory, in order to run all tests. Or, tests can be run one at a time directly. For example:
python tests/test_app.py