Developing the XWiki software
presented at
Agenda
About XWiki
Governance Practices
Development FlowProject Stats
Development PracticesCode Quality
Testing
Roadmap & Release
How to contribute
About XWiki
Organize information collaboratively
eXtensible wiki & web development platform
CRUD API for structured data stored in wiki pages
Knowledge Base, Collaborative Intranet, Documentation, Education
Since 2004
LGPL 2.1 Open Source License
Meritocratic Governance
Committership, voting, lazy consensus
5 +1, 2 +0, no -0, no -1, vote passed!
xwiki.org governance and advertising
Source: dev.xwiki.org/xwiki/bin/view/Community/Governance
The XWiki project is governed by its committers. Committers are long standing contributors that watch over the project to ensure it goes in the right direction. All important decisions (regarding people, processes or code) are made with a vote, so in order to become a committer you have to be voted. All votes are equal and any committer can veto, but the vetoer must explain his decision and a debate is started. A vote is not required for minor changes or when the author thinks the rest will agree with them. We call this lazy consensus.
Development Flow
Code Contributors (last 12 months, xwiki)
212 pull requests created in the last 12 months (90% closed)
We had 25 code contributors in the last 12 months. Most of them are from Xwiki SAS, including myself. We're trying to attract more contributors, but it's not easy for an enterprise software.
Only 9% of the commits were made by people outside XWiki SAS. But they were important commits!
We had 205 pull requests created in the last 12 months. It's hard to filter those closed with a merge, but I can tell you that most of them were like this.
Code Contributors (last 12 months, xwiki-contrib)
141 repositories
Commits
9.5 commits/daySource: www.ohloh.net/p/xwiki
We host our code on GitHub in two organizations:* xwiki: code that is maintained by the XWiki Development Team (active committers)* xwiki-contrib: code that is maintained by individual developers (or code that is not maintained any more, retired)
In the last 12 months we had a small decrease in the number of commits (at least that's what Ohloh is showing) but we're still at 9.7 commits per day.
As you can see on the graph we had a steady number of commits per month since the beginning of the project.
Issue Tracker (JIRA)
Reported: 100 reporters
3.8 issues/day
23% by non-commiters
56% bugs
Closed: 23 assignees
4 issues/day
67% fixed
Source: jira.xwiki.org
We use JIRA for tracking issues and we're closed to 10k issues reported so far on the XWiki Platform.
In the last 12 months we have closed more issues than there were created.
100 users reported 3.8 issues per day, 56% of which were bugs. Still, most of the issues were reported by committers.
23 users have closed 4.25 issues per day, 67% as fixed.
Mails (last 12 months)
100+ senders, 5k mails (users + devs), 15 mails/daySource: xwiki.markmail.org/search
We have multiple mailing lists but the main ones are users and devs, on which we had an average of almost 16 mails per day (cumulated) during the last 12 months.
Translations
120 contributors, 97896 translationsSource: l10n.xwiki.org
We have a wiki dedicated to translations. It runs an XWiki app that allows us to import translation resource files (e.g. Application.properties). Registered users can translate the available keys afterwards. The XWiki API allows us to compute stats such as these.
Installations
Source: activeinstalls.xwiki.org
We recently (5.2M2) introduced a component to track the number of XWiki instances. This component sends a ping daily to a configured server. It uses Java's UUID to identify the XWiki instance and the only information sent is the XWiki distribution id and version. As you can see we have around 800 active installs of XWiki 5.2M2+.
Code Quality
Full wiki for shared practices on dev.xwiki.org
Common code style (Checkstyle, Enforcer)
Continuous code reviews
Backward compatibility (CLIRR) and deprecation strategy
XWiki special days
sonar.xwiki.org
Testing Practices
JUnit/Mockito
Selenium 2 (WebDriver) for UI tests
Quality build profile (JaCoCo) and job on CI
Roadmap & Release Practices
Complete Roadmap Process
Short releases (every 3-4 weeks)
Release Manager + Roster
Release application on xwiki.org
Documentation fields in JIRA
How to Contribute
JIRA/mailing list/Spread word/etc.
Pull Requests on GitHub
extensions.xwiki.org
Create your project on github.com/xwiki-contribAnd get a JIRA, wiki and Maven repo
Questions?
About me
Marius Dumitru [email protected]/mflorea
Click to edit the title text format