Branches and releases

How does the Piwigo release system work? What is the difference between the release 2.7.4 and release 2.8.0?

Releases

A release is a snapshot of the code. Release 2.8.1 will never be modified, if needed, version 2.8.2 will be released. The snapshot is taken on a branch: release 2.8.1 is taken on branch 2.8. A branch evolves through improvements and bugs fixing.

Branches with a graph

A bit old school, but easy to embed in a wiki, so let's draw a ASCII art graph of branches and releases:

+----------------------------+
| trunk (SVN) / master (Git) |
+----------------------------+
  |
  | 1.3.0RC1 r158 2003-09-21
  | 1.3.0RC1 r181 2003-10-05
  | 1.3.0    r205 2003-10-12
  |
  +-------- branch 1.3 ----------+
  |                              | 1.3.1    r379  2004-02-28
  |                              | 1.3.2    r448  2004-06-29
  |                              | 1.3.3    r551  2004-10-03
  | 1.4.0RC1 r683 2005-01-09     |
  |                              | 1.3.4    r713  2005-01-20
  | 1.4.0RC2 r718 2005-01-21
  | 1.4.0RC3 r741 2005-02-13
  | 1.4.0    r750 2005-03-12
  |
  +-------- branch 1.4 ----------+
  |                              | 1.4.1    r790  2005-05-14
  | 1.5.0RC1 r871 2005-09-21
  | 1.5.0RC2 r907 2005-10-22
  |
  +-------- branch 1.5 ----------+
  |                              | 1.5.0    r929  2005-11-08
  |                              | 1.5.1    r978  2005-12-10
  |                              | 1.5.2    r989  2005-12-25
  |
  +--------- branch 1.6 ---------+
A |                              | 1.6.0RC1 r1263 2006-04-24
L |                              | 1.6.0RC2 r1319 2006-05-23
L |                              | 1.6.0    r1432 2006-07-04
I |                              | 1.6.1    r1482 2006-07-18
G |                              | 1.6.2    r1599 2006-11-09
A | Alligator1 r1709 2007-01-10
T | Alligator2 r1787 2007-02-07
O | 1.7.0RC1   r1825 2007-02-15
R | 1.7.0RC2   r1938 2007-04-06
  |
  +-------- branch 1.7 ----------+
B |                              | 1.7.0    r1999 2007-05-05
U |                              | 1.7.1    r2193 2008-01-24
T |                              | 1.7.2    r2457 2008-07-24
T | Butterfly1 r2492 2008-08-31  |
E | Butterfly2 r2522 2008-09-12  |
R |                              | 1.7.3    r2762 2008-09-16
F | 2.0.0RC1   r2615 2008-09-27
L | 2.0.0RC2   r2658 2008-10-04
Y |
  +-------- branch 2.0 ----------+
C |                              | 2.0.0RC3 r2732 2008-10-13
O |                              | 2.0.0RC4 r2866 2008-11-12
L |                              | 2.0.0    r3153 2009-02-15
I |                              | 2.0.1    r3210 2009-03-17
B |                              | 2.0.2    r3276 2009-05-06
R |                              | 2.0.3    r3526 2009-07-05
I |                              | 2.0.4    r3868 2009-09-19
  |                              | 2.0.5    r4016 2009-10-11
  |                              | 2.0.6    r4209 2009-11-05
  |                              | 2.0.7    r4533 2009-12-19
  |                              | 2.0.8    r4754 2010-01-26
  |                              | 2.0.9    r5013 2010-03-01
  | 2.1.0RC1   r5410 2010-03-27  |
  | 2.1.0RC2   r5848 2010-04-14  |
  | 2.1.0RC3   r6015 2010-04-30  |
  |                              | 2.0.10   r6117 2010-05-11
  |
  +-------- branch 2.1 ----------+
  |                              | 2.1.0    r6202 2010-05-18
  |                              | 2.1.1    r6347 2010-05-25
  |                              | 2.1.2    r6630 2010-06-29
  |                              | 2.1.3    r6914 2010-09-14
  |                              | 2.1.4    r7506 2010-10-30
  |                              | 2.1.5    r7612 2010-11-04
  | 2.2.0RC1   r8811 2011-01-20  |
  |                              | 2.1.6    r8857 2011-01-24
  | 2.2.0RC2   r9116 2011-02-08
  | 2.2.0RC3   r9373 2011-02-25
  | 2.2.0RC4   r9618 2011-03-11
  | 2.2.0      r9955 2011-04-01
  |
  +-------- branch 2.2 ----------+
  |                              | 2.2.1    r10437 2011-04-17
  | 2.3.0beta1 r11186 2011-06-01 |
  |                              | 2.2.2    r11198 2011-06-01
  |                              | 2.2.3    r11288 2011-06-10
  | 2.3.0beta2 r11591 2011-07-01 |
  |                              | 2.2.4    r11755 2011-07-15
  | 2.3.0beta3 r11847 2011-07-29 |
  |                              | 2.2.5    r12024 2011-08-31
  | 2.3.0RC1   r12040 2011-09-02
  | 2.3.0RC2   r12134 2011-09-12
  |
  +-------- branch 2.3 ----------+
  |                              | 2.3.0    r12345 2011-10-04
  |                              | 2.3.1    r12582 2011-11-07
  |                              | 2.3.2    r12766 2011-12-19
  | 2.4.0beta1 r12829 2012-01-02 |
  | 2.4.0beta2 r13020 2012-02-02 |
  |                              | 2.3.3    r13160 2012-02-14
  | 2.4.0RC1   r13480 2012-03-06 |
  | 2.4.0RC2   r13883 2012-03-06 |
  |                              | 2.3.4    r13969 2012-04-08
  | 2.4.0RC3   r14584 2012-04-30 |
  |                              | 2.3.5    r15795 2012-06-16
  |
  +-------- branch 2.4 ----------+
  |                              | 2.4.0    r15936 2012-06-22
  |                              | 2.4.1    r16335 2012-07-03
  |                              | 2.4.2    r17150 2012-07-26
  |                              | 2.4.3    r17170 2012-07-27
  |                              | 2.4.4    r18273 2012-09-26
  |                              | 2.4.5    r18699 2012-10-19
  | 2.5.0beta1 r18732 2012-10-25 |
  | 2.5.0beta2 r18947 2012-11-06 |
  | 2.5.0beta3 r19070 2012-11-20 |
  |                              | 2.4.6    r19466 2012-10-17
  | 2.5.0RC1   r20546 2013-02-04 |
  |                              | 2.4.7    r20857 2013-02-19
  | 2.5.0RC2   r20986 2013-02-23 |
  |
  +-------- branch 2.5 ----------+
  |                              | 2.5.0    r21187 2013-03-04
  |                              | 2.5.1    r22301 2013-04-19
  | 2.6.0beta1 r23485 2013-06-23 |
  |                              | 2.5.2    r23524 2013-06-24
  |                              | 2.5.3    r25175 2013-10-26
  | 2.6.0beta2 r25291 2013-11-01 |
  | 2.6.0RC1   r25595 2013-11-19 |
  | 2.6.0RC2   r25932 2013-12-12 +----------------------------+
  |                                                           |
  +-------- branch 2.6 ----------+                            |
  |                              | 2.6.0    r26828 2014-01-17 |
  |                              | 2.6.1    r26960 2014-01-24 |
  |                              |                            | 2.5.4    r27935 2014-03-25
  |                              | 2.6.2    r27952 2014-03-26 |
  | 2.7.0beta1 r28616 2014-06-03 |                            |
  |                              | 2.6.3    r28676 2014-06-11 |
  |                              |                            |
  |                              |                            |
  | 2.7.0beta2 r28899 2014-07-01 |                            +----------------------------+
  | 2.7.0RC1   r29261 2014-08-24 |                                                         |
  | 2.7.0RC2   r29555 2014-09-16 +----------------------------+                            |
  |                                                           |                            |
  +-------- branch 2.7 ----------+                            |                            |
  |                              | 2.7.0    r29768 2014-09-24 |                            |
  |                              | 2.7.1    r30015 2014-10-12 |                            |
  |                              | 2.7.2    r30569 2014-11-21 | 2.6.4    r30570 2014-11-21 | 2.5.5    r30571 2014-11-21
  |                              | 2.7.3    r30868 2015-01-08 | 2.6.5    r30869 2015-01-08 | 2.5.6    r30870 2015-01-08
  |                              | 2.7.4    r30974 2015-02-16
  |
  | switch to Github  2015-09-05
  | 2.8.0RC1   5c57d8 2016-01-14
  | 2.8.0RC2   c4b797 2016-02-01
  |
  +-------- branch 2.8 ----------+
  |                              | 2.8.0    507c93 2016-03-08
  |                              | 2.8.1    f0d29d 2016-05-04
  |                              | 2.8.2    374f34 2016-07-08
  |                              | 2.8.3    bbae78 2016-11-22

Release numbers : x.y.z

A release name is always composed of 3 numbers + optional suffix.

  • x : the major release number
  • y : minor release number, includes new features compared to previous minor release
  • z : correction number, includes bugs fixing compared to previous correction release

Parallel working

Working with branches let us push correction releases on an old branch even if a new branch has been available. For example, if you find some major/security bugs in release 2.7.4, Piwigo team may release version 2.7.5 even if 2.8.2 has already been out for months.

Beta, Release Candidate, Final

When preparing a release, it has to be tested and qualified. Piwigo development team works as follows:

  1. release x.y.zbetaN are first available. This release is designed for test by early adopters. It is obvious for the dev team that this release may contain many bugs. The purpose is to discover new features, even if still unstable…
  2. release x.y.zRCn (n goes from 1 to… you can't know how far it can go…). Once many bugs have been corrected from the list made in releases x.y.zbetaN, dev team proposes a Release Candidate 1. Testers give the list of found bugs and after a (short) while, dev team proposes RC2. And so on.
  3. release x.y.z (the final one) must be exactly the same than the last Release Candidate, without any known bug.

Example : 2.7.0beta1 » 2.7.0beta2 » 2.7.0RC1 » 2.7.0RC2 » 2.7.0

 
Back to top
about/release_and_branchs.txt · Last modified: 2016/11/22 19:20 by plg
 
 
github twitter facebook google+ newsletter Donate Piwigo.org © 2002-2017 · Contact