Release Schedules and Feedback on Fixes
Robert Brenstein
rjb at robelko.com
Fri Dec 15 19:04:35 CST 2006
> > Let me be very explicit with what I mean. If you branch 2.5 now and
>> keep fixing its bugs, by the time 2.6 is publicly released, the
>> 2.5.5, 2.5.9 or whatever release of the 2.5 branch should be really
>> stable, as in no known bugs.
>
>But if 2.6 is expected to be in 15-20 days only?
Well, the version numbers I used were just examples. If you plan next
public release within a month, then it may make little sense to
branch now but wait until it is out. On the other hand, if you
already use something like Subversion, you may do internal branch
just in case. All it takes is just a few cvs commands. Whether you
use or not, is a separate story.
>I can understand what you say if 2.6 could take 3-6 months.
>This is what is going to be for 3.0.
>
>They yes 100% agree:
> * we ship 2.6 as last 2.x release with major fixes.
> * we branch it
> - and start development SIGNIFCANT new features.
> - may be we will need yet ship 2.6.x during this months.
>
>With such plan I agree. Do you ?
Fine. In branching, the main development branch has no version per se
but is called HEAD. So whether you will head (pun intended) to 3.0 or
2.7, makes no difference at this stage. It matters only that you
formally branch 2.6, so it gets life on its own (even if it is only a
life support system :-)
Look for example at http://docs.moodle.org/en/images_en/8/8a/Cvstree.png
This picture depicts the branching tree for Moodle, another product
that I am deeply involved with (and which as I mentioned earlier
could be a new selling field for valentina -- Microsoft lately
sponsored them to support MSSQL and they used the money to develop a
generic database interface).
The picture illustrates nicely the concepts of branching. Substitute
"Moodle_1x" with "Valentina_2x" and you could have your branch tree.
The WIDGET branch below the trunk, by the way, is a private branch to
develop a major feature independent from the main development trunk,
and which was eventually merged into it.
> > Eventually comes 2.7. Now, if
>> there is no compelling reason (like a new feature) for my moving my
>> specific product to 2.6 or 2.7, I can keep it with Valentina 2.5 and
>> be happy.
>
>And here main trap:
>
> what if YOU find new bug in 2.5 build AFTER 2.7 is released?
>
> you will ask us make 2.5.1?
> I believe any company do not do this.
> they fix bug in 2.7.1 and say you - upgrade to 2.7.1, right?
Well, it all depends. If you know that there are many users still
relying on this branch and are affected by this bug, it may be worth
your trouble to fix it and release it as a plus release (an interim
release, essentially a beta on fixes applied to a branch) or a bigfix
release if the fixes are verified. If it is a minor problem and
affects few, you may let it go unfixed in 2.5 branch but fix in the
2.6 branch and the head.
In general, you would formally commit your self to maintain only the
last public branch. Of course, if your major (public) releases are
only 3 months apart, users may expect you to maintain the last two
branches.
It may sound scary, but with cvs and its features to propagate code
changes (bug fixes) between branches this is actually little extra
work for your team. The only thing that you need to maintain
(actually just consciously keep) is the compiler setup that is used
to produce each branch that is actively supported.
> > The complaint is really that as things are now, we don't have
>this luxury of
>> settling ourselves with a specific Valentina technology release because its
>> support is effectively dropped as soon as you move to working on the next
>> release.
>
>About dropped ... Well, can I ask Microsoft fix a bug in Visual 2003 C++ ?
>Today exists Visual 2005. I think they never will do that. Am I right?
The BIG guys seem to have their own ways of fixing bugs. I mean how
they decide what to fix and when. But if I am running Windows 98
compouter, I can still ask it to fetch the system updates and in fact
until recently I was still finding new security patches. Same is with
OS X. Regardless which major branch I have, i can still fetch all
updates that were available to the branch I am running, and 10.3 is
still getting security updates once a while even though 10.4 has been
out for quite a while.
But an operating systems may be not an optimal example. Go to
www.filemaker.com to their support pages and to downloads. The latest
version of Filemaker I bought was 4.1. I can still fetch the 4.1v3 to
update my 4.1 version. And so it is for any other major branch of
Filemaker within each product. The same was possible with CodeWarrior
while Metrowerks was still in business. I remember downloading CW8
updates while already running CWP3.
Yes, branching is not only about the actual bug fixing but as
important is the long-term availability of the updates in each branch
even if it is no longer actively supported.
>I think I understand what you say. And I think I remember the BIG change in
>1.x when we have introduce record locks. This have break existed code. You
>have point me that this is bad that new incremental update do such big
>changes in API/behavior.
>
>My understand is that on that moment we was need say: this is a 2.0 version
>- major release. Instead we still MANY YEARS did slow 1.x incrementing.
Yes, a good example. Like bugs, the development process itself has
its own life and unexpected turns :-)
Robert
More information about the Valentina-beta
mailing list