The goal is to efficiently and expressively manage pools of slaves whose resources can be distributed across a variety of build and test jobs.
- Declarative configuration
- Avoidance of boilerplate
- Multiple project support
A project aggregates:
- property requirements
- source repositories
- build procedures
- status reporting
A platform is a Python tuple describing a combination of properties such as os, compiler toolchain, architecture, python-version, emacs-version, etc.
A slave has properties that describe its platform capabilities. A slave property whose value is a list describes a list of possible values for that property. For example, a slave having Python 2.6 and Python 2.7 installed might have a python property with value [ '2.6', '2.7'].
Every project is built on every available platform that satisfies the project's requirements.
This framework is still under heavy development. It evolves in major ways as we discover the need for new capabilities.
Basically, it's short. Better names welcomed.