[vbox-dev] Open Letter to Oracle: Please open up community development
Klaus Espenlaub
klaus.espenlaub at oracle.com
Tue Feb 28 11:02:02 PST 2012
Hi Technologov,
sorry about the late answer. Again an issue with too much to do. I'm
also sorry about the length, but this is a complex subject, especially
in the context of a big company like Oracle. It's far from Oracle
specific, though.
Note that the below reply is purely my personal opinion, and while it
does make statements what's possible or not this isn't a legal
statement. It intentionally ignores as much as possible commercial
aspects (licensing, support), since this is a question from the community.
It's hopefully clear enough that my mail is neither a full "yes", nor a
"no". I'm too much of an optimist to say no, and too much of a realist
to say yes.
On 13.02.2012 17:29, Alexey Eromenko wrote:
> Hello,
>
> Many community patches are around for 3 months, unreviewed. [1]
> Last year (2011) things were looking better, and the UDP Tunnel patch,
> among others, was reviewed quickly, and went into the tree in 2
> months.
There are a few pending patches, but not that many. It's unfortunately
the case that the workload of the VirtualBox development team has grown
a lot. The community is bigger than ever (however 99.99% passive users
which at most create bug reports), and the number of customers is also
bigger than ever.
This means that for getting things into the tree quickly the developers
depend on better quality patches. So far we often took patches, ripped
them to pieces and reused just some parts of it, or even only the idea
and problem analysis. This is very time consuming, and is part of the
reason why we don't even start integrating certain changes. And I'm
completely ignoring the testing aspect - we only know that approx. 1
user has tested the patch, and sometimes it's far from obvious if it
breaks other use cases.
The biggest pending change (the Haiku port) is waiting for build tools
integration, and this is simply time consuming. The quality of this
contribution is very high.
In general most pending patches have a very small expected user base,
and the consequence is that we have to work on them with low priority.
> I'd like to ask Oracle to open up development, and let old-time
> community members submit patches for VirtualBox directly.
> The problem of large sets of unofficial patches, is that they later
> result in official forks.
Forks wouldn't help with getting the features integrated, they would
harm everyone. Due to the license it's impossible to prevent forks, but
the aim is to avoid encouraging this. This is why a lot of time is
invested into the community.
> I understand that you were busy with the Oracle SSO transition, but
> this is now over.
Some nightmares don't end immediately when the publicly visible part of
it is done...
> My suggestions are:
> 1. let old-time community members submit patches to SVN tree directly
> (+active new members should get this ability too...). The benefit is
> that old-time community members will start reviewing patches by new
> community members.
1 is most likely impossible to achieve, as the actual subversion
repository can't be made accessible to non-Oracle employees. It contains
components which are not open source. There are other technical
problems, too.
What would be possible is a more direct way of getting patches submitted
for inclusion, which have been community reviewed and tested, and have
clear copyright statements. If anyone knows good tools for managing
patch contributions for subversion I'd appreciate if you drop me a line.
The current state is that it's done completely manually, and that's one
reason for being so susceptible to individual developer overload.
I can't repeat it enough - the key item is quality. If the contributions
cause as little regressions as possible it's good for everyone. If a
contribution causes a significant problem for a paying customer there
will be sooner or later questions what the advantage is for Oracle...
In the end it's a risk management question, and any viable solution must
give an answer to this question.
> 2. Allow GPL-only code into the code tree, provided it can be disabled
> at compile time (so that Oracle VirtualBox will be shipped with those
> features disabled, under dual-license, GPL+PUEL). -- This is needed
> for some potential contributors.
2 is already reality, but is only accepted if there is no other way,
like a significant amount of 3rd party work which can't be easily
avoided. The VNC support is GPL only, because libvnc is GPL, and no one
has time or motivation to do a replacement library. I prefer to keep
code in this category at the very minimum, because it creates "black
holes" in the source tree which aren't routinely tested. This means
they'd become a risk of build failures due to code changes elsewhere.
Leaving it to the community can be seen as an answer to this concern. I
don't follow this argument, though, as it implicitly means there are
inevitably more follow-up contributions to keep the feature alive, and
this takes time, no matter how streamlined the contribution process is.
GPL-only parts of the code would also be some risk for OEMs - they can't
use such code in their sometimes very unusual environments. Not that
they would need such code generally, yet it makes VirtualBox less
attractive for this kind of application.
The two accepted licenses/ways to contribute (MIT and OCA) are used by
several Oracle projects, and thus are an established fact. Getting
something different approved is most likely difficult.
> I believe that opening up direct community contributions is
> beneficial, provided those patches do not break the build for other
> users.
The "provided" clause hints in the same direction as I wrote above -
quality must become more important.
> The "community" window doesn't even have to stay open all the time,
> but only after major release and until the BETA of the next major
> release, while the window can be closed from the BETA and until final.
See above - streamlining the patch submission/reviewing/testing/...
process is in my opinion the only realistic goal in the foreseeable
future, and I can't see far.
> This may increase the rate of community patches and, in the long-term,
> improve the product, overall. (despite the possibility of early
> bumps.)
If the rate improves and the quality is also high it can turn out to be
feasible. Whether we'll get there is not certain, it depends on how
effective the testing is and how efficient the patch integration can be
made. The submission to the mailing list clearly isn't the most
efficient way...
> Can we come to some kind of agreement of how this can be done ?
Working towards the mentioned goals is possible, and initially depends
on a few community "contributions" in the form of working on the quality
of the patches, and also making proposals about how the process
efficiency could be improved.
This is mostly food for thought initially, and is far from any "final"
decision.
Thanks,
Klaus
>
> [1] List of OSS Community Contributions to OSE, including pending patches
> https://forums.virtualbox.org/viewtopic.php?f=10&t=36800
More information about the vbox-dev
mailing list