finding cpan adoption candidates

Post on 09-Dec-2014

532 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

1

Finding CPAN Adoption Candidates

Neil Bowers

NEILB

2

A long time ago …

3

4

My first thought …

5

6

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

A lot of stale distributions on CPAN

7

Goal

• How can we identify the 'best' candidates?

• Distributions that might be open to adoption …

• That are of value to CPAN / Perl programmers

8

Bugs reported since release

• Bugs being reported a long time after last release?

• Suggests that the module is (still) being used

9

Bug score

10

Are other dists using this dist?

11

Total usage graph

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%

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

14

neilb.org/adoption

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 modules@perl.org, cc author• They'll give you co-maint permissions• You might want to ask for ownership after 6 months

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

top related