Wiki source code of Project Health

Last modified by Vincent Massol on 2024/04/09 15:48

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 * [[OpenHub>>https://openhub.net/p/xwiki]]
12 * [[Sonar @ xwiki.org>>http://sonar.xwiki.org/]]
13 * [[##xwiki## orgnanization on GitHub>>https://github.com/xwiki]] (check the "Insights" button for each repository)
14 * [[##xwiki-contrib## orgnanization on GitHub>>https://github.com/xwiki-contrib]] (check the "Insights" button for each repository)
15
16 = Active Installs =
17
18 See [[dedicated page for Active Installs>>xwiki:ActiveInstalls.WebHome]].
19
20 = Downloads =
21
22 **Downloads for the WAR + HSQLDB packagings**:
23
24 {{chart type="bar" source="inline" params="range:B2-B14;series:columns;" title="XWiki Downloads (WAR+HSQLDB)" width="640" height="300"}}
25 |=Year|=Downloads|=Notes
26 |2005|19020|
27 |2006|62079|
28 |2007|56614|
29 |2008|132424|
30 |2009|256644|
31 |2010|257633|
32 |2011|174161|
33 |2012|276281|
34 |2013|242963|
35 |2014|367989|
36 |2015|353080|
37 |2016|247291|
38 |2017|232000|Extrapolated from data from 18 July 2016
39 {{/chart}}
40
41 Source:
42
43 * From [[OW2 Download stats>>http://stats.ow2.org/downloadStats/]] (requires credentials)
44 * These download figures contain [[all the distributions provided by XWiki on OW2>>http://forge.ow2.org/project/showfiles.php?group_id=170]].
45
46 Interpretation:
47
48 * At one point we had more distributions (workspaces, xeclipse, xoffice, xwatch, etc) and this could have lead to more downloads
49 * Since XWiki 3.3 we now have a [[Debian distribution>>xwiki:Documentation.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.
50 * Since XWiki 8.4 we now have [[Docker images>>https://hub.docker.com/_/xwiki/]] too.
51 * These download figures need to be correlated with the [[Active Installs>>xwiki:ActiveInstalls.WebHome]].
52 * These downloads do not count XWiki Extensions.
53 * The majority of XARs are downloaded from the Extension Manager and are not counted in these stats.
54 * 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.
55
56 **Corrected Graph**:
57
58 We're using the [[Active Install Distribution proportions>>xwiki:ActiveInstalls.DistributionData]] to correct the download figure above.
59
60 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.
61
62 {{chart type="stackedbar" source="inline" params="range:B2-C14;series:columns;" title="XWiki Downloads (Total)" width="640" height="300"}}
63 |=Year|=Downloads|=Correction|=Notes
64 |2005|19020|0|
65 |2006|62079|0|
66 |2007|56614|0|
67 |2008|132424|0|
68 |2009|256644|0|
69 |2010|257633|0|
70 |2011|174161|0|
71 |2012|276281|0|
72 |2013|242963|0|
73 |2014|367989|0|
74 |2015|353080|0|
75 |2016|247291|0|
76 |2017|232000|154000|Extrapolated, based on 60% of XAR+HSQLDB and 40% other (ie from ActiveInstalls.DistributionData)
77 {{/chart}}
78
79 Interpretation:
80
81 * Based on the corrected graph, we're actually increasing the number of downloads of XWiki overall!
82
83 {{comment}}
84 = Active Installs =
85
86 {{velocity}}
87 {{chart type="line" source="xdom" params="document:xwiki:ActiveInstalls.ActiveInstallsHistoryData;range:B2-B.;series:columns" width="800"/}}
88 {{/velocity}}
89
90 Source:
91
92 * Elastic Search for xwiki.org, see the raw data using the [[Kibana UI>>http://activeinstalls.xwiki.org/kibana3/]]
93 * See also the XWiki [[Active Installs page>>xwiki:ActiveInstalls.WebHome]] for more details.
94
95 Interpretation:
96
97 * Lists all XWiki installs that have sent a ping in the last 24 hours
98 * Do not count installs behind firewalls and that cannot access xwiki.org
99 {{/comment}}
100
101 = Mailing Lists Activity =
102
103 {{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"}}
104 |=Date|=Users|=Devs
105 |30-06-2006|1576|823
106 |30-06-2007|2091|2079
107 |30-06-2008|4842|4386
108 |30-06-2009|3777|5829
109 |30-06-2010|4629|5799
110 |30-06-2011|3156|3990
111 |30-06-2012|3061|3695
112 |30-06-2013|2620|3130
113 |30-06-2014|1974|1715
114 |30-06-2015|2108|1860
115 |30-06-2016|2441|2302
116 {{/chart}}
117
118 Source:
119
120 * [[XWiki's Markmail archives>>http://xwiki.markmail.org/]]
121 * For example, [[data between 30-06-2013 and 30-06-2014>>http://xwiki.markmail.org/search/?q=date%3A20130630-20140630]]
122 * We're now using a Discourse-based Forum, which provides its own statistics (which we could display here in the future)
123
124 Interpretation:
125
126 * Either less users since July 2010 or the product is easier to use
127 * Either less devs since July 2010 or they're asking less questions (more proficient?)
128
129 = Commit Activity =
130
131 Commits for Platform, Enterprise, Manager, Commons, Rendering, XOffice, XEclipse, XWatch, XWorkspaces:
132
133 {{chart type="bar" source="inline" params="range:B2-B10;series:columns;" title="Commits" width="640" height="300"}}
134 |=Date|=Downloads|=Notes
135 |30-06-2008|6262|Found using svnsearch
136 |30-06-2009|7503|Found using svnsearch
137 |30-06-2010|6803|Found using svnsearch
138 |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)
139 |30-06-2012|4387|Found using Git
140 |30-06-2013|3699|Found using Git
141 |30-06-2014|3295|Found using Git
142 |30-06-2015|3524|Found using Git
143 |30-06-2016|2864|Found using Git
144 |30-06-2017|2363|Found using Git
145 {{/chart}}
146
147 Commits for Contrib:
148
149 {{chart type="bar" source="inline" params="range:B2-B5;series:columns;" title="Commits" width="640" height="300"}}
150 |=Date|=Downloads|=Notes
151 |30-06-2008|55|Found using svnsearch
152 |30-06-2009|1113|Found using svnsearch
153 |30-06-2010|1023|Found using svnsearch
154 |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)
155 {{/chart}}
156
157 Source:
158
159 * [[SVNSearch>>http://svnsearch.org/svnsearch/repos/XWIKI/search]] and Git/GitHub
160 * 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}}
161
162 Interpretation:
163
164 * 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)
165 * 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... ;)
166 * 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
167 * 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]]:(((
168 |=Project|=Commits per year|=Commits per day
169 |Gnome|36500|100
170 |Linux|47450|130
171 |Drupal|48545|133
172 |KDE|109500|300
173
174 Classification:
175
176 |=Category
177 |=XtraLarge
178 1000+ devs
179 100+ commits/day|Linux, KDE, Apache, Eclipse, Perl+CPAN, Drupal, Gnome
180 |=Large
181 20-200 devs
182 50-100 commits/day|MySQL, Qt, OpenOffice, Mono, JBoss
183 |=Medium|GIMP, SVN, wordpress
184 )))
185 * [[Comparison between XWiki, Foswiki and MediaWiki on Ohloh>>https://www.ohloh.net/p/compare?project_0=XWiki&project_1=Foswiki&project_2=MediaWiki]]
186
187 = Source Contributors =
188
189 {{image reference="committers.png"/}}
190
191 Source:
192
193 * [[Oloh Contributor Report>>https://www.ohloh.net/p/xwiki/contributors/summary]]
194
195 Analysis:
196
197 * For the full list of committers and their stats see also the [[Hall of Fame>>HallOfFame]].
198 * 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.
199 * Thomas Mortagne is increasing his lead and is moving towards a 30% commit share for all times (27% ATM and 30% for 2015)
200 * Sergiu has reduced his participation, that's too bad! Come back Sergiu :)
201 * Jean-Vincent has left the project and is no longer active unfortunately
202 * Vincent is reducing slightly from 20% all time to 17% for 2015
203 * Marius is stable at 9%
204 * Guillaume is increasing: from 2% all time to 15% for 2015
205 * Eduard is also increasing: from 2% all time to 10% for 2015
206 * 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).
207
208 = Issues Activity =
209
210 {{chart type="stackedbar" source="inline" params="range:B2-F13;series:columns;" title="Closed Issues per year" width="800" height="300"}}
211 |=Date|=Bugs|=Improvements|=New Features|=SubTasks|=Tasks
212 |30-06-2006|35|2|0|1|6
213 |30-06-2007|778|211|55|133|160
214 |30-06-2008|1317|445|183|540|309
215 |30-06-2009|1930|430|121|425|320
216 |30-06-2010|1134|398|89|84|315
217 |30-06-2011|776|407|128|44|255
218 |30-06-2012|670|406|92|113|219
219 |30-06-2013|968|333|63|63|175
220 |30-06-2014|860|464|69|7|159
221 |30-06-2015|884|642|98|92|213
222 |30-06-2016|759|472|85|5|238
223 |30-06-2017|581|334|51|4|197
224 {{/chart}}
225
226 Source:
227
228 * [[XWiki's JIRA>>https://jira.xwiki.org]]
229 * 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}}
230
231 Analysis:
232
233 * 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.
234 * 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.
235
236 = Bugs Killing =
237
238 Number of bugs closed vs bugs created over the past 1600 days:
239
240 July 2015:
241
242 {{image reference="bugs-july-2015.png"/}}
243
244 Source:
245
246 * [[JIRA Created bugs vs Closed bugs>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=10352#Created-vs-Resolved-Chart/13610]]
247
248 Analysis:
249
250 * [[BFD>>Community.XWikiDays]] is working great so far, we're keeping up!
251
252 = l10n Activity =
253
254 {{chart type="bar" source="inline" params="range:B2-B6;series:columns;" title="l10n modified translation keys" width="640" height="300"}}
255 |=Year|=Modified keys|=Notes
256 |2011|14939
257 |2012|20367
258 |2013|11808
259 |2014-06-30|29450|114 Hareketi has 21K but seems he saved 6 times for each key he really modified!
260 |2015-06-30|8747
261 {{/chart}}
262
263 {{chart type="bar" source="inline" params="range:B2-B6;series:columns;" title="l10n Contributors" width="640" height="300"}}
264 |=Year|=Contributors
265 |2011|34
266 |2012|28
267 |2013|65
268 |2014-06-30|30
269 |2015-06-30|26
270 {{/chart}}
271
272 Source:
273
274 * http://l10n.xwiki.org
275 * [[Example query>>http://l10n.xwiki.org/xwiki/bin/view/L10NCode/BestContributorsSheet?lowerBound=20130630&upperBound=20140630]]
276
277 Analysis:
278
279 * 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.
280
281 = Releases =
282
283 {{chart type="bar" source="inline" params="range:B2-B12;series:columns;" title="XWiki Enterprise/Standard Releases per year" width="800" height="300"}}
284 |=Year|=Releases
285 |30-06-2007|15
286 |30-06-2008|28
287 |30-06-2009|32
288 |30-06-2010|37
289 |30-06-2011|30
290 |30-06-2012|30
291 |30-06-2013|32
292 |30-06-2014|30
293 |30-06-2015|37
294 |30-06-2016|34
295 |30-06-2017|33
296 |30-06-2018|30|extrapolated, 27 as of 4/6/2018
297 {{/chart}}
298
299 Source:
300
301 * [[Versions released in JIRA for the XWiki Platform project>>https://jira.xwiki.org/plugins/servlet/project-config/XWIKI/versions]]
302 * [[Release Manager Roster>>ReleaseManagerRoster]] (but missing dates)
303 * [[Release Plans>>ReleasePlans.WebHome]] (since 2012 only)
304
305 Analysis:
306
307 * At some points we were releasing other projects in addition to XWiki Enterprise (XWiki Office, XWiki Enterprise Manager, XWiki Watch and XWiki Eclipse).
308 * 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.
309
310 = Security Issues =
311
312 {{chart type="xy_line_and_shape" params="range:B2-C16;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"}}
313 |=Year|=Created|=Closed
314 |30-06-2007|4|2
315 |30-06-2008|13|7
316 |30-06-2009|7|3
317 |30-06-2010|55|22
318 |30-06-2011|38|53
319 |30-06-2012|18|10
320 |30-06-2013|22|20
321 |30-06-2014|22|22
322 |30-06-2015|26|24
323 |30-06-2016|13|14
324 |30-06-2017|15|13
325 |30-06-2018|7|5
326 |30-06-2019|18|8
327 |30-06-2020|15|17
328 |30-06-2021|26|23
329 {{/chart}}
330
331 Source:
332
333 * [[JIRA>>https://jira.xwiki.org]] query examples:
334 ** Created: {{code language="none"}}created >= "2018-06-30" and created < "2019-06-30" and labels = security{{/code}}
335 ** Closed: {{code language="none"}}resolved >= "2018-06-30" and resolved < "2019-06-30" and labels = security and status = Closed{{/code}}
336
337 Analysis:
338
339 * You need to correlate created vs closed security issues as otherwise it doesn't mean much.
340 * Note that there are various criticity levels in security issues and some are of minor importance while others can be important.
341
342 = Contrib Repository Creation =
343
344 {{chart type="bar" source="inline" params="range:B2-B7;series:columns;" title="Contrib Repositories Created per year" width="640" height="300"}}
345 |=Year|=Releases
346 |30-06-2010|0
347 |30-06-2011|16
348 |30-06-2012|56
349 |30-06-2013|47
350 |30-06-2014|41
351 |30-06-2015|38
352 {{/chart}}
353
354 Source:
355
356 * [[Groovy Script to compute list of repos between 2 dates>>snippets:Extension.GitHub Integration||anchor="HListallrepositoriesandtheircreationdates"]]
357
358 Analysis:
359
360 * Sustained activity over years (even though declining slightly)
361 * As of now, there's a total of 195 repositories. We would need to check how many are active or dead.
362
363 = Contributed Extensions =
364
365 Number of extensions contributed on extensions.xwiki.org, excluding those done by the XWiki Dev Team.
366
367 {{chart type="bar" source="inline" params="range:B2-B10;series:columns;" title="Contributed Extensions per year" width="800" height="300"}}
368 |=Year|=Releases
369 |30-06-2007|23
370 |30-06-2008|51
371 |30-06-2009|44
372 |30-06-2010|62
373 |30-06-2011|66
374 |30-06-2012|81
375 |30-06-2013|81
376 |30-06-2014|81
377 |30-06-2015|70
378 {{/chart}}
379
380 Source:
381
382 * [[Stats script on extensions.xwiki.org>>extensions:ExtensionCode.StatisticsPerDate]]
383
384 Analysis:
385
386 * 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.
387
388 = External Analysis =
389
390 * [[XWiki in 2010 by Vincent Massol>>http://massol.myxwiki.org/xwiki/bin/view/Blog/XWikiIn2010]]
391 * [[XWiki in 2009 by Vincent Massol>>http://massol.myxwiki.org/xwiki/bin/view/Blog/XWikiIn2009]]

Get Connected