The Xen Code Review Process: An Industrial Approach

7dddc875546948b5b5094167c90dc10d?s=47 Bitergia
November 27, 2017

The Xen Code Review Process: An Industrial Approach

This talk details the work done with the Xen community with the goal of understanding their code review process and provide useful insights.

Presented by Daniel Izquierdo at the CREST Workshop



November 27, 2017


  1. The Xen Code Review Process The 56th CREST Open Workshop

    Daniel Izquierdo, CDO @dizquierdo
  2. /me GrimoireLab (CHAOSS Community) InnerSource Commons PhD in Free Software

    Engineering (Mozilla Foundation projects) Founder of Bitergia, CDO
  3. /bitergia Software Development Analytics for your peace of mind

  4. /grimoirelab

  5. Motivation

  6. /motivation Growth of dev. activity and delays Complaints from contributors

    and maintainers Surveys to understand the root causes
  7. /motivation Code contributions are more complex Lack of reviewers Lower

    quality code from new contributors More discussions in the lists Misunderstanding due to diverse languages
  8. /motivation No clear conclusions leading to division Some ways to

    fix this: • Training for newcomers [2014] • Architecture/design reviews [2014] • Governance [2014, 2016] • Seek for help => Bitergia [2015]
  9. Code Review in the Xen Community

  10. /patch cycle

  11. /patchset cycle

  12. /challenges Patch Series = Thread (but not always) Versions [PATCH

    vX Y/Z] (not regular) Patch number (Y of Z) [PATCH vX Y/Z] (not regular) Matching threads and commits (commits timestamps)
  13. /challenges 'Acked-by' : '^Acked-by:(?P<value>.+)$', 'Cc' : '^Cc:(?P<value>.+)', 'Fixes' : '^Fixes:(?P<value>.+)$',

    'From' : '^[Ff]rom:(?P<value>.+)$', 'Reported-by' : '^Reported-by:(?P<value>.+)$', 'Tested-by' : '^Tested-by:(?P<value>.+)$', 'Reviewed-by' : '^Reviewed-by:(?P<value>.+)$', 'Release-Acked-by' : '^Release-Acked-by:(?P<value>.+)$', 'Signed-off-by' : '^Signed-off-by:(?P<value>.+)$', 'Suggested-by' : '^Suggested-by:(?P<value>.+)$',
  14. Initial Findings

  15. /initial findings

  16. /initial findings Large patches = Longer to review (exponential)

  17. More Steps

  18. /more steps Definition of Use cases • Community [Encourage desired

    behavior] • Performance [Spot issues early] • Backlog [Optimize process and focus]
  19. /more steps: community Community use case • Identify top reviewers

    • Identify imbalances • Identify post-ack comments
  20. /more steps: performance Performance use case • Identify delays due

    to large number of reviews • Identify delays due to large Patch Series
  21. /more steps: backlog Backlog use case • Merged and not-merged

    • Identify nearly completed Patch Series • Identify Hot/Warm/Tepid… Patch Series
  22. Outcomes []

  23. /outcomes Top Reviewers [] []

  24. /outcomes Imbalances []

  25. /outcomes Post ACK Comments []

  26. /outcomes Discussions & Delays

  27. /outcomes Complexity & Delays

  28. /outcomes Backlog & Nearly completed

  29. Lessons Learned

  30. /lessons learned Community involvement Perception is not a good friend

    Good starting point for others
  31. /references MSR: Daniel Izquierdo-Cortazar, Lars Kurth, Jesús M. González-Barahona, Santiago

    Dueñas, Nelson Sekitoleko. Characterization of the Xen project code review process: an experience report. MSR 2016: 386-390 OSCON talk: 1 GitHub project: Live dashboard:
  32. Extra Bonus

  33. /bonus GrimoireLab: Tools for software development analytics https://grimoirelab.github.i o

  34. The Xen Code Review Process The 56th CREST Open Workshop

    Daniel Izquierdo, CDO @dizquierdo