Developing the XWiki Software @ Open Source Iași 2014

download Developing the XWiki Software @ Open Source Iași 2014

If you can't read please download the document

Transcript of Developing the XWiki Software @ Open Source Iași 2014

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