Software Release Patterns

Hi,

What sort of strategies do you usually use to manage software releases? Let say you have released Version 1.0 of your product, and you are actively developing version 2.0. How do you patch 1.0's bugs? I imagine most people would use branching to solve this issue. However, there are a lot of problems with branching too. What are your best practices?

Thanks.

[389 byte] By [anonpa] at [2007-9-29 16:08:33]
# 1

I've never used it (unfortunately) but supposedly CVS has a very good merge feature that allows you to bring changes in concurrently. I don't see that there is any option but to deal with the bugs in boeth versions. Sometimes, changes in the new version make it so that you only have to fix it in the old verison but if you haven't changed the old code with the bug in it, you'll have to bring those modifications in to the new version one way or the other.

dubwaia at 2007-7-15 14:19:46 > top of Java-index,Other Topics,Patterns & OO Design...
# 2

A generally useful website for developers to check once in a while is

http://www.pragmaticprogrammer.com/

One of the many usefull resources they have available is a book called "Pragmatic Version Control".

http://www.pragmaticprogrammer.com/starter_kit/vc/index.html

You can buy the PDF download for $20 US.

I have purchaced it, and it's easily worth the $20, if not more. It is both an introduction and guide to using CVS as well as "patterns" and principles for using version control effectively.

mgbolusma at 2007-7-15 14:19:46 > top of Java-index,Other Topics,Patterns & OO Design...
# 3

I have followed different strategies, depending on scenario.

Most of the time the projects I work on are for just one customer and we do very frequent updates (e.g. every other week) In theses cases, bug fixes get integrated in the new version, which might get deployed within a couple of hours (or even minutes when the fixes are small but important)

In some of the cases the application is more like a product. In these cases you need to branch. I prefer the following process:

- write a testcase that covers the bug on the production version and on the development version.

- Fix it in the production version.

- If the fix in the development version is more or less identically include the fix in there as well.

- If not the next full release the bug will be fixed as well, since it is documented as a testcase. And the release won't be ready until it satisfies the testcase as well.

regards

Spieler

spielera at 2007-7-15 14:19:46 > top of Java-index,Other Topics,Patterns & OO Design...