Determinants of Pull Request Evaluation Latency on GitHub Yue Yu, - - PowerPoint PPT Presentation

determinants of pull request evaluation latency on github
SMART_READER_LITE
LIVE PREVIEW

Determinants of Pull Request Evaluation Latency on GitHub Yue Yu, - - PowerPoint PPT Presentation

MSR 2015, Florence, Italy Wait For It Determinants of Pull Request Evaluation Latency on GitHub Yue Yu, Huaimin Wang, Vladimir Filkov, Prem Devanbu, Bogdan Vasilescu GitHub workflow Personal Main branches / branch forks Lots of


slide-1
SLIDE 1

Determinants of Pull Request Evaluation Latency on GitHub

MSR 2015, Florence, Italy Yue Yu, Huaimin Wang, Vladimir Filkov, Prem Devanbu, Bogdan Vasilescu

“Wait For It”

slide-2
SLIDE 2

GitHub workflow

Main branch Personal branches / forks

slide-3
SLIDE 3

Lots of pull requests to review

26,093 10,339 1,887

% Watch ⋆ Star ' Fork

rails / rails

(

) * + ,

  • New pull request

New pull request Filters is:pr is:open

.

Issues Labels Milestones

+ 467 Open / 12,551 Closed

Author Labels Milestones Assignee Sort

+ Move Integer#positive? and Integer#negative? query methods to Numeric

#20143 opened an hour ago by

/

meinac

0 2 + Deprecate `assert_template`.

#20138 opened 9 hours ago by

/

tgxworld

0 8 + Add Enumerable#map_with to ActiveSupport

#20134 opened 13 hours ago by

/

mlarraz

0 0 + Allow creating a save callback for same name with parent association

#20127 opened 23 hours ago by

/

meinac

0 2 + ActiveSupport::HashWithIndifferentAccess select and reject should return enumerator if called without block

#20125 opened a day ago by

/

imanel

0 0 + Don't ignore false values for `include_blank` passed to `Tags::Base#select_content_tag`

#20124 opened a day ago by

/

greysteil

0 9 + Fix for irregular inflection inconsistency

#20123 opened a day ago by

/

yoongkang

0 0 + Add openssl_verify_mode and sync other smtp_settings with API docs

#20117 opened 2 days ago by

/

jfine

0 0

Pull requests

slide-4
SLIDE 4

Pull Request evaluation time

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

slide-5
SLIDE 5

Continuous integration

26,093 10,339 1,887

% Watch ⋆ Star ' Fork

rails / rails

(

) * + ,

  • New pull request

New pull request Filters is:pr is:open

.

Issues Labels Milestones

+ 467 Open / 12,551 Closed

Author Labels Milestones Assignee Sort

+ Move Integer#positive? and Integer#negative? query methods to Numeric

#20143 opened an hour ago by

/

meinac

0 2 + Deprecate `assert_template`.

#20138 opened 9 hours ago by

/

tgxworld

0 8 + Add Enumerable#map_with to ActiveSupport

#20134 opened 13 hours ago by

/

mlarraz

0 0 + Allow creating a save callback for same name with parent association

#20127 opened 23 hours ago by

/

meinac

0 2 + ActiveSupport::HashWithIndifferentAccess select and reject should return enumerator if called without block

#20125 opened a day ago by

/

imanel

0 0 + Don't ignore false values for `include_blank` passed to `Tags::Base#select_content_tag`

#20124 opened a day ago by

/

greysteil

0 9 + Fix for irregular inflection inconsistency

#20123 opened a day ago by

/

yoongkang

0 0 + Add openssl_verify_mode and sync other smtp_settings with API docs

#20117 opened 2 days ago by

/

jfine

0 0

Pull requests

Automated testing & continuous integration

slide-6
SLIDE 6

11.2 hours

Median Pull Request times

Pull request received Pull request closed

slide-7
SLIDE 7

11.2 hours 16 mins 39 mins

Median Pull Request times

First human response CI response Pull request received Pull request closed

slide-8
SLIDE 8

What influences PR evaluation time?

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

? ?

slide-9
SLIDE 9

Modeling the Pull Request evaluation time

Pull-Request

Size

  • n_additions
  • n_commits

Review

  • n_comments

Experience & Social Connections

  • merge_rate
  • connection_strength
  • n_followers

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

[Gousios et al, ICSE’14, ICSE’15] [Tsay et al, ICSE’14, FSE’14]

slide-10
SLIDE 10

Modeling the Pull Request evaluation time

Pull-Request

Size

  • n_additions
  • n_commits

Review

  • n_comments

Experience & Social Connections

  • merge_rate
  • connection_strength
  • n_followers

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

[Gousios et al, ICSE’14, ICSE’15] [Tsay et al, ICSE’14, FSE’14]

M1: Previously- identified factors

✓ R2 = 36.2%

slide-11
SLIDE 11

Title & description

  • n_tokens

M2: M1 + process-related factors

+ continuous integration

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

Modeling the Pull Request evaluation time

slide-12
SLIDE 12

Title & description

  • n_tokens

Management

  • workload
  • availability

M2: M1 + process-related factors

+ continuous integration

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

Modeling the Pull Request evaluation time

slide-13
SLIDE 13

Priority

  • time_to_first

_response

Title & description

  • n_tokens

Management

  • workload
  • availability

M2: M1 + process-related factors

+ continuous integration

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

Modeling the Pull Request evaluation time

Continuous Integration

  • response time
slide-14
SLIDE 14

Priority

  • time_to_first

_response

Title & description

  • n_tokens

Management

  • workload
  • availability

M2: M1 + process-related factors

+ continuous integration

✓ R2 = 58.7%

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year

1 hour 1 mo

Social tagging

  • @mention
  • #issue

Modeling the Pull Request evaluation time

Continuous Integration

  • response time
slide-15
SLIDE 15

Determinants of Pull Request Evaluation Latency on GitHub

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year 1 hour 1 mo

? ?

slide-16
SLIDE 16

11.2 hours 16 mins 39 mins

First human response CI response Pull request received Pull request closed

Determinants of Pull Request Evaluation Latency on GitHub

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year 1 hour 1 mo

? ?

slide-17
SLIDE 17

11.2 hours 16 mins 39 mins

First human response CI response Pull request received Pull request closed

Determinants of Pull Request Evaluation Latency on GitHub

Yue Yu, Huaimin Wang, Vladimir Filkov, Prem Devanbu, Bogdan Vasilescu

Frequency 1000 2000 3000 1 min 10 mins 1 day 1 week half year 1 hour 1 mo

? ?