Wiki source code of Project Health
Last modified by Vincent Massol on 2021/08/26 09:41
Show last authors
author | version | line-number | content |
---|---|---|---|
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]] |