The Xen Code Review Process The 56th CREST Open Workshop Daniel - - PowerPoint PPT Presentation

the xen code review process
SMART_READER_LITE
LIVE PREVIEW

The Xen Code Review Process The 56th CREST Open Workshop Daniel - - PowerPoint PPT Presentation

The Xen Code Review Process The 56th CREST Open Workshop Daniel Izquierdo, CDO dizquierdo@bitergia.com @dizquierdo speakerdeck.com/bitergia /me GrimoireLab (CHAOSS Community) InnerSource Commons PhD in Free Software Engineering (Mozilla


slide-1
SLIDE 1

The Xen Code Review Process

The 56th CREST Open Workshop

Daniel Izquierdo, CDO dizquierdo@bitergia.com @dizquierdo speakerdeck.com/bitergia

slide-2
SLIDE 2

/me

GrimoireLab (CHAOSS Community) InnerSource Commons PhD in Free Software Engineering (Mozilla Foundation projects) Founder of Bitergia, CDO

slide-3
SLIDE 3

/bitergia

Software Development Analytics for your peace of mind

slide-4
SLIDE 4

/grimoirelab grimoirelab.github.io

slide-5
SLIDE 5

Motivation

slide-6
SLIDE 6

/motivation

Growth of dev. activity and delays Complaints from contributors and maintainers Surveys to understand the root causes

slide-7
SLIDE 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

slide-8
SLIDE 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]
slide-9
SLIDE 9

Code Review in the Xen Community

slide-10
SLIDE 10

/patch cycle

slide-11
SLIDE 11

/patchset cycle

slide-12
SLIDE 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)

slide-13
SLIDE 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>.+)$',

slide-14
SLIDE 14

Initial Findings

slide-15
SLIDE 15

/initial findings

slide-16
SLIDE 16

/initial findings

Large patches = Longer to review (exponential)

slide-17
SLIDE 17

More Steps

slide-18
SLIDE 18

/more steps

Definition of Use cases

  • Community [Encourage desired behavior]
  • Performance [Spot issues early]
  • Backlog [Optimize process and focus]
slide-19
SLIDE 19

/more steps: community

Community use case

  • Identify top reviewers
  • Identify imbalances
  • Identify post-ack comments
slide-20
SLIDE 20

/more steps: performance

Performance use case

  • Identify delays due to large number of reviews
  • Identify delays due to large Patch Series
slide-21
SLIDE 21

/more steps: backlog

Backlog use case

  • Merged and not-merged
  • Identify nearly completed Patch Series
  • Identify Hot/Warm/Tepid… Patch Series
slide-22
SLIDE 22

Outcomes

[xen.biterg.io]

slide-23
SLIDE 23

/outcomes

Top Reviewers

[xen.biterg.io]

[xen.biterg.io]

slide-24
SLIDE 24

/outcomes

Imbalances [xen.biterg.io]

slide-25
SLIDE 25

/outcomes

Post ACK Comments [xen.biterg.io]

slide-26
SLIDE 26

/outcomes

Discussions & Delays

slide-27
SLIDE 27

/outcomes

Complexity & Delays

slide-28
SLIDE 28

/outcomes

Backlog & Nearly completed

slide-29
SLIDE 29

Lessons Learned

slide-30
SLIDE 30

/lessons learned

Community involvement Perception is not a good friend Good starting point for

  • thers
slide-31
SLIDE 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: https://conferences.oreilly.com/oscon/oscon-tx-2016/public/schedule/detail/4903 1 GitHub project: https://github.com/dicortazar/xen-code-review-analysis Live dashboard: https://xen.biterg.io

slide-32
SLIDE 32

Extra Bonus

slide-33
SLIDE 33

/bonus

GrimoireLab: Tools for software development analytics

https://grimoirelab.github.i

slide-34
SLIDE 34

The Xen Code Review Process

The 56th CREST Open Workshop

Daniel Izquierdo, CDO dizquierdo@bitergia.com @dizquierdo speakerdeck.com/bitergia