A recipe is just text that starts with a line such as:
# bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
The format specifier is there to allow the syntax to be changed in later versions, and the meaning of "deb-version" will be explained below.
The next line specifies the base branch, this is the branch that will be used to define the initial files and directory structure.
Next comes any number of lines of other branches to be merged in, but using a slightly different format. To merge a branch in to the base specify something like:
merge packaging lp:~foo-dev/foo/packaging
which specifies we are merging a branch we will refer to as "packaging", which can be found at the given URI. The name you give to the branch as the second item doesn't have to match anything else, it's just an identifier specific to the recipe.
Read more > on recipe syntax for other commands and specifying revisions for the branches.
To build Debian source package that you desire you should make sure that "deb-version" is set to an appropriate value on the first line of your recipe. This will be used as the version number of the package. The value you put there also allows for substitution of values in to it based on various things when the recipe is processed:
{date}
— will be substituted with just the
current date, such as 20090819
{debupstream}
— will be replaced by the
upstream portion of the version number taken from debian/changelog
in the final tree. If when the tree is built the top of
debian/changelog has a version number of "1.0-1
" then
this would evaluate to "1.0
".
{revno}
— will be the revno of the base branch
(the first specified){revno:<branch name>}
— will be
substituted with the revno for the branch named <branch name>
in the recipe{time}
— will be substituted with the current
date and time, such as 200908191512
Read more > on recipe syntax for other commands and specifying revisions for the branches.