On 31-01-13 16:04, Derek Atkins wrote:
Geert Janssens <[email protected]> writes:

[snip]
Daggy fixing is probably not the only useful scheme though. I could
also imagine something like this to work:
- all bugfixes and only bugfixes happen on the 2.4 branch
- the 2.4 branch regularly gets merged into the development branch, so
all bugfixes also will end up in future releases
This concept is no longer back-porting, but
forward-porting. Advantage: all bugfixes eventually end up in the
active trees and git branches show the history, no need for BP->AUDIT

Note that neither daggy fixing nor forward porting are possible as
long as we're tied to svn. So this discussion is on future process,
not practical next steps yet.
Techncally we could do the "all bugfixes go into release; frequently
merge release back into trunk" method.  The downside is that larger
"fixes" dont get tested as much before going into the release.
You have point there, but here are some counter points:
- I think our bugfixing policy would still remain: only bugfixes that don't risk the stability of the release branch should go there. Larger fixes should only be done on the development branch. They wouldn't have been backported in our current process either - Also, git best practices really encourage to do larger development on separate branches. That would then also happen for larger fixes. If the developer doubts wether his larger change is ok for stable, he could request a review of his particular branch before merging it into stable. If it turns out the fix is too large or not appropriate for stable, the branch can be rebased on development and only merged there. Or variants thereof. I have even seen policy in other projects that ALL development happens on separate branches, and that no branch can be merged into the main development branch until at least one other dev has positively reviewed it. Our team is too small for such a strict policy IMO though. - Thirdly, if it is common habit that bugfixing happens on the stable branch, that automatically means the stable branch will have more testing, because several devs will be using it more frequently (for their bugfixes). It might even give us more testing, because the devs would be spending more time on that branch in general than they do in our current process.

How can we in the future improve our process to something in which the
history clearly reflects what actually happened, in which no work is
lost (by forgetting to backport) and without too much overhead.
And also test/review changes before they go into the release branch?
John's suggestion of test coverage is one way. Requiring all development to happen on separate branches and only merge after at least x reviews is another. Both are not very practical though currently.

Geert
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to