For the first 20 or so years, PAUSE treated indexing permissions case sensitively. So Foobar was considered a different module from foobar. This caused problems on operating systems with case insensitive filesystems like MacOS and Windows. So at previous QA Hackathons and Toolchain Summits, it was decided that PAUSE should treat indexing permissions case insensitively. In 2016, at the Rugby QA Hackathon, I started a project to resolve the historical clashes in indexing permissions.Read more ...
A recent change to PAUSE means that examples included in a CPAN release are no longer scanned for package names to index, and aren't checked for permissions. This simplifies the rules about indexing and permissions, and also helps us resolve some historical permissions conflicts. In this post I'll present the problem(s), explain what has changed, and what this means for CPAN authors.Read more ...
Andreas König and I have been working to remove the modulelist
permissions from the PAUSE database.
At the QA Hackathon we worked through the remaining cases,
where relevant reviewing them with RJBS,
and most of them were removed on the last day of the QAH.
Following the QAH we've resolved the last handful, so there are
no longer any 'm' permissions in
This means that the relevant parts of PAUSE can be removed,
and a number of modules can be simplified.
This is the first part of a series about what happens when you upload a release to CPAN, via PAUSE. I started writing it as a single post, but it became way too long before I was even half way. This post will try to be the executive summary, or Reader's Digest condensed version if you like. Subsequent posts will dive into the details; I'll be filling gaps in my knowledge as I go, and expecting to be corrected on plenty of points as well.Read more ...
Last year I created PAUSE::Packages, which lets you iterate over all dists that PAUSE believes are still on CPAN. For a number of projects, including the CPAN Report 2013, I need to iterate over all releases of all dists. Yesterday I made the first release of CPAN::ReleaseHistory, which makes it easy to do that, in a similar way to PAUSE::Packages.Read more ...
I had a patch accepted which adds an
This was my first attempt at modifying a core module.
This post describes the function, why I wanted it, and my experience
adding it to a core module. And then fixing the bug I introduced!
I recently released a new version of my PAUSE::Packages module, which caches information about releases on CPAN and makes it easy to iterate over it. In this post I'll cover the motivation for this module, why I decided to transform the existing PAUSE export file, and how David Golden nudged me to use JSON.Read more ...