Not logged in - Log In / Register

Series: major stable and development branches

When we think of the way a project organises itself, there are some special branches: they represent major lines of development, and releases are "cut" from them. Typically these branches represent:

We call each of these "major" lines of development a "series", because they primarily represent a "series of releases of the same major version".

Note, there are usually multiple series for a given project, especially one that has produced stable releases. For example, a project might have a version 1.2 which is still supported, a 1.3 which is the "latest stable version" and recommended for new users, and a trunk which represents the current line of active development and is the source of snapshot test releases for the next stable version.

Take a look at the Zope3 project:

The stable and trunk series are shown in the "Timeline" section of the page:

The trunk series here is identified with the words "Current development focus".

Naming series

There's some flexibility in the way projects name and organise themselves. For example, in the GNOME project, the "development trunk" is a series with an "odd" version number, such as 2.17. When it is ready for release, it is branched with an "even" version number, such as 2.18. Once GNOME make the stable release, the branch it to create 2.19, the new "trunk".

Sometimes, projects also call the trunk "MAIN", a term from the days of CVS. In the Zope3 example above, the 3.4 series was the trunk at the time of writing.

For convention, we encourage projects to call their development focus "trunk" and leave it as the same branch over time. When creating a new stable series, branch from trunk, create the series and link the branch to that series. This ensures that people who create a checkout of "trunk" don't find that it goes stale because it has been turned into a stable series, suddenly. And those who checkout or branch from a stable series will get what they expect, too.

Series and branches

In Launchpad, each project can register multiple series. Each of those series can be associated with a branch. By default, if you don't specify which series you are interested in, you will get the current development trunk series (usually called trunk, but not always). For example, in the example where you branched GNU Hello, you typed:

This command specifies only the project name, so you would have been given the development trunk. If there was a 1.3 series with a branch associated with it, you could have typed bzr branch http://launchpad.net/gnuhello/1.3 and received the tip of that stable branch.

Note that this is different to the previous approach of branching from a specific person's version of a project. Here you are branching from one of the "major project branches", or series.

Not every series has a branch associated with it. Often, series are registered to handle a set of translations for a particular major version of the software, or so that bugs can be targeted there for release management. But we do encourage you to make sure, when you branch from trunk to make a new major stable release, that you set up a series for it and link the branch to it.

What if the project isn't yet using Bazaar officially, and code is being managed in CVS or Subversion? Launchpad can import the CVS or SVN trunk of the project and publish it for you as a Bazaar branch - and then keep it up to date so you can work entirely in Bazaar, merging from trunk whenever you want.

That's the next step in this tour.

FeatureHighlights/ProductSeries (last edited 2008-06-17 14:21:20 by localhost)