Re: RFC: updated workflow [WAS: Re: git+patch workflow]



> delete *the* stable branch, but not the concept of stable branches per
> se. doing so would mean that once you merged a feature patch to master,
> you cannot do a bugfix release any more until you make a feature release
> (*). to keep the option of bugfix releases open (and distributors really
> want that), one should always make a release branch from master (say,
> 4.6) and branch for bugfix patches from that branch. then one can make
> a bugfix release (say, 4.6.3) from the 4.6 branch at any time. the
> release branch is merged into master (but not the other way round) after
> each fix. of course that requires upfront planning whether a particular
> patch needs to go into a possible bugfix release, but given the patch
> branch process, you have a good start for that (the proposal in your
> next mail seems reasonable).
This was the way I planned it actually before writting my email. After 
rethinking the stuff I thought it would also be possible to only work with 
master without having stable branches. 
The disadvantage is that a pure bugfix release won't be possible (since master 
is also used for development.)

Okay as I think think this makes sense:

[copy & paste from a older mail]:
 - if a ticket contains a patch the acceptor of this ticket create a branch 
(*) 
with this patch applied 
 - people can test it there and comment in this ticket
 - if they have an enhancment they can fix it in git (and push it to the server 
of course ;-)) and add a updated patch (for tracking the issue) to the 
bugreport. If the patch in it's latest version is acked the branch get merged 
back into the parent branch. Then we have only one ack step and not two 
anymore.

(*): based on, wether it should be a bugfix for a stable tree, mc-4.6 or if it 
should be a new feature, on master. If created on a stable release branch this 
fix is also merged back after it is applied on the release branch into the 
master branch.

Now, how to handle the ticket states with this workflow:
After a ticket is created it is new.. When someone accepts it it is set to
accepted. When someone has a patch which is worth to be added to a git branch, 
this should be done. Then the ticket can be set to testing as this is 
currently the case (We test if the patch is okay). If two people acked the 
patch (they really should test it and not only look on the sourcecode), the 
branch with the fix inside will be merged by the acceptor of the ticket this 
branch belongs too, into the appropiate branch (e.g. mc-4.6 or master). Then 
the ticket will be set to closed.

The same if we develop after 4.6.2 own new stuff: 
 A ticket is opened with the idea inside... Someone develops a new feature 
based on master in a  branch. After he thinks that this task is done he adds a 
patch to the report and set the report to testing. Then someone can look at 
his work  and comment in the ticket. After the patch is fine this branch get 
merged into master (and the ticket is closed).

>
> (*) actually, one can retroactively create a release branch from a
> past master revision on demand. anyway, that results in a mess, as the
> need for cherry picking is practically guaranteed in that case. on top
> of that, the release process as such becomes a mess ("if a release
> branch exists, tag there, otherwise tag on master. think of this, don't
> forget that, and, oh, if you are religious: pray").
This is a mess and was never intended :) 

Greetings
Winnie

-- 
 . '' ` .   Patrick Winnertz <winnie debian org>
:  :'   :   proud Debian developer, author, administrator, and user
`. `'`     http://people.debian.org/~winnie - http://www.der-winnie.de
  `-  Debian - when you have better things to do than fixing systems

Attachment: signature.asc
Description: This is a digitally signed message part.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]