OldVersionNumbers

= Old OpenStack Version Numbers =

This applied for Diablo, Essex and Folsom.

Since we have two branches in parallel, we use version numbers that allow to upgrade from one to the other.

For projects with milestones and releases (Nova, Glance):


 * The master branch generates VERSION~DEVMILESTONE~DATE.TRUNKREV (nova-2011.3~d2~20110531.302.tar.gz)
 * The milestone-proposed branch generates VERSION~MILESTONE~DATE.rMPREV (nova-2011.3~d1~20110531.r301.tar.gz)
 * This gets copied at milestone delivery time to VERSION~MILESTONE (nova-2011.3~d1.tar.gz)
 * This gets copied at coordinated release time as VERSION (nova-2011.3.tar.gz)

For projects where milestones == releases (Swift):


 * The master branch generates VERSION~DATE.TRUNKREV (swift-1.4.1~20110531.302.tar.gz)
 * The milestone-proposed branch generates VERSION~DATE.rMPREV (swift-1.4.0~20110531.r301.tar.gz)
 * This gets copied at release time as VERSION (swift-1.4.0.tar.gz)

With:
 * VERSION being the version of the project under development (2011.3, 1.4.0)
 * DEVMILESTONE being the short name of milestone under development (d2) and MILESTONE being the milestone about to be released (d1)
 * DATE being under YYYYMMDD form
 * TRUNKREV is a sequential revision on master
 * MPREV is a sequential revision on milestone-proposed

Those (seemingly complex) version numbers actually ensure that you can smoothly upgrade in all scenarios (from trunk to milestone-proposed and back to trunk and to the final version...)