Upload
neilbowers
View
532
Download
4
Tags:
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
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 [email protected], 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