This is a interesting conversation. I have been thinking recently about what motivates people to contribute to free software projects. What I have come up with is this: 1. They need it to do _that_. 2. If they contribute code then their contribution will be maintained with the trunk (perhaps even improved), if they try to maintain a patch set in-house, they will be forced to make changes to it each time a new version comes out. IMO this is a big motivator for people to clean up their code and meet project standards.
On 01/27/2011 08:46 AM, Vincent Massol wrote: > 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. My understanding is Linux recklessly breaks old api at the internal/modular level. Given #2 (top), our tiptoeing through deprecation/migration processes may actually harm us by encouraging people to keep their modifications secret. > > 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. Nobody will want to contribute to a module unless they use it. A question I think we should all be asking is: "I have a server with linux and lighttpd, mysql, php. I have a java vm on the server but it's not being used. I am having a problem with bots signing up automatically. I don't need a wiki, I just need a better captcha engine. What can XWiki do for me, and how can I make that happen from my php registration script?" > > 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&requestId=10191) > 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) A foundation is a good idea if it has a clear goal. Incubating new projects is a great goal but XWiki is not really a new project so I think a foundation for maintaining it would be seen as a bit of a ruse. > 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) The people who will contribute the most back to the source are not those who want to drop a wiki on their desktop and go, they are those who want to mix and match modules with their own and build a totally new project. Git (and more specifically github) has a great advantage that it allows anyone to fork a project easily. I favor hosting each core module in a separate github repository where they can easily be forked, modified, mix-and-matched, real world tested, and proposed for inclusion back into XWiki itself. We also need our ECM to support JSR-330 so that people can use our modules with other dependency injection systems. > 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. Bounties are not something to be taken lightly since there will inevitably be people who feel ripped off and they will have to be heard/arbitrated. An idea along a similar line is an "app store" but since there is no way to make free and open DRM and DRM in general attacks free culture, some creativity would be needed. > > 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. Modularity and inviting people to fork (git) will ease any tensions there might be around this. > > 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/ > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users > _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users