Releasing in a semver world (= 6.x)

2012-09-10 Thread Martijn Dashorst
We now live in a semver world and we need to agree on some basics: how
we are going to maintain and release our software.

From what I have heard from several folks in jira, mail, IRC and
direct communication is that we have basically 2 camps:

A. develop and release bug fixes until we we start developing for
minor/major releases 6.1 (and 7.0).

versus

B. develop and release minor releases, only backporting critical bugs
and releasing bug fix releases in case of critical bugs

As we are following semver, both are valid strategies.

Option A would require separate branches for 6.0.z, and 6.y
Option B would require only branches 6.y.z when critical bugs are
found—which should be rare.

Option A would probably result in some releases like:
 - 6.0.1, 6.0.2, 6.0.3, 6.1.0, 6.0.4, 6.1.1, 6.1.2, 6.1.3, 6.0.5, 6.2.0, 6.1.4

Whereas option B should result in releases like:
 - 6.1.0, 6.2.0, 6.3.0, 6.3.1, 6.4.0, 6.5.0, 6.4.1

What do you think?

Martijn


Re: Releasing in a semver world (= 6.x)

2012-09-10 Thread Emond Papegaaij
I opt for the strategy B. Semver dictates that bugfixes should not contain new 
features. If we stay on 6.0, we cannot add any new features. If I look at 
JIRA, I already see 6 fixed tickets marked as 'improvement': 4730, 4731, 4736, 
4745, 4746 and 4748. If we really want to follow semver, these should not be 
released in 6.0.1, but will have to wait for 6.1.0. I see no reason why our 
users would have to wait for these features, therefore, I'd say the next 
release should be 6.1.0.

Best regards,
Emond

On Monday 10 September 2012 14:31:14 Martijn Dashorst wrote:
 We now live in a semver world and we need to agree on some basics: how
 we are going to maintain and release our software.
 
 From what I have heard from several folks in jira, mail, IRC and
 direct communication is that we have basically 2 camps:
 
 A. develop and release bug fixes until we we start developing for
 minor/major releases 6.1 (and 7.0).
 
 versus
 
 B. develop and release minor releases, only backporting critical bugs
 and releasing bug fix releases in case of critical bugs
 
 As we are following semver, both are valid strategies.
 
 Option A would require separate branches for 6.0.z, and 6.y
 Option B would require only branches 6.y.z when critical bugs are
 found—which should be rare.
 
 Option A would probably result in some releases like:
  - 6.0.1, 6.0.2, 6.0.3, 6.1.0, 6.0.4, 6.1.1, 6.1.2, 6.1.3, 6.0.5, 6.2.0,
 6.1.4
 
 Whereas option B should result in releases like:
  - 6.1.0, 6.2.0, 6.3.0, 6.3.1, 6.4.0, 6.5.0, 6.4.1
 
 What do you think?
 
 Martijn


Re: Releasing in a semver world (= 6.x)

2012-09-10 Thread Igor Vaynberg
+1 for option B.

-igor

On Mon, Sep 10, 2012 at 5:31 AM, Martijn Dashorst
martijn.dasho...@gmail.com wrote:
 We now live in a semver world and we need to agree on some basics: how
 we are going to maintain and release our software.

 From what I have heard from several folks in jira, mail, IRC and
 direct communication is that we have basically 2 camps:

 A. develop and release bug fixes until we we start developing for
 minor/major releases 6.1 (and 7.0).

 versus

 B. develop and release minor releases, only backporting critical bugs
 and releasing bug fix releases in case of critical bugs

 As we are following semver, both are valid strategies.

 Option A would require separate branches for 6.0.z, and 6.y
 Option B would require only branches 6.y.z when critical bugs are
 found—which should be rare.

 Option A would probably result in some releases like:
  - 6.0.1, 6.0.2, 6.0.3, 6.1.0, 6.0.4, 6.1.1, 6.1.2, 6.1.3, 6.0.5, 6.2.0, 6.1.4

 Whereas option B should result in releases like:
  - 6.1.0, 6.2.0, 6.3.0, 6.3.1, 6.4.0, 6.5.0, 6.4.1

 What do you think?

 Martijn


Re: Releasing in a semver world (= 6.x)

2012-09-10 Thread Carl-Eric Menzel
+1 for B as well.

We also need to think about how we will actually *do* the branching,
and especially the merging. So far what I've seen were three totally
separate branches with only cherry-picking going in between them. In my
opinion, that's not a very good way to use git, which is far more
powerful than that.

I don't have time right now, but I hope to soon write a short article
on how we do it in my current project, and offer that up for comments.

Carl-Eric

On Mon, 10 Sep 2012 09:05:20 -0700
Igor Vaynberg igor.vaynb...@gmail.com wrote:

 +1 for option B.
 
 -igor
 
 On Mon, Sep 10, 2012 at 5:31 AM, Martijn Dashorst
 martijn.dasho...@gmail.com wrote:
  We now live in a semver world and we need to agree on some basics:
  how we are going to maintain and release our software.
 
  From what I have heard from several folks in jira, mail, IRC and
  direct communication is that we have basically 2 camps:
 
  A. develop and release bug fixes until we we start developing for
  minor/major releases 6.1 (and 7.0).
 
  versus
 
  B. develop and release minor releases, only backporting critical
  bugs and releasing bug fix releases in case of critical bugs
 
  As we are following semver, both are valid strategies.
 
  Option A would require separate branches for 6.0.z, and 6.y
  Option B would require only branches 6.y.z when critical bugs are
  found—which should be rare.
 
  Option A would probably result in some releases like:
   - 6.0.1, 6.0.2, 6.0.3, 6.1.0, 6.0.4, 6.1.1, 6.1.2, 6.1.3, 6.0.5,
  6.2.0, 6.1.4
 
  Whereas option B should result in releases like:
   - 6.1.0, 6.2.0, 6.3.0, 6.3.1, 6.4.0, 6.5.0, 6.4.1
 
  What do you think?
 
  Martijn



Re: Releasing in a semver world (= 6.x)

2012-09-10 Thread Johan Compagner
I am interested in your article..
How else to really do it then cherry picking.. but I guess h that also
depends where you do you're good first?
I always start at their lowest version I want to fix it and forward port
it, almost never do back ports
Op 10 sep. 2012 19:33 schreef Carl-Eric Menzel cmen...@wicketbuch.de
het volgende:

 +1 for B as well.

 We also need to think about how we will actually *do* the branching,
 and especially the merging. So far what I've seen were three totally
 separate branches with only cherry-picking going in between them. In my
 opinion, that's not a very good way to use git, which is far more
 powerful than that.

 I don't have time right now, but I hope to soon write a short article
 on how we do it in my current project, and offer that up for comments.

 Carl-Eric

 On Mon, 10 Sep 2012 09:05:20 -0700
 Igor Vaynberg igor.vaynb...@gmail.com wrote:

  +1 for option B.
 
  -igor
 
  On Mon, Sep 10, 2012 at 5:31 AM, Martijn Dashorst
  martijn.dasho...@gmail.com wrote:
   We now live in a semver world and we need to agree on some basics:
   how we are going to maintain and release our software.
  
   From what I have heard from several folks in jira, mail, IRC and
   direct communication is that we have basically 2 camps:
  
   A. develop and release bug fixes until we we start developing for
   minor/major releases 6.1 (and 7.0).
  
   versus
  
   B. develop and release minor releases, only backporting critical
   bugs and releasing bug fix releases in case of critical bugs
  
   As we are following semver, both are valid strategies.
  
   Option A would require separate branches for 6.0.z, and 6.y
   Option B would require only branches 6.y.z when critical bugs are
   found—which should be rare.
  
   Option A would probably result in some releases like:
- 6.0.1, 6.0.2, 6.0.3, 6.1.0, 6.0.4, 6.1.1, 6.1.2, 6.1.3, 6.0.5,
   6.2.0, 6.1.4
  
   Whereas option B should result in releases like:
- 6.1.0, 6.2.0, 6.3.0, 6.3.1, 6.4.0, 6.5.0, 6.4.1
  
   What do you think?
  
   Martijn