Hi Sergiu/everyone,
See below.
On Jan 13, 2011, at 9:53 PM, Sergiu Dumitriu wrote:
Hi Community,
The following message expresses my personal opinions as a member of the
community, so it might not be entirely accurate. The goal is to start a
discussion about how can we attract more contributors and committers to
the XWiki open source project, and will address three main subjects:
- the current state of the community and committers
- the possibility of joining or creating a non-profit foundation to
govern XWiki
- the possibility of using Fundry as a way for users to fund XWiki
development
-----
Status of the community
At the start of a new year, it's time to look a bit at the status of
XWiki, the project and the community.
XWiki was created by Ludovic Dubost as an open source project from the
start. Later, he founded a commercial company (XWiki SAS, back then
XPertNet SaRL) as a way to financially support the development of the
product. It kept the project entirely open, unlike the many false open
source companies that only offer a basic open source version, forcing
people to buy the commercial one (the open core model), or that only
release the source code while still doing behind-the-curtains
development, or that almost completely ignore the outside community.
See the XWiki SAS values:
http://purl.org/xwiki/sas-values and
manifesto:
http://purl.org/xwiki/sas-manifesto
The committers, elected for their merit, and not made automatically as
employees of the company, always tried to maintain a healthy community
and attract new contributors/committers. Thus, the XWiki software is
developed not by the XWiki SAS company, but by the XWiki community.
http://dev.xwiki.org/xwiki/bin/Community/ has a lot of information about
the community, and the development process.
As of January 2011, there are 16 core committers, 12 of which are XWiki
SAS employees, and 3 are or were related to XWiki SAS one way or another.
http://dev.xwiki.org/xwiki/bin/Community/HallOfFame#HCoreCommitters
I've just updated this page and added an Affiliation column for increased
transparency:
http://dev.xwiki.org/xwiki/bin/view/Community/HallOfFame
A big part of the development is aided by
non-committer members of the
community, either by providing patches, testing and reporting bugs,
requesting new features, providing feedback, answering on the mailing
lists, etc. As committers, we tried to listen to the community when
developing the project, but as paid employees we have to also listen to
the company requirements. With a limited manpower it's very hard to
evolve as fast as the community would want, or in all the directions
that the community wants. And we welcome any help here.
The project is healthy, we have regular and frequent releases, with
visible progress with each new release (see Vincent's statistics on
http://massol.myxwiki.org/xwiki/bin/Blog/XWikiIn2010 for more details).
Still, I'm a little disappointed with the development speed. Lately, out
of the 16 committers on average about 3-4 are actually available for
platform development during a day.
* How can we help speed up the growth of the community?
Find a way to sponsor more people? :)
IMO the community is growing fast. I think you mean the development team (committership),
right?
* How can we attract more developers outside XWiki
SAS?
(Here's below a repost to an internal mail where we were discussing about whether the
bar is too high or not to contribute to xwiki's development, with slight
modifications)
"
I think we need to separate 2 areas:
* core contributions
* extension contributions
This is the same in all open source project (linux core, vs peripheral things). The level
of quality asked is not the same for core contributions vs extension contributions or
peripheral domains (non core). I doubt very much that the linux kernel accepts
contributions that don't have a very good quality level for example. Same for Firefox
or any other Mozilla project.
In practice I don't think we can expect people external to XWiki SAS or more generally
people not paid to work on XWiki for 2 reasons:
1) there are committers paid to work daily on them and as such they progress much faster
than anyone outside could (since those person outside are not paid for that and don't
have extensible time - they do it in their free time - it's almost impossible to
follow code and discussions).
2) it requires a high quality level
I'm always surprised and have a great admiration when people succeed in contributing
to core things, like Sergiu in his time, Denis and Caleb.
Also I think that most open source project have a very small number of people who are
actually core committers (you can count them on one or 2 hands). When you see open source
projects with tons of contributors they're actually contributing to peripheral things
like: translations, themes, extensions, etc.
What I've been trying to organize since I joined the XWiki project is to transform a
huge monolithic core into separate domains and submodules in order to make contributing
easier. The smaller our core becomes and the larger our extensions become and the easier
it'll be to contribute to them IMO.
We do care about all contributions but the problem is that if you look at the patches we
have in JIRA (there are
40:http://jira.xwiki.org/jira/secure/IssueNavigator.jspa?mode=hide&requ…)
the huge majority cannot be applied either because they're too generic, missing tests,
have no documentation, etc. The only way to apply them is to spend a considerable amount
of time (usually about 3-4 more time than the contributor himself/herself has spent).
Should we just commit stuff even if there are no tests, it's not been validated,
doesn't follow our best practices, has no documentation, etc? I'd say no since
it's increasing our technical debt and we (committers) will have to pay it (it's
always paid).
So there are several things we can do IMO:
1) architecture improvement:
- Continue moving stuff out of xwiki-core into modules and continue making our
architecture modular and move things out of the core.
- With the upcoming extension manager we'll make a giant leap in that direction since
we'll be able to remove bundled extensions from the core and instead allow them to be
installed by the user using the extension manager, at runtime.
- Add interface extensions so that contributors can contribute UI extensions to XWiki
2) continue reviewing/apply patches when they arrive
3) redesign
xwiki.org to make it more participative. See the proposal made for the
contrbution area, making contributors more visible
(
http://incubator.myxwiki.org/xwiki/bin/view/Improvements/XWikiOrgProposal2)
4) improve the dev documentation on
xwiki.org for contributors
5) create a foundation (although I'm not sure it'll help attract developers but
it's good anyway to have)
6) move to git. This could make it easier for contributors to have their branches easily
without having to contribute back work to the project (but the downside is that
contributors may feel less tempted to contribute back stuff)
7) continue promoting
contrib.xwiki.org which is an area where we accept all contributions
without any check
8) set up a bounty system where we advertise bounties. I'm still a bit skeptical about
it (since it means we'll need to find committers with the time to review
contributions) but there's only one way to find if it could work.
Then there are more radical ideas:
9) Join another forge (Eclipse, Apache, Codehaus, etc)
10) Merge with another wiki project (for example jspwiki at apache)
11) find more money to be able to pay for more developers. This could mean accepting
donation through the Foundation to pay for bounties for example
We could also propose to more contributors to become committers. Do we have people in mind
that we think could be committers right now?
The only thing I'm personally not ready to do right now (unless convinced otherwise)
is to reduce our quality rules and accept any contributions independently of their
quality. If some of you think we should do this please raise it and we can discuss it.
Brest is to discuss it practice by practice.
To be honest I think our quality level is not particularly high. We have lots of commits
done without any test for example.
Sonar provides a good view of the quality (Globally we seem to be improving on most fronts
but not that much):
http://nemo.sonarsource.org/dashboard/index/178313
"
-----
Joining/forming a free software foundation
One possible reason while so few people are willing to become committers
could be that XWiki SAS might appear to over-control the software, and a
clear non-profit foundation on top of XWiki might make it more obvious
that XWiki is a true open source project, and anybody is welcome to join.
I don't think this is the case but I may be wrong. IMO it's more that XWiki SAS
sponsors a lot of devs to work full time on XWiki dev thus making it less needed for
others to contribute to get what they need (they just have to wait for it to become
available in the product)...
XWiki SAS is a member of the OW2 consortium
http://ow2.org/ , and this
membership also extends a bit to the XWiki project. OW2 used to host all
our infrastructure, SVN, mailing lists, downloads... Currently only the
official downloads linked from the main download page are hosted on OW2
servers, as we've gradually moved parts of the development
infrastructure on servers provided by XWiki SAS.
While OW2 is a great home for XWiki SAS, it's mostly a company
consortium, not a software development foundation. The most development
help coming from OW2 consists of research projects involving both OW2
and XWiki SAS, thus the OW2 membership doesn't bring much value when it
comes to code.
One option is to form an XWiki non-profit Foundation, which will govern
all XWiki-related software development. The main disadvantage would be
that there's a risk that it won't make any difference at all, while
adding the burden of more paperwork. This is where your opinion comes
into play, since there's no point in doing all the hard work if the
community doesn't see a clear benefit in it.
+1 for creating a Foundation for me. It has some advantages:
* Clearer separation between XWiki SAS and the XWiki open source project (even though the
roles and boundaries are already very clear). It would help for example for Ludovic Dubost
(who owns the XWiki mark) to license it to the community)
* Ability to accept donations
* Have an official entity that we can use in events, marketing messages for the open
source project, etc
* Ability to have people representing the full ecosystem at the board of the foundation
(we'd need to decide on a governance model)
The Apache Foundation has the huge disadvantage that
it requires a
license change, but it's a very well known home for software
development, with good visibility.
Yes visibility would be multiplied x10 but it's has its drawbacks too:
* license change
* slower pace (when requiring infra softare or machines for example)
* more "bureaucratic"
The Software Freedom Conservancy has been getting a
lot of press
recently, since several high profile projects joined it. It's got a few
top-notch projects under its hood, so XWiki would be among well known
projects in there.
Would need to check this out, never heard about it.
A smaller, compatible alternative is Codehaus, but
I'm not convinced
they would make a difference with respect to our needs.
Agreed.
Other foundations aren't really suited for XWiki,
since they either
don't bring value to the community because they don't foster
inter-project collaboration (SourceForge, Google Code), or don't match
the project goals (FSF, GNU, Eclipse, Linux, Mozilla...).
Except potentially merging the XWiki Rendering engine/WikiModel with Eclipse's
WikiText project but that's a specific topic in itself.
BTW that rendering engine could also be proposed to the ASF too should we want that, we
don't have to move the whole XWiki project.
So, some questions in regard to this subject:
* Is there anybody that would like contribute more / become a committer?
* Do users believe that a foundation on top of XWiki will help attract
more developers?
Please note that this is not THE discussion about which foundation to
join, just trying to see if there is a benefit in doing so.
-----
Supporting code development
Becoming a committer requires time, and few people can spend that time
when there's no direct benefit involved. XWiki SAS employees are already
being paid to work with XWiki, so they can contribute to the platform
because the company benefits directly from their work. Employees of
other companies that deal with XWiki do spend time contributing, but
very few actually got to hang around enough to be voted as committers,
although many came close, but stopped short of it.
One way of supporting code development is to contact XWiki SAS and sign
a contract to develop one or more features with a higher priority.
An alternative, which allows to share the cost with other
companies/individuals, is to collaboratively request and support feature
development (crowdfunding), for example through Fundry, a new site
especially designed for this. I've set up an account for XWiki at
https://fundry.com/project/58-xwiki . This is also a good place to
donate to the XWiki project, since there are no visible ways to
financially support the project.
Fundry would allow to gather financial incentives for non-employees to
contribute more code, thus involving the community more in the direction
the software evolves, and attracting more potential contributors.
* Do you (the community) think this is a good idea and it would help?
* Would you be willing to contribute/donate to the project?
+1 for setting up that Foundry/Bounty system from me. Where do the money goes to? Do they
handle that (playing the man in the middle)?
Thanks
-Vincent
-----
Please provide us with your feedback, so we can advance on these topics.
Thanks,
--
Sergiu Dumitriu
http://purl.org/net/sergiu/