finding cpan adoption candidates
Post on 09-Dec-2014
532 Views
Preview:
DESCRIPTION
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