What after the Pull Request Challenge?

CPAN-PRC Sat 6 January 2018

Earlier this week I posted, that this would be the final year of the CPAN Pull Request Challenge (PRC). A number of people have asked why I'm stopping, and offered to help keep it going. In this post I'll expand on why I think it's time to stop, and also share some thoughts on what could follow the PRC.

Why is it time to stop?

For the first year of the PRC, I considered all CPAN distributions fair game (well, all dists with a github repo listed in the metadata, which is nearly 40% of CPAN). During that first year, a number of authors asked for either some or all of their dists to be excluded. So I added those capabilities to my scripts as we went along.

I collected feedback from both authors and participants at the end of the first year, and one strong bit of feedback from authors was that I should change the model to be "opt in". So I did that for the second year: I emailed hundreds of authors and asked if they wanted to opt in (with options). A good number did, but plenty didn't. This means there is a much smaller pool of distributions to pick from each month.

I also have a general rule to only assign each distribution once, as some distributions were assigned multiple times, with PRs not being merged. I also limit assignments so that by default any given author will only have one distribution assigned per month. Authors can opt to have more assigned per month, and some have.

The code that selects distributions for assignment prioritises dists that are further "up river", and/or have bugs outstanding. So by now most good / obvious candidates have been assigned. New CPAN distributions are candidates, but generally they're not up river and tend not to have many open bugs. I more commonly get asked by participants to assign them a different distribution now, which doesn't surprise me.

In its current form, I think the PRC will have run its course by the end of the year. Sure, things could be tweaked to address at least some of the issues outlined above, but I think it's time for something else.

So, I will not be running the PRC in 2019, and I don't want to put effort into helping someone else run it, as I think it's time to stop.

What next?

Some key things that the PRC has shown me:

My goal for the PRC was to fight bit rot on CPAN: fix bugs, update distributions to follow modern conventions, and generally make CPAN better.

An alternative challenge could focus on fixing bugs. If based on github issues, then tagging could be used to mark issues as small, medium, or big. There are many bugs only listed in RT though, so build a DB from RT and github issues, and let participants select a bug to work on. Volunteers could tag issues in the database, to help people find relevant bugs to work on. Eg "XS", "pure perl", "documentation". Encourage people to work in teams.

If a small but persistent army of teams were working on fixing CPAN issues, engaging with authors, then it would encourage authors to tag issues on github, and move issues from RT to github.

Issues could then be opened for things like "change this dist to use File::Slurper instead of File::Slurp", and similar "river refactorings".

All of that takes effort: if you want to run a challenge, expect an ongoing level of effort required, and expect it to be more than you imagine :-)

comments powered by Disqus