16
Finding CPAN Adoption Candidates Neil Bowers NEILB 1

Finding CPAN adoption candidates

Embed Size (px)

DESCRIPTION

A talk I gave at the London Perl Workshop 2013, about automatically identifying CPAN distributions that might be candidates for adoption.

Citation preview

Page 1: Finding CPAN adoption candidates

1

Finding CPAN Adoption Candidates

Neil Bowers

NEILB

Page 2: Finding CPAN adoption candidates

2

A long time ago …

Page 3: Finding CPAN adoption candidates

3

Page 4: Finding CPAN adoption candidates

4

My first thought …

Page 5: Finding CPAN adoption candidates

5

Page 6: Finding CPAN adoption candidates

6

• But some are 'finished', not 'stale'

A lot of stale distributions on CPAN

Page 7: Finding CPAN adoption candidates

7

Goal

• How can we identify the 'best' candidates?

• Distributions that might be open to adoption …

• That are of value to CPAN / Perl programmers

Page 8: Finding CPAN adoption candidates

8

Bugs reported since release

• Bugs being reported a long time after last release?

• Suggests that the module is (still) being used

Page 9: Finding CPAN adoption candidates

9

Bug score

Page 10: Finding CPAN adoption candidates

10

Are other dists using this dist?

Page 11: Finding CPAN adoption candidates

11

Total usage graph

Page 12: Finding CPAN adoption candidates

12

CPAN Testers

• All dists have three parts to their CPAN Testers score:• # passes• # fails• # unknowns

• Skip dists with fewer than 50 reports

• +2 if fails + unknowns >= 50%

• +1 if fails + unknowns >= 5%

Page 13: Finding CPAN adoption candidates

13

Adoptability score

• Gating criteria – score = 0 if• bug_score = 0, NEEDHELP, core with upstream=blead

• Otherwise score according to a rule set:bug score 0 to 3

10 or more bugs reported since last release 1

dependent distributions 1 + log10( $dep_dists )

CPAN Testers 1 or 2

core module (CPAN upstream) 2

ADOPTME or HANDOFF 1

Single module in dist 1

Single user has PAUSE permissions 1

Author hasn't released anything in 3+ years 1

Page 14: Finding CPAN adoption candidates

14

neilb.org/adoption

Page 15: Finding CPAN adoption candidates

15

Adopting a module

• Fork it on github (see gitpan)

• Fix some/all outstanding bugs

• Follow up in bug-tracker, & offer to do a release

• Email author via all addresses you can find online

• After 2 weeks try again, and try other avenues• Ask on IRC, email module-authors, perlmonks

• After 1 month, email [email protected], cc author• They'll give you co-maint permissions• You might want to ask for ownership after 6 months

Page 16: Finding CPAN adoption candidates

16

What's next?

• Split score into value & adoptability• Ability to generate other lists, such as "dists that need help"

• New factors• +1 if CPAN Testers says it needs help• +1 if ++'d on MetaCPAN• +1 if outstanding pull request(s) on github

• Get the adoption score into MetaCPAN• Add this into MetaCPAN, or• Generate JSON for MetaCPAN to import• or?

• Exclude build dependencies from the dep graph