RT – Action Plan for CPAN Authors

CPAN RT

CPAN RT is going away. CPAN authors have until the beginning of March to extract any useful information from it.

RT is the “Request Tracker”, a bug tracking system that is written by Best Practical. For almost as long as I can remember, anyone who uploads a module to CPAN gets a free ticket queue for their module at rt.cpan.org. MetaCPAN assumes that’s where people should report bugs in your module and helpfully adds an “issues” link that goes to the appropriate page in RT.

But now that system is going away. It will be switched off on the 1st March 2021. The Perl NOC team is spread pretty thinly and they just don’t have the resources to keep it running.

Gabor has published a video talking about what this means and some of the potential problems. But I thought it would be useful to work on a list of things that CPAN authors should be thinking about over the next three months.

Firstly, and most importantly, you’ll need somewhere new for people to report problems with your modules. For most people, that’ll be simple enough. If you host your code repos somewhere like GitHub, then you could just use the issue trackers that most of those services provide. If you host your own code repos (or don’t have public code repos), then you’ll need to find an alternative solution.

Next you’ll need to tell people where to find your new bug tracker. You do this by adding it to the metadata for your CPAN distribution. If, like most people, you provide a Makefile.PL in your distribution, then you’ll want to add a snippet like this to your code:

It’s likely that you already have a “resources” key in your data structure (containing, for example, a link to your code repo), in which case you just need to add the “bugtracker” key inside it. When you release this new update to CPAN, the “issues” link will change to point to your new bug tracker.

You then have the problem of dealing with the tickets that are currently in your RT queues. I suggest one or more of the following strategies:

  1. Go through the list and fix any that can be easily fixed. I found two like that when looking through my list this morning. If you’re releasing new versions of the modules (to add the new bug tracker information) then you might as well fix a bug or two at the same time.
  2. Look for tickets that can be closed. My list contains some very old tickets. I mean like fifteen years old. If someone had a problem installing one of your modules fifteen years ago and hasn’t followed-up more recently, then there’s a good chance that they no longer care about the solution. What I’ve been doing is to check on CPAN Testers to see if anyone else has seen a similar problem. If I see other reports, I know that it’s something that needs to be fixed. If there’s just the one in RT, then I close it with a message saying (paraphrased) “if this is still a problem that you’d like me to investigate, then please open a new ticket at [link to new bug tracker]”.
  3. Then you’re left with the tickets that you’d still like to address at some point. The Perl NOC team say that they’ll probably make a static archive of the old RT tickets available. But it would be good to get those tickets over to your new bug tracker. As I’m using GitHub for my new bug trackers, and that’s currently the most popular solution other than the CPAN RT itself, I’m hoping that someone cleverer than me will write some code that will make moving the tickets easy. But if nothing happens before the end of January, I might have to look into that myself.

I’ve got a bit of work to do in this area myself. Although I’ve been using GitHub for all of my CPAN code for a long time, I haven’t been advertising the fact that I’d prefer people to use GitHub for bug reporting too. So I need to update all of my modules with the new bug tracker information included. I’ll do that over the next few weeks.

I have a couple of tools that might help in this process. Firstly, I’ve just added to CPAN Dashboard a column that links to the module’s bug tracker if one exists. I can use that to know which modules need to be updated.

You could add yourself to CPAN Dashboard if you wanted to get that information for your modules. But if you don’t want to do that, I’ve written a really short program that you can use to find your CPAN distributions that don’t include the bug tracker information. It’s available as a Gist.

Have I missed anything? I mean, yes, I know there are a large number of unmaintained CPAN distributions that no-one will get round to updating. But this post was aimed at active CPAN authors. If there’s anything else you think we should be doing, then please let me know in the comments.

2 thoughts on “RT – Action Plan for CPAN Authors

  1. As another alternative, GitLab offers their top license tier for free to qualifying OSS projects, of which I suspect many Perl modules are: https://about.gitlab.com/solutions/open-source/join/ This license includes issue tracking, our integrated CI/CD, and a suite of security tools. Full disclosure: I work GitLab as a Product Manager. I spent my pre-product career writing quite a bit of Perl and have never lost my fondness for it. I do still casually follow the community news and am sad to see some of the old systems and infrastructure fading away. I’m posting this in hopes that GitLab might provide a soft landing to at least a few projects who find our OSS offering compelling and might not have be aware of what we do.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.