Archive

Last modified by Vincent Massol on 2021/01/07 06:02

Blog - posts for December 2008

Dec 27 2008

XWiki SAS and the XWiki open source project

Some of you may know about the XWiki open source project but may not know about the XWiki SAS company (Note that "SAS" simply refers to a certain type of company in France) or if you do you may wonder what are the relationship between them.

History

A bit of history: Ludovic Dubost created the XWiki open source project in 2003 on SourceForge. In 2004 Ludovic also created a company named XPertNet for offering support and services around the XWiki software. I joined the XPertNet company in December 2006 and XPertNet was renamed in XWiki SAS in 2008. 

Committers

As of December 2008 the XWiki SAS company has 30 employees (not all full time, about 25 FTE), out of which 15 are open source developers and 10 out of these 15 are committers on the XWiki open source project. Out of these 15 employees, 4 were recruited from the Google Summer of Code and several were recruited after being active committers on the open source project.

In total the open source project currently has about 12 active committers (about 70 in total since 2003). This means that the majority of committers are also employees of XWiki SAS. There are 2 reasons for this:

  • As you have probably understood, XWiki SAS has recruited most of the active committers over the years.
  • It's very hard for someone who's working on an open source project in his free time to work on an open source project sponsored by a company. The reason is that committers who are employees are working full time on the code and thus progressing quickly on it and it's hard for someone working 1 or 2 hours a day to play catch up. This is true for core development but it is fortunately not true for contributions in peripheral domains such as Macros, Code Snippets, Plugins or Applications. In these domains it's easy for anyone to contribute and we'd like to see even more growth in this area in the future.

Sponsoring

As mentioned above, XWiki SAS is paying 13 developers to develop for the open source project thus sponsoring a large portion of the project. In practice XWiki SAS reinvest more than 50% of its earnings in the growth of the XWiki open source project (the rest being spent on supporting the company): most of it in paying committers, in paying research developers (there are 2 currently) for French and European research projects and the rest in paying for the infrastructure and its support (xwiki.org, free XWiki farm, etc).

Update 20/02/2010: About a year ago XWiki SAS has published a Manifesto explaining its relationship with the open source project and highlighting its values.

Meritocracy

You may have noticed that not all XWiki open source developers from XWiki SAS are committers. This is because we've defined some meritocracy rules for participating to the XWiki open source project and we're strictly following them for anyone, be them from XWiki SAS or for external people interested in contributing. We're a real open source project and we're very clearly separating the company from the open source project. 

More precisely our open source project rules are the Apache Software Foundation ones (from where I come from: I had been working in my free time on open source projects for 7 years before joining the XWiki project and later joining XWiki SAS).

We do this since we all believe strongly in real open source and we're passionate about it. We certainly don't want to do like several other companies who jump on the open source bandwagon just to use it as a marketing ploy.

Conclusion

All our developments are fully done in the open and we're proud of that. We believe this generates a strong and level-playing ecosystem where people don't fear to contribute for fear of their contributions being "ripped" by a company.

We'd be happy to answer any question you may have about the company.

Dec 26 2008

SVNSearch: A great SCM analysis tool 

Eirik Bjørsnøs is the creator of SVNSearch, a tool to analyse your source repository (it supports SVN, CVS, Perforce and Git) and display its content using different views.

I have known about SVNSearch for several years now and I've always found this tool one of the best of its kind (I think it's ahead of the competition especially in the domains of speed, scalability and easiness or use). However I don't think the tool has received the publicity it deserves so I'll add my stone to help promote it.

So let's review some of its features by looking at the SVNSearch XWiki repository.

Amazingly Fast

The search are real fast and SNSearch supports real time updates: Go to your repository page on SVNSearch and make a commit. You'll see it appear in almost real time without doing any refresh (thanks to Cometd)

Dashboard View

You get a Dashboard-like view of any part of your repository (you get the same view with the graphs even down to the file level) with commits and graphs. Note that there's even a JIRA integration since the commits mentioning JIRA are hyperlinked automatically.

  • Main Dashoard view (truncated) showing that 3 persons have worked on this Macro.java file dashboard-main.png

\

  • File-level Dashboard view (truncated) dashboard-file.png

Powerful Search

You get a really powerful search form with Ajax-style autocomplete on path, filename, author and JIRA issues.

  • "Did you mean" suggestions when searching on log content. This is based on actual content, not a dictionary, so for example searching for "explicitly" can suggest "explicitely" even though "explicitly" is correct didyoumean.png

\

  • Autocompletion on repository path autocomplete-path.png

\

  • Autocompletion on file. Note the CamelCase autocomplete: "SMI" offers "SpaceManagerImpl.java" autocomplete-file.png

\

  • Autocompletion on Authors autocomplete-author.png

\

  • Autocompletion on file types autocomplete-type.png

\

  • Autocompletion on JIRA issues autocomplete-issue.png

Activity Graphs

Useful to know the health of your project and how it progresses.

  • Activity by Path (you can drill down by clicking in it) activity-path.png

\

  • Activity over time (you can drill down by clicking in it) activity-time.png

\

  • Activity by year (you can drill down by clicking in it) activity-date.png

\

  • Activity by author (you can drill down by clicking in it) activity-author.png

\

  • Committers over time activity-committers.png

\

  • Activity by day activity-datetime.png

\

  • Activity by hour activity-hour.png

\

  • Committers Turnover activity-turnover.png

The last Committers Turnover graph needs to be viewed dynamically to better understand it. Since it's a bit complex here's how Eirik explains it: 

It's an visualisation of the composition of the development team over time. The algorithm goes like this: * Partition the timeline (first commit to last commit date) into 10 equally large partitions. * For each partition, identify the 20 percent most active committers * For each partition, create a graph showing how the relative activity of that group's changes over time

So what I end up with is a set of ten line graphs, each showing the relative amount of commits done by the group of most active commiters from each partition.

To be honest it's difficult even to explain it, so I can understand that people don't understand it intuitively emoticon_smile

An way to look at it is to say that horizontal lines indicate a stable core group, while diagonal lines means that the core group is changing. So it can be used as an indicator of project health.

If you mouse-over the chart you should be able to see the actual contribution by each developer in each 20% group.

It's all based on a paper called "Contributor Turnover in Libre Software Projects", by Gregorio Robles and Jesus M. Gonzalez-Barahona.

Timeline View

This is a very useful graph for viewing each committer activity over time.

timeline.png

Collaboration View

Displays committers relationship (i.e. files they've worked together on) using a dynamic graph (you can zoom in/out, move nodes). Redish colors means recent activity while Bluish colors means old activity.

collaboration.png

Diffs

SVNSearch can show commit list for a given file and also the diffs for each commit.

diff.png

Other Features

  • RSS feed for any search. This means you can follow development in a subproject or branch using any RSS reader.
  • The from and to fields can actually contain revision ranges as well as date ranges.
  • Author plots are sortable by name, first commit, last commit and number of commits.
  • You can select multiple authors for comparison by separating them with a space or a comma.

Last I heard Eirik was running a private beta and wanted to sell this tool at some point in the future while keeping a free version on svnsearch.org for open source projects.

Dec 24 2008

Moving Blog + 2009 resolution

At long last I'm resurrecting my old blog and moving it to the XWiki platform (I've left the old blog posts there since I didn't want to loose comments and create broken links for people referring to the posts). 

Funnily I stopped blogging when I joined the XWiki open source project in December 2006. I think the main reason is that I have been busy understanding the existing code base, refactoring it, managing the development team and unconsciously I wanted to become an XWiki expert before I could start talking about it and evangelizing it in a more open manner. Since I'm reading "Outliers" from Malcolm Gladwell I think I now understand how everything fits together:

  • I've been working on the XWiki project for 2 years. Since I spend 70+ hours per week on it, that's close to 8000 hours since I joined the project.
  • Malcolm Gladwell says that you need roughly 10,000 hours to become an expert in a given field

So I'm now close to becoming an XWiki expert and this makes me understand the project pretty well and as a consequence I now feel entitled and mature to blog about it! Okay this is a bit contrived and there's probably more to it but it feels good to relate these concepts together.

So starting today you'll see lots of posts about the XWiki platform in general or the lessons I learn while developing it.

Created by Admin on 2013/10/22 14:34