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.
I started off by writing a script to process the CPAN Index and permissions dump (06perms.txt). It looked for pairs of packages that differed only in case. There were about 350 cases. Sadly I didn't save the first file generated.
Over the last 3 years I have steadily worked through the list. The most common situations were:
Dealing with each case often meant writing an email to two different authors, explaining about the change in PAUSE, and outlining different ways to resolve the situation. Some were quickly resolved, but others required iteration. Where I could, I submitted pull requests.
Some people were hard to track down, but everyone was very friendly in responding to my emails, and in a lot of cases promptly did a release with a renamed module, or did whatever else was suggested. Thank you to them all.
Coming into this year's PTS, I had 7 cases left. I didn't want to fix the final ones until issue #250 was fixed: changing the case of your module would result in clashing indexing permissions. Rik Signes fixed that this year, so I could finally resolve the last 7.
% pause-permissions-case-conflicts
0 packages with conflicts
Hooray!
PAUSE won't let this happen again.
comments powered by Disqus