On Thursday 26 April 2007 05:25, David Boyes wrote:
> > This refers to the fact I will not be happy to have to spend any more
> of
> > my
> > time on this bug, and when I am not happy about events, I usually take
> > some
> > steps to avoid their re-occurrence in the future.
> > I expect the bug to be fixed and quickly, but this is a volunteer
> project
> > so
> > it is up to you guys to decide.
>
> While I can understand frustration when something seems to be slipping
> through the cracks, I'm not sure that continuing to criticize Robert and
> Landon in public is accomplishing anything useful. An off-list
> discussion between the three of you may be more fruitful.
>
Perhaps you are right, and I understand that a number of people may be
surprised or even shocked to hear a certain level of criticism because
generally most all criticism has done off list.
In this case, there is a much bigger issue here, and the subject merits
discussion. I've specifically copied the Bacula users list on this email so
that everyone can see my point of view
The main issue here is that my time is limited. It does not scale with the
size of the project.
As a consequence, I have decided that I will not personally "support" all
platforms, as I have done in the past. Note, this is a personal decision,
and criticisms of this decision such as "your reasons are not valid" don't
hold water with me when it concerns how I use my own time.
For a platform to be officially "supported" by Bacula, I feel there are a
minimum of three things that are required. This is nothing new, it may not
have been explicitly stated, but it has always been part of the Bacula
project philosophy:
1. The regression scripts are run regularly and on demand.
2. The platform is fully documented in the manual.
3. There are one or more persons that will respond to platform specific bugs
in a timely basis.
I will put the above someplace in the manual or perhaps the Developer's Guide
so that it is clear. Please note, that there are many other Client packages
that are "known to work". They may be partially documented in the manual,
but no regression scripts are run on them, and bug fixes come from submitted
patches. Such packages are not "officially" supported as Linux, Solaris,
FreeBSD, and the Win32 client have been.
I will continue to do the above tasks as I have done in the past for Linux (in
particular the platform I am running, and to a lesser extent for the Win32
Client, though that really should be 100% handled by a Windows person).
The point was/is that I will no longer provide the above services for Solaris,
FreeBSD, and Win32, which means that unless something changed, they would be
no longer supported. The status of those are as of today:
Solaris, FreeBSD:
Item 1: regression testers "signed" up.
Item 2: already documented in the manual
Item 3: problematic, but I will work with the regression testers until
appropriate developers are found. In any case, these
platforms have very few problems since their underlying
API is the same as Linux in most cases.
They will very likely remain supported, but there is still a lack of
developers for them.
Windows (note we are talking about the new server code rather than
the client):
Item 1: Unknown
Item 2: Documented in a README but not in the manual.
Item 3. Unknown. I do not offer to work on the servers, and
this platform needs a good deal of developer attention
because the underlying API is significantly different from
Unix/Linux.
============
What you may not understand because I haven't been able to clearly formulate
it until now is that this decision, and more particularly certain of the
reactions to it have profoundly changed the nature of the Bacula project. Up
to today, the project has worked a bit as follows:
1. Kern is project manager, but does not want to be a "gate keeper".
2. Developers are quickly accepted into the project and in a very short
period (typically a week or so) have full SVN write permission.
3. There are growing numbers of contributions (very good).
a. Some contributions come in the form of relatively small patches, which
Kern reviews, integrates, documents, tests, and maintains.
b. The other source of contributions, which is also growing (very good)
has been direct commits from developers. Typically, I look at these
submissions in a summary fashion. For most of the code submitted
in this way, I have not reviewed it in detail, and have not integrated
it (the developer did so). However, I generally document it in the
manual, write the regression test if any, test it, and then maintain it.
c. A minority of the developers (there are thank God some), take full
responsibility for writing the code, posting as patches so that I can
review it as time permits, integrating it at an appropriate time,
responding to my requests for tweaking it (name changes, ...),
document it in the code, document it in the manual (even though
their mother tongue is not English), test it, develop and commit
regression scripts, and answer in a timely fashion all bug reports --
even occassionally accepting additional bugs :-)
4. Now what I have realized is
Item 3.a will continue and is a normal event for any open source project.
Item 3.b is unsustainable because it does not scale (my time is limited),
it is not very professional because the code is not really fully
supported, and in the long term will slow down development of the
project (IMO). This mode of development is going to disappear.
Item 3.c is a sustainable way of going forward with Bacula, and the
direction that the project will be taking. It is not in itself a complete
solution to the lack of developers, but it is a *big* step forward. For
example, in the past, we have had some very dedicated programmers
who did major projects as described in item 3.c, however, those
programmers due to outside obligations (job responsibilities change of
job, school duties, ...) could not continue to maintain the code. In
those cases, the code suffers from lack of maintenance, sometimes I
patch it, sometimes not. In the end, the code gets dropped from the
project (there are two such contributions that are heading in that
direction).
So, this current "frustration" as you call it has accelerated the process of
transitioning from a development environment as described in 3.b to one
described in 3.c.
In the future, you will see me acting more as a gate keeper rather than simply
accepting all submissions, and developers will have slightly less freedom for
direct commits (changes in items 1 and 2). Tightening the development
requirements and acting as a gate keeper doesn't particularly please me, but
I see no other way of going forward.
I've started the process by documenting it above (it will go into the
development manual), in addition, I have removed all the developers from the
project who have not already signed the FLA (Fiduciary License Agreement).
None of them had write access to the SVN, and so there seems to be little
reason to keep them listed. If any of those developers would like write
access or to be re-listed, I'll be very happy to discuss it and add you back,
please contact me off-list.
=====
I have previously mentioned this, but perhaps it merits being said again.
Concerning my personal use of time in Bacula, much of it will continue as
before, though new code will now be handled in a different manner with much
more responsibility placed on the developers rather than on me. The other
major aspect is that I will be focusing my efforts on helping Bacula
penetrate the "commercial" sector, and I plan to do that by working with 3rd
party Bacula professional service companies to provide quality support Level
2 support to commercial clients. My contribution will be to help these
service companies get recognition, standardize their methology, provide
certification of their services, help them obtaining contracts, and providing
level 3 support to them should they need it. The primary goal of this is to
ensure wide spread qualified "independent" professional support for Bacula so
that enterprises will have a real alternative to the commercial backup
vendors. I won't explain all the details here, but this will also
significantly improve the margins of these 3rd party support organizations
that are often financially squeezed between their clients and the commercial
backup vendors.
The benefit of the above will be more contributed code to Bacula, wider use of
Bacula, Bacula being used hence tested in much more demanding environments.
I think it is a win-win-win (Bacula project-support companies-users)
situation except perhaps for the commercial backup vendors.
Best regards,
Kern
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users