Builds project module
This article documents the development of the Builds "project" module, which is responsible for managing projects versions.
The Symptom
Developers spend a lot of time downloading, building and testing base libraries. Even worst, they also spend a lot of time finding the responsible for errors in these libraries and waiting for a immediate solution.
The Problem
Developers should not have to worry about the base libraries. It should have some kind of warranty in the libraries used by developers, certifying that they are compiling and running.
The Solution
The solution comes in two parts:
Continuous Integration
Automatically generate the base-libraries and run their tests in a concise version, that means, all the libraries have a warranty to work together.
Builds Project Module
Provide a way to control the projects versions, providing information such as the current local version (sources/binaries) and the remote version (binaries only).
The following use-cases must be contemplated:
- Add a project to the list
bb project.load
- Remove a project from the list
bb project.unload
- List the registered projects, including the local version and remote version of the binaries
bb project.list
- Set the local version to a stable version
bb project.stable
- Set the local version to the HEAD version (for local development)
bb project.head




It seems that project.stable and project.head are not actually like that...
bb project.update --all: will get all the stable ones
bb project.update projectname --head: will get the head for the project
bb project.update projectname --stable: will get the stable version for the project
It seems that project.stable and project.head are not actually like that...
bb project.update --all: will get all the stable ones
bb project.update projectname --head: will get the head for the project
bb project.update projectname --stable: will get the stable version for the project