Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I've only been a member of Launchpad for about 3 months and I still am having trouble figuring out the terminology.

I have created a project with one branch - trunk. I have committed a few times to this branch.

I created a series called '0.1' and I want to provide a download. Last time I did that, I had to create a milestone or something. Whatever it was, I don't get it.

Can someone please explain:

  • series
  • releases
  • milestones

and the purpose of each?

share|improve this question
1  
lfaraone♦ said: LaunchPadIsNotCamelCase. –  Umang Aug 22 '10 at 15:18
    
Heh-heh... oops. Thanks for fixing. –  Nathan Osman Aug 23 '10 at 0:23
add comment

4 Answers

up vote 3 down vote accepted

I think Launchpad uses these words as they're more "generic" - they can be used for various styles of development without forcing a project to manage source code, develop and release in certain manner.

I see mainly two ways of developing a project on Launchpad:

  1. Your project's development is non-linear (not sure if this is the correct word). This is generally true if it is important for you to support more than one version at a time, while developing on an unstable/development branch. (Think developing two versions in parallel)

    For example, GNOME has versions x.y.z with odd y implying a development series and even y implying a stable series. GNOME releases 2.30 as stable for the world to use. After the release, developers start working on 2.31.x which is unstable. If they find any important bug that they'd like fixed for users running 2.30 without providing a huge number of unpolished new features, they fix just that bug in 2.30 and release 2.30.1. If you're familiar with bzr you should be able to understand this in terms of 2.31 being developed on trunk, while 2.30 is a branch of trunk (branched when 2.29 became stable and was released as 2.30) where only bug-fixes are made.

    In this case, you should make one series for each 2.29, 2.30, 2.31, etc and one trunk series. 2.29 and 2.30 will share the same bzr branch (since 2.30 is 2.29 after it is polished). 2.31 and trunk will share the same bzr branch. When you release 2.32, then branch trunk and call this branch 2.32 (that will be the bzr branch for both 2.31 and 2.32 series).

    An example of a milestone in this case is 2.30.2 (in the 2.30 series). A milestone differs from a release in that a milestone is a future release and once that version is released, the milestone becomes a release. This is why is makes sense to target a bug for a milestone (future) and you can make a bug affect only (say) two out of five series because it affects only two of them and should be fixed on their respective branches (probably the current stable release and trunk)

  2. Your project's development is linear. This means that you will release version 1.1 for everyone to use, keep developing features and fixing bugs until you are ready for 1.2 or 2.0 (or whatever you like). Then you release the latest available code. In this case, you aren't developing different versions in parallel, as illustrated by the series diagram on Launchpad).

    In this case, you have only one series, one bazaar branch (both called trunk presumably) and all your milestones and releases are in this one series (whether 0.1, 1.0, 1.1 or2.0)

The later is simpler. The former more apt when you need to provide bug-fixes while you work on big changes for a later version (more necessary when it isn't a solo project).

HTH

share|improve this answer
add comment

I agree it is quite confusing and not particularly well documented. This is my understanding:

A series is basically a set of releases. Normally you have a main development branch associated with a series called 'trunk' or something similar. You can have other series such as 'stable' with their own sets of releases. Confusingly, series can share or have separate bzr branches - I'm not sure what the best thing to do in this respect is.

Within a series, you have milestones. It seems you can only set one milestone at a time - you need to release your first milestone in order to set your second. Milestones will probably be your version numbers eg. 0.1, 0.2.

When you click 'Release now' to release a milestone, you will be able to upload files for download that correspond to that release.

The main points to this:

  • Branches are completely separate lines of development.
  • Series are parallel sets of releases.
  • Milestones are future releases and work in a linear fashion within one series.
  • Releases are past milestones that can have downloads associated with them.

(sorry for the circular definition here but thats how it works).

share|improve this answer
add comment

@George,

I think the question is valid here as Launchpad is used by Ubuntu and I dont think we want a seperate launchpad stack overflow as well. Did you find your answer in either the documentation or on #launchpad?

share|improve this answer
1  
Please consider posting your answer here: meta.ubuntu.stackexchange.com/questions/243 where it fits just a little better. And yes, the docs helped clarify a few things. –  Nathan Osman Aug 21 '10 at 20:27
add comment

There is some explanation in the documentation.

share|improve this answer
    
Can I create releases from series, or do I need a milestone? –  Nathan Osman Aug 21 '10 at 19:31
    
Ask in #launchpad. This isn't Launchpad Stack Overflow; LP is separate from Ubuntu. –  lfaraone Aug 21 '10 at 19:38
1  
@lfa: But I posted a question on Meta USE and at least two people thought this belonged here. –  Nathan Osman Aug 21 '10 at 20:00
    
@George: as I understand the documentation, you are supposed to make a milestone to do a release. (If not, feel free to poke the Launchpad team and tell them the docs are confusing...) –  JanC Aug 21 '10 at 20:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.