Will My Patch Make It? And How Fast? Yujuan Jiang, Bram Adams - - PowerPoint PPT Presentation

will my patch make it and how fast
SMART_READER_LITE
LIVE PREVIEW

Will My Patch Make It? And How Fast? Yujuan Jiang, Bram Adams - - PowerPoint PPT Presentation

Will My Patch Make It? And How Fast? Yujuan Jiang, Bram Adams (MCIS, Polytechnique Montral) Daniel M. German (University of Victoria ) 1 Monday, 3 June, 13 I do hold out hope that Google does come around and works to fix their codebase to


slide-1
SLIDE 1

Yujuan Jiang, Bram Adams (MCIS, Polytechnique Montréal) Daniel M. German (University of Victoria )

Will My Patch Make It? And How Fast?

1

Monday, 3 June, 13
slide-2
SLIDE 2

I do hold out hope that Google does come around and works to fix their codebase to get it merged upstream to stop the huge blockage that they have now caused in a large number of embedded Linux hardware companies […] But I need the help of the Google developers to make it happen, without them, nothing can change.

http://www.kroah.com/log/linux/android-kernel-problems.html

2

Greg Kroah-Hartman

Monday, 3 June, 13
slide-3
SLIDE 3

Integration Process

3

Monday, 3 June, 13
slide-4
SLIDE 4

Integration Process

3

Reviewing Integration

Staging

Monday, 3 June, 13
slide-5
SLIDE 5

Integration Process

3

Reviewing Integration

Staging

Monday, 3 June, 13
slide-6
SLIDE 6

Integration Process

3 contributor 1 contributor 2 contributor 3

Reviewing Integration

Staging

Monday, 3 June, 13
slide-7
SLIDE 7

Integration Process

3 contributor 1 contributor 2 contributor 3

Reviewing Integration

Staging

Monday, 3 June, 13
slide-8
SLIDE 8

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml

Reviewing Integration

Staging

Monday, 3 June, 13
slide-9
SLIDE 9

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml

Reviewing Integration

Staging

Monday, 3 June, 13
slide-10
SLIDE 10

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml

Reviewing Integration

Staging

Monday, 3 June, 13
slide-11
SLIDE 11

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml

Reviewing Integration

Staging

Monday, 3 June, 13
slide-12
SLIDE 12

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

Monday, 3 June, 13
slide-13
SLIDE 13

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

Monday, 3 June, 13
slide-14
SLIDE 14

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

Monday, 3 June, 13
slide-15
SLIDE 15

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

Monday, 3 June, 13
slide-16
SLIDE 16

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

maintainer

Monday, 3 June, 13
slide-17
SLIDE 17

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

maintainer

Monday, 3 June, 13
slide-18
SLIDE 18

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

maintainer Linus Torvalds

Monday, 3 June, 13
slide-19
SLIDE 19

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

maintainer Linus Torvalds

Monday, 3 June, 13
slide-20
SLIDE 20

Integration Process

3 contributor 1 contributor 2 contributor 3 linux-usb linux-scsi lkml

linux 3.5

subsystem maintainer1 subsystem maintainer1

Reviewing Integration

Staging

maintainer Linus Torvalds

Monday, 3 June, 13
slide-21
SLIDE 21

Research Questions

4

RQ1: How many patches are merged? RQ2: What kind of patch is merged more likely? RQ 3: What kind of patch is accepted faster?

Monday, 3 June, 13
slide-22
SLIDE 22

Setup Of Case Study

5

Reviewing Integration

Staging

Linus Torvalds linux-usb linux-scsi lkml

linux 3.5

contributor 1 contributor 2 contributor 3 subsystem maintainer1 subsystem maintainer1 maintainer

Monday, 3 June, 13
slide-23
SLIDE 23

Setup Of Case Study

5

Reviewing Integration

Staging

Linus Torvalds linux-usb linux-scsi lkml

linux 3.5

contributor 1 contributor 2 contributor 3 subsystem maintainer1 subsystem maintainer1 maintainer

Monday, 3 June, 13
slide-24
SLIDE 24

Setup Of Case Study

5

Reviewing Integration

Staging

Linus Torvalds linux-usb linux-scsi lkml

Monday, 3 June, 13
slide-25
SLIDE 25

Setup Of Case Study

5

Reviewing Integration

Staging

Linus Torvalds linux-usb linux-scsi lkml

Monday, 3 June, 13
slide-26
SLIDE 26

Setup Of Case Study

5

Reviewing Integration

Staging

Linus Torvalds

Monday, 3 June, 13
slide-27
SLIDE 27

Setup Of Case Study

5

Reviewing Integration

Staging

Linus Torvalds

email1 email3 email2 email patch2 email patch1 email patch3

...

Monday, 3 June, 13
slide-28
SLIDE 28

Setup Of Case Study

5

Reviewing Integration

Staging

email1 email3 email2 email patch2 email patch1 email patch3

...

Monday, 3 June, 13
slide-29
SLIDE 29

Setup Of Case Study

5

Reviewing Integration

Staging

email1 email3 email2 email patch2 email patch1 email patch3

...

commit3 commit2 commit1 commit patch1 commit patch2 commit patch3

...

Monday, 3 June, 13
slide-30
SLIDE 30

Setup Of Case Study

5

Reviewing Integration

Staging

email1 email3 email2 email patch2 email patch1 email patch3

...

commit3 commit2 commit1 commit patch1 commit patch2 commit patch3

...

checksum1 checksum3 checksum2

...

Monday, 3 June, 13
slide-31
SLIDE 31

Setup Of Case Study

5

Reviewing Integration

Staging

email1 email3 email2 email patch2 email patch1 email patch3

...

commit3 commit2 commit1 commit patch1 commit patch2 commit patch3

...

checksum1 checksum3 checksum2

...

Monday, 3 June, 13
slide-32
SLIDE 32

Experience Email Review Experi Patch ence Commit

6

5 Dimensions of 29 Patch Metrics

Monday, 3 June, 13
slide-33
SLIDE 33

size: LOC > 50 Number of reviewers > 3 ? not accepted Number of review messages > 3 ? Is this first patch in thread? not accepted accepted

Decision Tree

Building Decision Trees

7

Monday, 3 June, 13
slide-34
SLIDE 34

8

RQ1: How many patches are merged? RQ2: What kind of patch is merged more likely? RQ 3: What kind of patch is accepted faster?

Monday, 3 June, 13
slide-35
SLIDE 35

9

RQ1: How many patches are merged? RQ2: What kind of patch is merged more likely? RQ 3: What kind of patch is accepted faster?

Monday, 3 June, 13
slide-36
SLIDE 36

RQ1:33% of patches make it!

10

2005 2006 2007 2008 2009 2010 2011 2012

percentage of patches

20000 40000 60000 80000 100000 120000

28.63 28.7 27.03 32.83 32.79 33.87 33.55 30.74 71.37 71.3 72.97 67.17 67.21 66.13 66.45 69.26

% accepted by linus % rejected by linus

#

  • f

p a t c h e s

72.97% 67.17% 71.3% 71.73% 69.26% 66.45% 66.13% 67.21%

28.63%

28.7% 32.79% 32.83% 27.03% 30.74% 33.55% 33.87%

A C C E P T R E J E C T

Monday, 3 June, 13
slide-37
SLIDE 37

RQ1:Requiring 1~6months!

11

2005 2006 2007 2008 2009 2010 2011 2012 percentage of accepted patches of each year 20 40 60 80 instantly within_hour within_day within_week within_month within_quarter within_half_year within_year took_ages

T e x t % accepted patches

Monday, 3 June, 13
slide-38
SLIDE 38

RQ1: reviewing time speeds up

& integration slows down

12

reviewing time integration time

Monday, 3 June, 13
slide-39
SLIDE 39

13

RQ1: How many patches are merged? RQ2: What kind of patch is merged more likely? RQ 3: What kind of patch is accepted faster?

Monday, 3 June, 13
slide-40
SLIDE 40

RQ2: What kind of patch is

merged more likely?

precision:73% recall:68.47%

14

Monday, 3 June, 13
slide-41
SLIDE 41

RQ2: What kind of patch is

merged more likely?

precision:73% recall:68.47%

14

Monday, 3 June, 13
slide-42
SLIDE 42

RQ2: What kind of patch is

merged more likely?

precision:73% recall:68.47%

14

Monday, 3 June, 13
slide-43
SLIDE 43

RQ2: What kind of patch is

merged more likely?

precision:73% recall:68.47%

14

Monday, 3 June, 13
slide-44
SLIDE 44

RQ2: What kind of patch is

merged more likely?

precision:73% recall:68.47%

14

Monday, 3 June, 13
slide-45
SLIDE 45

15

RQ1: How many patches are merged? RQ2: What kind of patch is merged more likely? RQ 3: What kind of patch is accepted faster?

Monday, 3 June, 13
slide-46
SLIDE 46

RQ3: What kind of patch is

accepted faster?

16

Monday, 3 June, 13
slide-47
SLIDE 47

RQ3: What kind of patch is

accepted faster?

16

Monday, 3 June, 13
slide-48
SLIDE 48

RQ3: What kind of patch is

accepted faster?

16

Monday, 3 June, 13
slide-49
SLIDE 49

RQ3: What kind of patch is

accepted faster?

16

Monday, 3 June, 13
slide-50
SLIDE 50

RQ3: What kind of patch is

accepted faster?

16

Monday, 3 June, 13
slide-51
SLIDE 51

RQ3: What kind of patch is

accepted faster?

16

Monday, 3 June, 13
slide-52
SLIDE 52

RQ3: What kind of patch is

accepted faster?

16

Acceptance is determined by integration phase

Monday, 3 June, 13
slide-53
SLIDE 53

17

Monday, 3 June, 13
slide-54
SLIDE 54

17

Monday, 3 June, 13
slide-55
SLIDE 55

2005 2006 2007 2008 2009 2010 2011 2012

percentage of patches

20000 40000 60000 80000 100000 120000

28.63 28.7 27.03 32.83 32.79 33.87 33.55 30.74 71.37 71.3 72.97 67.17 67.21 66.13 66.45

% accepted by linus % rejected by linus

72.97% 67.17% 71.3% 71.73% 66.45% 66.13% 67.21% 28.63% 28.7% 32.79% 32.83% 27.03% 30.74% 33.55% 33.87%

17

Monday, 3 June, 13
slide-56
SLIDE 56

2005 2006 2007 2008 2009 2010 2011 2012

percentage of patches

20000 40000 60000 80000 100000 120000

28.63 28.7 27.03 32.83 32.79 33.87 33.55 30.74 71.37 71.3 72.97 67.17 67.21 66.13 66.45

% accepted by linus % rejected by linus

72.97% 67.17% 71.3% 71.73% 66.45% 66.13% 67.21% 28.63% 28.7% 32.79% 32.83% 27.03% 30.74% 33.55% 33.87%

17

Monday, 3 June, 13
slide-57
SLIDE 57

2005 2006 2007 2008 2009 2010 2011 2012

percentage of patches

20000 40000 60000 80000 100000 120000

28.63 28.7 27.03 32.83 32.79 33.87 33.55 30.74 71.37 71.3 72.97 67.17 67.21 66.13 66.45

% accepted by linus % rejected by linus

72.97% 67.17% 71.3% 71.73% 66.45% 66.13% 67.21% 28.63% 28.7% 32.79% 32.83% 27.03% 30.74% 33.55% 33.87%

17

Monday, 3 June, 13