D 1.076 and 2.061 release
Pierre Rouleau
prouleau001 at gmail.com
Mon Jan 7 20:17:24 PST 2013
On 13-01-07 9:12 AM, Matthew Caron wrote:
> On 01/07/2013 08:09 AM, Pierre Rouleau wrote:
>> It would be nice to have bug fixes separated from new feature
>> introductions by having major and minor releases and branches for these
>> releases. Contributors of a release could backport bug fix in the
>> release they use if that was required by their project using the now old
>> compiler version.
>>
>> Of course I realize that this means more overall work, more people,
>> someone or a set of people in charge of release management, etc...
>
> I also think that you'd be hard-pressed to find anyone who does
> development like that, proprietary or open source. It's not uncommon to
> have bugfix only releases, but having a new features release that
> doesn't fix any bugs is, in my experience, unheard of.
I agree that feature releases mostly also contain bug fixes. I should
have said, and I was thinking about proposing a process where minor
releases that would only include bug fixes, and where major releases
would mainly introduce new features but would also include some bug fixes.
At work this is exactly what we do. And today, at work, I was just in a
meeting evaluating bugs to identify bugs that will be fixed in a release
of our product that will only contain bug fixes. The fixes that are
selected where selected based on their severity, the impact they have on
end-users and the time it takes to fix them.
And maybe an alpha process suggested by Jonathan M. Davis is a better idea.
>
> Also, I'd be STRONGLY against it, because I have a fix bugs first
> mentality, and if you find a bug while implementing a new feature, it
> should be fixed.
>
In my work I also have a bug-fix first mentality and I push for that
everyday. I strongly agree with that. All I was suggesting (or checking
if this is the way this group handles it) is whether bug fixes are
isolated from feature implementations (and I assume they are since they
are separate Bugzilla tickets).
And at work, when a new feature is implemented and a bug is found during
the process of developing that feature the first thing that is done is
to create a _separate_ bug report ticket (separate from the ticket that
request the introduction of the new feature or enhancement) to identify
the presence of that bug if that bug affects release code. The releases
the bug affects are identified and typically within a week, the bug is
"scrubbed" in a meeting where people with different roles attend. The
priority and severity of the bug is discussed, and the release version
for the fix is identified in a forecast. Developer(s) have to estimate
the time it will take to fix the bug (as is done for every ticket in our
bug tracking system (bug fix, feature implementation, enhancement,
etc...). A test case is also created for the bug since it was an escape
from the test plan/integration test/unit test side of things.
The bug is fixed, regression tested and the new feature is implemented
on top of the bug fix. The sequence of events may differ depending on
how we want to handle things with the VCS we use and the moment of the
event respective to the product release plan.
I am not suggesting to not fix a bug found when a new feature is
introduced. I was trying to propose something that would help
predictability and stability.
Now I understand that I am comparing a commercial product development
with an open source project here. But I am also comparing what a user
*sees* from other projects that are used where I work; the PR part, the
marketing material that help sells the product to people. When I look
at Python and Erlang for instance, those two projects seem, I say seem
(from the user's perspective) to provide more information to the user's
base in terms of those two criteria of predictability and stability
simply because of the various documents provided and release strategies
one can see from the evolution of their projects.
It possibly is only a matter of perception and Public Relations but D2
first release was done June 17, 2007 which is over 5 years and six
months ago. I see nothing in the release version number that gives any
outsider a vision of the stability of D2 or it's evolution
milestone-wise. The first release number was D 2.000 and we are 66
months later at version 2.061. That's about a release a month. How can
an outside user see the major milestones in those 5 years and a half? I
imagine that some of you guys remember what were the significant
releases, you have been living with it for those last 66 months. But
how can you convince potential new users to use it in projects where
manpower is also limited and continuous updates may not be possible?
How can they see that its stabilizing? How many more releases may affect
the development of products? In June 2007 I was using Python 2.5.1,
Python 2.7.3 and 3.3.0 are the two official releases now. All of these
versions have had bug fix (and security) releases independently of the
other ones. These versions had reached a point of finality. I have not
yet switched to Python 3.3 for production code but have upgraded from
2.5 to 2.6 and 2.7. Each time we looked at the major changes prior to
the upgrades to identify the amount of work required in order to
schedule it in the work flow. I have also upgraded from minor to minor
releases much quicker. We do the same for Erlang. To be able to use D
at work for product development, I will have to be able to do the same.
And now I understand that D1 is no longer officially supported. If I
understand properly D1 first release was 6 years ago. Lets assume I
would have started a product development with it say 2 years ago because
it was deemed relatively stable then. And now I want to support 64-bit
Windows and my customers are starting to ask for Windows-8 support. Or
some other things gets in the way (a bug somewhere, Windows 9 getting
released sooner because Windows 8 is not as popular as Microsoft would
have hoped.) What would be my alternatives? Port all the code to D2? Is
this what will happen to D2? I'd like to know before I commit people and
convince others.
At the moment what I see of the current state is that if I am
interested, I should join the developers group and use D for fun and
expertise. I just hope that I am missing something (beside the fun and
expertise) that could help convince myself and others that I could
depend on D for product development at work.
BTW, the proposal from Andrei to implement a "pre-approved"
non-prioritized enhancement request mechanism seems a very good idea and
a step in the good direction IMHO (from the outside).
--
/Pierre Rouleau
More information about the Digitalmars-d-announce
mailing list