Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Project development & community metrics for fun...

Project development & community metrics for fun and profit

Free / open source software projects are producing, as a byproduct of their usual activity, a great deal of data about how they develop software, and about how their community coordinates. Development and community metrics can be derived from this information, which can be later visualized in project development dashboards. The talk will show how tools in the *Grimoire toolset can be easily used to build those dashboards, from data retrieval up to analysis and visualization. As examples, dashboards for real projects, such as OpenStack, Puppet and MediaWiki, will be used to show how to interpret the data, and get insight about their development processes and their community. Examples of specific areas in which metrics are useful to track important parameters of the project will also be explored in detail, such as code review performance, time to close tickets, or the structure of the community.

Lightning talk at FOSDEM 2014

Jesus M. Gonzalez-Barahona

February 01, 2014
Tweet

More Decks by Jesus M. Gonzalez-Barahona

Other Decks in Technology

Transcript

  1. Project development & community metrics for fun and profit How

    and why to use *Grimoire for analyzing projects Jesus M. Gonzalez-Barahona [email protected] http://twitter.com/jgbarah Bitergia GSyC/LibreSoft (Universidad Rey Juan Carlos) FOSDEM, Brussels, February 2nd, 2014 http://bit.ly/fosdem-grimoire Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 1 / 24
  2. c 2012-2014 Bitergia Some rights reserved. This presentation is distributed

    under the “Attribution-ShareAlike 3.0” license, by Creative Commons, available at http://creativecommons.org/licenses/by-sa/3.0/ Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 2 / 24
  3. A new dimension of openness When we develop in the

    open we produce a great deal of data about how we develop “Show me the development data” as a step beyond “show me the code” Let’s do it! Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 3 / 24
  4. The Grimoire Development Dashboard (2) Free / open source software

    to analyze and visualize free / open source software development Extract data from repositories, store it into a database Analyze data into a database, produce JSON files Visualize data in an active development dashboard http://metricsgrimoire.github.io http://vizgrimoire.github.io Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 5 / 24
  5. MetricsGrimoire Retrieving information repositories: CVSAnalY: source code management (CVS, Subversion,

    git...) Bicho: issue tracking systems (Bugzilla, Jira, GitHub, Allura, Launchpad...) & code review systems (Gerrit) MLStats: mailing lists (mbox files, Mailman & GMane archives...) MediaWikiAnalysis: wikis IRCAnalysis: IRC logs Store all the information in SQL databases http://metricsgrimoire.github.io Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 6 / 24
  6. vizGrimoire Analyze information in the database (statistical analysis) Visualize results

    (Grimoire Development Dashboard) vizGrimoireR: R package to access the database vizGrimoireJS: Grimoire Dashboard vizGrimoireJS-lib: supporting JavaScript library for the dashboard (can be used standalone) https://vizgrimoire.github.io Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 7 / 24
  7. Producing a dashboard for your pet GitHub project You need

    (on top of a usual distro): Python R MySQL Now, clone vizGrimoireR & vizGrimoireJS: git clone https://github.com/VizGrimoire/VizGrimoireR.git git clone https://github.com/VizGrimoire/VizGrimoireJS.git Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 8 / 24
  8. Producing a dashboard for your pet GitHub project (2) #

    Install MetricsGrimoire in /tmp/mg VizGrimoireR/misc/metricsgrimoire-setup.py /tmp/mg source /tmp/mg/mg-paths.sh # Run MetricsGrimoire & vizGrimoireR to produce a dashboard # for a single project: VizGrimoire/VizGrimoire] VizGrimoireR/examples/github/vg-github.py \ --user jgb --passwd XXX --dir /tmp/temp --removedb \\ --ghuser jgbarah --ghpasswd XXXGH --vgdir . \\ VizGrimoire/VizGrimoireR # Export the dashboard via HTTP cd /tmp/temp/dashboard python -m SimpleHTTPServer Point your browser to http://localhost:8000 and enjoy Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profitFOSDEM 2014 9 / 24
  9. Producing a dashboard for your pet GitHub project (3) Commits

    Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 10 / 24
  10. Producing a dashboard for your pet GitHub project (4) Tickets

    Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 11 / 24
  11. Producing a dashboard for your pet GitHub project (5) You

    can also produce a dashboard for all projects owned by a user or organization: # Run MetricsGrimoire & vizGrimoireR to produce a dashboard # for a single project: VizGrimoire/VizGrimoire] VizGrimoireR/examples/github/vg-github.py \ --user jgb --passwd XXX --dir /tmp/temp2 --removedb \\ --ghuser jgbarah --ghpasswd XXXGH --vgdir . \\ --isuser VizGrimoire # Export the dashboard via HTTP cd /tmp/temp2/dashboard python -m SimpleHTTPServer Point your browser to http://localhost:8000 and enjoy Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 12 / 24
  12. Producing a dashboard for your pet GitHub project (6) In

    the process, some databases were produced. When analyzing a single project (VizGrimoire/VizGrimoireR): vizgrimoire_vizgrimoirer_cvsanaly (commits) vizgrimoire_vizgrimoirer_bicho (tickets) When analyzing all projects for some user (VizGrimoire): vizgrimoire_cvsanaly (commits) vizgrimoire_bicho (tickets) In dashboards, all the info is in some nice JSON files: data/json directory Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 13 / 24
  13. Producing a dashboard for your pet GitHub project (7) Jesus

    Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 14 / 24
  14. Example: IRC channels for Puppet http://bitergia.dev.puppetlabs.com/ Jesus Gonzalez-Barahona (Bitergia) Project

    development & community metrics for fun and profit FOSDEM 2014 16 / 24
  15. Example: Mailing list for MediaWiki http://korma.wmflabs.org Jesus Gonzalez-Barahona (Bitergia) Project

    development & community metrics for fun and profit FOSDEM 2014 18 / 24
  16. Example: Activity in the Linux kernel actions authors per actions

    0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 arch/arc arch/arm arch/i386 arch/mips arch/powerpc arch/s390 arch/tile arch/x86 drivers/acpi drivers/char drivers/dma drivers/gpu drivers/media drivers/net drivers/scsi drivers/spi drivers/staging drivers/tty drivers/usb fs/btrfs fs/ceph fs/cifs fs/ext4 fs/f2fs fs/nfs fs/xfs include/linux net/ipv4 arch Documentation drivers fs include kernel net sound tools virt http://bit.ly/kernel-dev Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 19 / 24
  17. A future line: integration Integration with forges (Allura) in the

    context of the Prose FP7 project Integration with software analytics (Sonar) work in progress Integration with project crawlers exploring in the context of the Markos FP7 project Integration with IDEs (Eclipse) future work ...your preferred system here... http://prose.eu http://markos-project.eu both funded by the European Commission under FP7-ICT Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 20 / 24
  18. In summary... Let’s analyze free software with free software! MetricsGrimoire

    extracts data from repositories vizGrimoire analyzes it and produces dashboards They’re simple to use, and becoming simpler We can incrementally develop a powerful platform Make your pet project open-development-data ready! Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 21 / 24
  19. The *Grimoire community Thanks go to... LibreSoft developers who developed

    a sizable part of MetricsGrimoire The community maintaining MetricsGrimoire Bitergia developers producing vizGrimoire The (future) community maintaining vizGrimoire The many free software developers that produced all the software on which these tools rely The many free software developers that produced all the software that gives us projects to analyze Join us! Visit http://metricsgrimoire.github.io for more info! http://libresoft.es http://bitergia.com Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 22 / 24
  20. Bitergia: the software development analytics company Current leaders of the

    *Grimoire community Maintaining dashboards for Red Hat, Puppet Labs, Inktank, OpenStack Foundation, Wikimedia Foundation, and many others Focused on: deploying & maintaining Grimoire Development Dashboard producing quantitative reports about the stat of projects consulting on software development analytics http://bitergia.com Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 23 / 24
  21. This is not the end You can use *Grimoire, contribute

    to *Grimoire Slides: http://bit.ly/fosdem-grimoire Jesus Gonzalez-Barahona (Bitergia) Project development & community metrics for fun and profit FOSDEM 2014 24 / 24