Wiki source code of Project Health

Last modified by Vincent Massol on 2021/08/26 09:41

Show last authors
1 This page lists various metrics related to the development of the XWiki project.
2
3 {{toc/}}
4
5 You can also browse the [[old Project Health page>>ProjectHealthOld]].
6
7 = Metric Sites =
8
9 There are several sites on the web analyzing the XWiki project and providing metrics:
10
11 * [[Ohloh>>https://www.ohloh.net/p/xwiki]]
12 * [[Bitergia Report for 2014-01>>http://bitergia.com/public/previews/2014_01_fosdem/xwiki/browser/]]
13 * Sonar:
14 ** [[Sonar @ xwiki.org>>http://sonar.xwiki.org/]]
15 ** [[Sonar Nemo for XWiki Commons>>http://nemo.sonarqube.org/dashboard/index/321369?did=1]]
16 ** [[Sonar Nemo for XWiki Rendering>>http://nemo.sonarqube.org/dashboard/index/org.xwiki.rendering:xwiki-rendering?did=1]]
17 * [[SVNSearch>>http://svnsearch.org/svnsearch/repos/XWIKI/search]] (till 2011 when XWiki moved from SVN to Git)
18 * [[GitHub>>https://github.com/orgs/xwiki/dashboard]]:
19 ** [[XWiki Commons graphs>>https://github.com/xwiki/xwiki-commons/graphs]] ([[Monthly Pulse>>https://github.com/xwiki/xwiki-commons/pulse/monthly]])
20 ** [[XWiki Rendering graphs>>https://github.com/xwiki/xwiki-rendering/graphs]] ([[Monthly Pulse>>https://github.com/xwiki/xwiki-rendering/pulse/monthly]])
21 ** [[XWiki Platform graphs>>https://github.com/xwiki/xwiki-platform/graphs]] ([[Monthly Pulse>>https://github.com/xwiki/xwiki-platform/pulse/monthly]])
22 ** [[XWiki Enterprise graphs>>https://github.com/xwiki/xwiki-enterprise/graphs]] ([[Monthly Pulse>>https://github.com/xwiki/xwiki-enterprise/pulse/monthly]])
23
24 = Active Installs =
25
26 See [[dedicated page for Active Installs>>xwiki:ActiveInstalls.WebHome]].
27
28 = Downloads =
29
30 **Downloads for the WAR + HSQLDB packagings**:
31
32 {{chart type="bar" source="inline" params="range:B2-B14;series:columns;" title="XWiki Downloads (WAR+HSQLDB)" width="640" height="300"}}
33 |=Year|=Downloads|=Notes
34 |2005|19020|
35 |2006|62079|
36 |2007|56614|
37 |2008|132424|
38 |2009|256644|
39 |2010|257633|
40 |2011|174161|
41 |2012|276281|
42 |2013|242963|
43 |2014|367989|
44 |2015|353080|
45 |2016|247291|
46 |2017|232000|Extrapolated from data from 18 July 2016
47 {{/chart}}
48
49 Source:
50
51 * From [[OW2 Download stats>>http://stats.ow2.org/downloadStats/]] (requires credentials)
52 * These download figures contain [[all the distributions provided by XWiki on OW2>>http://forge.ow2.org/project/showfiles.php?group_id=170]].
53
54 Interpretation:
55
56 * At one point we had more distributions (workspaces, xeclipse, xoffice, xwatch, etc) and this could have lead to more downloads
57 * Since XWiki 3.3 we now have a [[Debian distribution>>platform:AdminGuide.InstallationViaAPT]] (.DEB), installable through [[APT>>http://en.wikipedia.org/wiki/Advanced_Packaging_Tool]] and we don't count those downloads in the figures above. They could account for an important part, we would need to retrieve their stats.
58 * Since XWiki 8.4 we now have [[Docker images>>https://hub.docker.com/_/xwiki/]] too.
59 * These download figures need to be correlated with the [[Active Installs>>xwiki:ActiveInstalls.WebHome]].
60 * These downloads do not count XWiki Extensions.
61 * The majority of XARs are downloaded from the Extension Manager and are not counted in these stats.
62 * In 2018 we stopped publishing our binaries on OW2 and thus we don't have the download figures since then. In addition, since we have several distribution channels (APT, Docker, xwiki.org, etc), it's impossible to track the download numbers. Thus we're now relying solely on Active Installs figures which provides a better tracking metric.
63
64 **Corrected Graph**:
65
66 We're using the [[Active Install Distribution proportions>>xwiki:ActiveInstalls.DistributionData]] to correct the download figure above.
67
68 Note that the Distribution data are only retrieved for XWiki 8.4.4+ so the corrections make sense only from 2017+ and they only been applied from 2017 forward.
69
70 {{chart type="stackedbar" source="inline" params="range:B2-C14;series:columns;" title="XWiki Downloads (Total)" width="640" height="300"}}
71 |=Year|=Downloads|=Correction|=Notes
72 |2005|19020|0|
73 |2006|62079|0|
74 |2007|56614|0|
75 |2008|132424|0|
76 |2009|256644|0|
77 |2010|257633|0|
78 |2011|174161|0|
79 |2012|276281|0|
80 |2013|242963|0|
81 |2014|367989|0|
82 |2015|353080|0|
83 |2016|247291|0|
84 |2017|232000|154000|Extrapolated, based on 60% of XAR+HSQLDB and 40% other (ie from ActiveInstalls.DistributionData)
85 {{/chart}}
86
87 Interpretation:
88
89 * Based on the corrected graph, we're actually increasing the number of downloads of XWiki overall!
90
91 {{comment}}
92 = Active Installs =
93
94 {{velocity}}
95 {{chart type="line" source="xdom" params="document:xwiki:ActiveInstalls.ActiveInstallsHistoryData;range:B2-B.;series:columns" width="800"/}}
96 {{/velocity}}
97
98 Source:
99
100 * Elastic Search for xwiki.org, see the raw data using the [[Kibana UI>>http://activeinstalls.xwiki.org/kibana3/]]
101 * See also the XWiki [[Active Installs page>>xwiki:ActiveInstalls.WebHome]] for more details.
102
103 Interpretation:
104
105 * Lists all XWiki installs that have sent a ping in the last 24 hours
106 * Do not count installs behind firewalls and that cannot access xwiki.org
107 {{/comment}}
108
109 = Mailing Lists Activity =
110
111 {{chart type="xy_line_and_shape" params="range:B2-C12;dataset:timetable_xy;domain_axis_type:date;domain_axis_date_format:dd-MM-yyyy;date_format:dd-MM-yyyy;time_period:month;range_axis_lower:700;range_axis_upper:7000" width="640" height="300"}}
112 |=Date|=Users|=Devs
113 |30-06-2006|1576|823
114 |30-06-2007|2091|2079
115 |30-06-2008|4842|4386
116 |30-06-2009|3777|5829
117 |30-06-2010|4629|5799
118 |30-06-2011|3156|3990
119 |30-06-2012|3061|3695
120 |30-06-2013|2620|3130
121 |30-06-2014|1974|1715
122 |30-06-2015|2108|1860
123 |30-06-2016|2441|2302
124 {{/chart}}
125
126 Source:
127
128 * [[XWiki's Markmail archives>>http://xwiki.markmail.org/]]
129 * For example, [[data between 30-06-2013 and 30-06-2014>>http://xwiki.markmail.org/search/?q=date%3A20130630-20140630]]
130 * We're now using a Discourse-based Forum, which provides its own statistics (which we could display here in the future)
131
132 Interpretation:
133
134 * Either less users since July 2010 or the product is easier to use
135 * Either less devs since July 2010 or they're asking less questions (more proficient?)
136
137 = Commit Activity =
138
139 Commits for Platform, Enterprise, Manager, Commons, Rendering, XOffice, XEclipse, XWatch, XWorkspaces:
140
141 {{chart type="bar" source="inline" params="range:B2-B10;series:columns;" title="Commits" width="640" height="300"}}
142 |=Date|=Downloads|=Notes
143 |30-06-2008|6262|Found using svnsearch
144 |30-06-2009|7503|Found using svnsearch
145 |30-06-2010|6803|Found using svnsearch
146 |30-06-2011|7605|Found using svnsearch(Data from 9 months from svn, extrapolated to 12 months since we moved to git but using git data is misleading since git introduces more commits)
147 |30-06-2012|4387|Found using Git
148 |30-06-2013|3699|Found using Git
149 |30-06-2014|3295|Found using Git
150 |30-06-2015|3524|Found using Git
151 |30-06-2016|2864|Found using Git
152 |30-06-2017|2363|Found using Git
153 {{/chart}}
154
155 Commits for Contrib:
156
157 {{chart type="bar" source="inline" params="range:B2-B5;series:columns;" title="Commits" width="640" height="300"}}
158 |=Date|=Downloads|=Notes
159 |30-06-2008|55|Found using svnsearch
160 |30-06-2009|1113|Found using svnsearch
161 |30-06-2010|1023|Found using svnsearch
162 |30-06-2011|1009|Found using svnsearch(Data from 9 months from svn, extrapolated to 12 months since we moved to git but using git data is misleading since git introduces more commits)
163 {{/chart}}
164
165 Source:
166
167 * [[SVNSearch>>http://svnsearch.org/svnsearch/repos/XWIKI/search]] and Git/GitHub
168 * To compute all commits between 2 dates in Git: {{code language="none"}}git rev-list HEAD --count --since="2011-06-30" --until="2012-06-30"{{/code}}
169
170 Interpretation:
171
172 * See also the [[Commit Activity on Ohloh>>https://www.ohloh.net/p/xwiki/commits/summary]] which also shows a small commit slowdown since 2011 (i.e. since we moved to Git)
173 * Starting in 2011 we moved to Git (we were using SVN before) and this could have caused some difference in # of commits. For example sandbox and contrib code was moved in different Git repositories. In addition it's possible that using Git generates less commits because with SVN merges were a pain and thus devs were committing very frequently to not have to perform merges... ;)
174 * Some projects have been deprecated and moved to contrib such as XEclipse, XWatch, XOffice, Workspaces, XEM, etc and this has probably resulted in reduced commits
175 * We had 7605 commits in 2011 means about 20 commits/day. This is to be compared to [[other well known projects in 2011>>http://openlife.cc/blogs/2010/november/how-grow-your-open-source-project-10x-and-revenues-5x]]:(((
176 |=Project|=Commits per year|=Commits per day
177 |Gnome|36500|100
178 |Linux|47450|130
179 |Drupal|48545|133
180 |KDE|109500|300
181
182 Classification:
183
184 |=Category
185 |=XtraLarge
186 1000+ devs
187 100+ commits/day|Linux, KDE, Apache, Eclipse, Perl+CPAN, Drupal, Gnome
188 |=Large
189 20-200 devs
190 50-100 commits/day|MySQL, Qt, OpenOffice, Mono, JBoss
191 |=Medium|GIMP, SVN, wordpress
192 )))
193 * [[Comparison between XWiki, Foswiki and MediaWiki on Ohloh>>https://www.ohloh.net/p/compare?project_0=XWiki&project_1=Foswiki&project_2=MediaWiki]]
194
195 = Source Contributors =
196
197 {{image reference="committers.png"/}}
198
199 Source:
200
201 * [[Oloh Contributor Report>>https://www.ohloh.net/p/xwiki/contributors/summary]]
202
203 Analysis:
204
205 * For the full list of committers and their stats see also the [[Hall of Fame>>HallOfFame]].
206 * Seems the number of contributors has been steadily increasing till mid 2011 and from then on it's pretty stable between 8 to 15 different contributors each month.
207 * Thomas Mortagne is increasing his lead and is moving towards a 30% commit share for all times (27% ATM and 30% for 2015)
208 * Sergiu has reduced his participation, that's too bad! Come back Sergiu :)
209 * Jean-Vincent has left the project and is no longer active unfortunately
210 * Vincent is reducing slightly from 20% all time to 17% for 2015
211 * Marius is stable at 9%
212 * Guillaume is increasing: from 2% all time to 15% for 2015
213 * Eduard is also increasing: from 2% all time to 10% for 2015
214 * Pretty stable in # of core committers (but this doesn't take into account the activity on contrib! We need to find a way to analyze this).
215
216 = Issues Activity =
217
218 {{chart type="stackedbar" source="inline" params="range:B2-F13;series:columns;" title="Closed Issues per year" width="800" height="300"}}
219 |=Date|=Bugs|=Improvements|=New Features|=SubTasks|=Tasks
220 |30-06-2006|35|2|0|1|6
221 |30-06-2007|778|211|55|133|160
222 |30-06-2008|1317|445|183|540|309
223 |30-06-2009|1930|430|121|425|320
224 |30-06-2010|1134|398|89|84|315
225 |30-06-2011|776|407|128|44|255
226 |30-06-2012|670|406|92|113|219
227 |30-06-2013|968|333|63|63|175
228 |30-06-2014|860|464|69|7|159
229 |30-06-2015|884|642|98|92|213
230 |30-06-2016|759|472|85|5|238
231 |30-06-2017|581|334|51|4|197
232 {{/chart}}
233
234 Source:
235
236 * [[XWiki's JIRA>>https://jira.xwiki.org]]
237 * JQL example for 2012-06-30: {{code language="none"}}resolution = Fixed AND resolved >= 2011-06-30 AND resolved <= 2012-06-30 AND type = Bug{{/code}}
238
239 Analysis:
240
241 * Activity has been stable for the past few years. This needs to be correlated with [[the size of the team>>||anchor="HSourceContributors"]] which has also remained stable during the same period.
242 * In the 5.x cycle (From December 2012 to December 2013) we've increased a lot the number of bugs fixed thanks to our [[BFD strategy>>Community.XWikiDays]] (one per week during this period). In the 6.x cycle (Jan 2014 to Dec 2014) we've reduced this by doing other types of XWiki Days but still doing BFDs to keep bugs at bay.
243
244 = Bugs Killing =
245
246 Number of bugs closed vs bugs created over the past 1600 days:
247
248 July 2015:
249
250 {{image reference="bugs-july-2015.png"/}}
251
252 Source:
253
254 * [[JIRA Created bugs vs Closed bugs>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=10352#Created-vs-Resolved-Chart/13610]]
255
256 Analysis:
257
258 * [[BFD>>Community.XWikiDays]] is working great so far, we're keeping up!
259
260 = l10n Activity =
261
262 {{chart type="bar" source="inline" params="range:B2-B6;series:columns;" title="l10n modified translation keys" width="640" height="300"}}
263 |=Year|=Modified keys|=Notes
264 |2011|14939
265 |2012|20367
266 |2013|11808
267 |2014-06-30|29450|114 Hareketi has 21K but seems he saved 6 times for each key he really modified!
268 |2015-06-30|8747
269 {{/chart}}
270
271 {{chart type="bar" source="inline" params="range:B2-B6;series:columns;" title="l10n Contributors" width="640" height="300"}}
272 |=Year|=Contributors
273 |2011|34
274 |2012|28
275 |2013|65
276 |2014-06-30|30
277 |2015-06-30|26
278 {{/chart}}
279
280 Source:
281
282 * http://l10n.xwiki.org
283 * [[Example query>>http://l10n.xwiki.org/xwiki/bin/view/L10NCode/BestContributorsSheet?lowerBound=20130630&upperBound=20140630]]
284
285 Analysis:
286
287 * User "114 Hareketi" has 21K in from 2013-06-30 to 2014-06-30 but seems he saved 6 times several keys he modified... We would need to have unique modifications per key per user.
288
289 = Releases =
290
291 {{chart type="bar" source="inline" params="range:B2-B12;series:columns;" title="XWiki Enterprise/Standard Releases per year" width="800" height="300"}}
292 |=Year|=Releases
293 |30-06-2007|15
294 |30-06-2008|28
295 |30-06-2009|32
296 |30-06-2010|37
297 |30-06-2011|30
298 |30-06-2012|30
299 |30-06-2013|32
300 |30-06-2014|30
301 |30-06-2015|37
302 |30-06-2016|34
303 |30-06-2017|33
304 |30-06-2018|30|extrapolated, 27 as of 4/6/2018
305 {{/chart}}
306
307 Source:
308
309 * [[Versions released in JIRA for the XWiki Platform project>>https://jira.xwiki.org/plugins/servlet/project-config/XWIKI/versions]]
310 * [[Release Manager Roster>>ReleaseManagerRoster]] (but missing dates)
311 * [[Release Plans>>ReleasePlans.WebHome]] (since 2012 only)
312
313 Analysis:
314
315 * At some points we were releasing other projects in addition to XWiki Enterprise (XWiki Office, XWiki Enterprise Manager, XWiki Watch and XWiki Eclipse).
316 * Pretty stable release cycle which means we're globally following strictly our release plans at a rate of about 30 releases per year, that's 1 release every 12 days, or 2.5 releases per month. Our [[release strategy>>VersioningAndReleasePractices]] is to release a minor version every 2 to 2.5 months in average. However we do release milestones, RCs and bugfix releases too.
317
318 = Security Issues =
319
320 {{chart type="xy_line_and_shape" params="range:B2-C14;dataset:timetable_xy;domain_axis_type:date;domain_axis_date_format:dd-MM-yyyy;date_format:dd-MM-yyyy;time_period:month" title="Created/Closed security issues per year" width="640" height="300"}}
321 |=Year|=Created|=Closed
322 |30-06-2007|4|2
323 |30-06-2008|13|7
324 |30-06-2009|7|3
325 |30-06-2010|55|22
326 |30-06-2011|38|53
327 |30-06-2012|18|10
328 |30-06-2013|22|20
329 |30-06-2014|22|22
330 |30-06-2015|26|24
331 |30-06-2016|13|14
332 |30-06-2017|15|13
333 |30-06-2018|7|5
334 |30-06-2019|18|8
335 |30-06-2020|15|17
336 |30-06-2021|26|23
337 {{/chart}}
338
339 Source:
340
341 * [[JIRA>>https://jira.xwiki.org]] query examples:
342 ** Created: {{code language="none"}}created >= "2018-06-30" and created < "2019-06-30" and level = Confidential{{/code}}
343 ** Closed: {{code language="none"}}resolved >= "2018-06-30" and resolved < "2019-06-30" and level = Confidential and status = Closed{{/code}}
344
345 Analysis:
346
347 * You need to correlate created vs closed security issues as otherwise it doesn't mean much.
348 * For the past 4 years, we're closing slightly less security issues than there are issues created (77 closed vs 83 created).
349 * Note that there are various criticity levels in security issues and some are of minor importance while others can be important.
350
351 = Contrib Repository Creation =
352
353 {{chart type="bar" source="inline" params="range:B2-B7;series:columns;" title="Contrib Repositories Created per year" width="640" height="300"}}
354 |=Year|=Releases
355 |30-06-2010|0
356 |30-06-2011|16
357 |30-06-2012|56
358 |30-06-2013|47
359 |30-06-2014|41
360 |30-06-2015|38
361 {{/chart}}
362
363 Source:
364
365 * [[Groovy Script to compute list of repos between 2 dates>>snippets:Extension.GitHub Integration||anchor="HListallrepositoriesandtheircreationdates"]]
366
367 Analysis:
368
369 * Sustained activity over years (even though declining slightly)
370 * As of now, there's a total of 195 repositories. We would need to check how many are active or dead.
371
372 = Contributed Extensions =
373
374 Number of extensions contributed on extensions.xwiki.org, excluding those done by the XWiki Dev Team.
375
376 {{chart type="bar" source="inline" params="range:B2-B10;series:columns;" title="Contributed Extensions per year" width="800" height="300"}}
377 |=Year|=Releases
378 |30-06-2007|23
379 |30-06-2008|51
380 |30-06-2009|44
381 |30-06-2010|62
382 |30-06-2011|66
383 |30-06-2012|81
384 |30-06-2013|81
385 |30-06-2014|81
386 |30-06-2015|70
387 {{/chart}}
388
389 Source:
390
391 * [[Stats script on extensions.xwiki.org>>extensions:ExtensionCode.StatisticsPerDate]]
392
393 Analysis:
394
395 * Eerily stable from 2012-2014: 81 new extensions per year is close to 7 new extensions every month, or 1 new extension every 4 to 5 days.
396
397 = External Analysis =
398
399 * [[XWiki in 2010 by Vincent Massol>>http://massol.myxwiki.org/xwiki/bin/view/Blog/XWikiIn2010]]
400 * [[XWiki in 2009 by Vincent Massol>>http://massol.myxwiki.org/xwiki/bin/view/Blog/XWikiIn2009]]

Get Connected