270 likes | 389 Views
Subverting subversion? (or “An LHCb ‘commitment’ poll”?). Rob Lambert. Remember… it’s just for fun!. Aims. Impersonal: Mine the data available from svn Gauge the number of individuals contributing to core software Gauge something about contributions to core software Personal
E N D
Subverting subversion?(or “An LHCb ‘commitment’ poll”?) Rob Lambert Remember… it’s just for fun! LHCb Core Soft, 5th March 2014
Aims • Impersonal: • Mine the data available from svn • Gauge the number of individuals contributing to core software • Gauge something about contributions to core software • Personal • I’ve been in this collaboration for 8.5 years • (and probably not much longer) • How much have I actually contributed to the codebase? Remember… it’s just for fun! LHCb Core Soft, 5th March 2014
Things you notice on SVN • Release managers commit much more often • There are some projects which have skewed statistics Tagging svncp, from trunk to tags Necessary workbut doesn’tchange the code Svnoften “blames” the copier Erasmus/Urania Stripping DBASE/PARAM “Analysis-specific”software Not all core software Legacy code Legacy data Single users withvastly different usage habits Data filesno diffs or millions of diffs LHCb Core Soft, 5th March 2014
List of metrics • I need metrics which can avoid these issues • svn blame • svn blame without comments! • Total number of commits • Total number of touched files (sum over all commits) • Total number of changed lines (sum over all commits) • Collect statistics by: • Project • User • Remember, this is all public information anyway (and JFF) LHCb Core Soft, 5th March 2014
Basic Totals • My survey draws from the following data • So, on average we’d have 8k blames per person • But there are major differences in the different metrics • Before I can rank contributions, I need to examine the metrics LHCb Core Soft, 5th March 2014
Comparing metrics • Methods have different strengths and weaknesses • (further details in the backup slides) • To overcome all problems, I must combine the metrics • (Don’t need the most basic blame, combine all others) LHCb Core Soft, 5th March 2014
Metrics 20% correlated, need to use both! 97% correlated, don’t use both! 89% correlated, but measure different things! Weight down slightly LHCb Core Soft, 5th March 2014
Combining the metrics • The metrics are very disparate in magnitude and spread • Take a safe logarithm to alleviate the scale problem • Scale that down to the max of the metric • Average over historical metrics, weight down historical by 2/3 • Re-exponentiate to return a reasonable spread, express as % LHCb Core Soft, 5th March 2014
Pause for thought? LHCb has around 10 application experts, plus one per subdetector • Was I lying to myself, and on my CV? Let’s find out! LHCb core-soft developer base consists of around 100 developers. LHCb Core Soft, 5th March 2014
Other Stats • Top 20 experts created 66% of the code 341 people, 33% 20 people, 66% LHCb Core Soft, 5th March 2014
Other Stats • Top 105 developers created the rest of the code 236 people, 5% 125 people, 95% LHCb Core Soft, 5th March 2014
The big reveal LHCb Core Soft, 5th March 2014
Ranking • The top 20, with exclusions • (i.e. no Erasmus/Urania/obsolete/PARAM/DBASE/Stripping) LHCb Core Soft, 5th March 2014
The medallists • 1 2 3 LHCb Core Soft, 5th March 2014
Ranking (2) • The top 20, no exclusions • Ranking is pretty stable due to combined metric LHCb Core Soft, 5th March 2014
The medallists • 1 3 LHCb Core Soft, 5th March 2014
Interesting outliers #1 or 2 (it’s cool that the computingproject leader is the leader!) (15% of all code) LHCb Core Soft, 5th March 2014
Comments • Looks like we have around 1/3 comments (Paul sits here) (Vanya sits here) LHCb Core Soft, 5th March 2014
Make your own metric? • You could use a standard tool: • svnplot, svnstat, statsvn, plotsvn, mypy-svn-stat … • Most standard tools are based on pysvn and sqlite, and as Marco/Ben know, I gave up on trying to have Lbscripts, sqlite3 and pysvn working at the same time • Of course, I’ve committed my code into SVN … • SvnPollTools • https://svnweb.cern.ch/trac/lhcb/browser/packages/trunk/SvnPollTools • Complete lists as csv files here • Other possible improvements: • Ignore all ref files and test directories also in the line diffs (probably won’t significantly change the outcome) • Add LHCbDirac’ssvn(will add Joel and Philippe et al. ) • Add Gaudi’s svn(will make Marco Cle #1 probably…) • Multiply by the call graph? LHCb Core Soft, 5th March 2014
Conclusions • LHCb “core applications” appear to have • ~20 experts, who contributed 2/3 of the total codebase • ~100 developers who contributed 1/3 of the codebase • ~250 contributors whose core soft contribution is very tiny • Interesting observations I can also make over dinner: • Years of service GPA • GPA Institute affiliation • Permanence of current position… • And in the end, well, at least I know I helped Remember… it’s just for fun! LHCb Core Soft, 5th March 2014
End • Backups are often required LHCb Core Soft, 5th March 2014
(1) blamed LHCb Core Soft, 5th March 2014
(2) blamed - comments LHCb Core Soft, 5th March 2014
(3) #commits LHCb Core Soft, 5th March 2014
(4) #files LHCb Core Soft, 5th March 2014
(5) #diffs LHCb Core Soft, 5th March 2014
Correlations LHCb Core Soft, 5th March 2014