CPAN Bug Tracker Upgraded to RT 5

The Perl programming language has an online resource for sharing open source Perl modules called the Comprehensive Perl Archive Network (CPAN) that hosts 196,755 Perl modules in 42,327 distributions. Starting in 2001, Best Practical started providing a Request Tracker instance at rt.cpan.org with a queue for every distribution on CPAN. So as you can see in the numbers above, that means rt.cpan.org has over 42,000 queues in it!

Over time, this instance, like many other RTs out in the world, continued to run and provide this service without RT version updates. While it started to show its age from a design perspective, it was fairly low effort to keep it patched and running, until we reached end-of-life on the underlying Linux operating system. This forced us to think about think about how we would get the OS and all of the supporting software updated.

The world has changed quite a bit since 2001 and there are other options for open source developers to track issues for their modules. Given this, we initially considered converting the service to a read-only archive mode. But following that announcement, many people in the Perl community made it clear they depended on rt.cpan.org to help them maintain their modules and asked if there was a way to keep it running. Hearing this feedback from the community, The Perl Foundation agreed to fund the work to upgrade the system.

As you can see by visiting the site today, rt.cpan.org is now running on RT 5, and it’s now on our managed RT hosting service. How did we do it? The project involved migrating all of the existing data in the existing database. We also used RT's migration tools to move from one back-end database to another. The new system has an updated OS and we also updated all supporting software like Apache, the database, and all of the supporting Perl modules RT relies on.

Finally, the majority of the effort went into forward-porting custom code that provides features specific to running a large RT for CPAN authors. The majority of the custom code was already in RT extensions, which makes finding and updating customizations much easier. When we find places where RT code has been changed directly, we move those changes to extensions to make it easier to manage and upgrade RT in the future.

If you have an RT system that has been happily running for many years, some of this might sound familiar. It "just runs" until the system reaches a point where you will no longer get security patches for the OS. As we showed with this project, it's always possible to upgrade and get your RT updated to the latest versions. We have even done upgrades for RTs as far back as RT version 2.

Thanks to the Perl NOC team Robert Spier and Ask Bjørn Hansen for maintaining rt.cpan.org for many, many years and thanks to The Perl Foundation for providing funding for this upgrade and migration project. The Perl community can now use this resource for many more years running on the newest RT available.

Share this post: