cpan cleaning Archives

CPAN Cleaning Day 2457044: Compiler::Lexer

In my quest to clean up my CPAN distributions and to normalize them, I've been working on CPAN::Critic, my unreleased tool that looks at my directory and complains about things I don't like. That's going nicely for the most part, but I ran into a small problem that's taken me down a bit of a rabbit hole of C++. All this in the same week I wrote a Python program.

I want to check that the minimum version of Perl the code requires is the same as the /users/brian_d_foy/cpan-cleaning/index.html

CPAN Cleaning Day 2457027: Changes and README

I spent another day of prosaic adjustments to my CPAN distributions. For quite awhile the chaos of the Changes and README files have bothered me, so I wanted to think about those. And, many of the files I scheduled for deletion disappeared from PAUSE today.

I'd like Changes to have structured information that a program can turn into a data structure (and query, such as "What version fixed GitHub issue #137?". We don't quite have that, but there is the start of a specification in CPAN::Changes::Spec a…

My CPAN Cleaning, Day 2457025.500000

My second day of CPAN Cleaning was just the sort of work that I like: organizing a chaotic mess into something I can work with. My CPAN distributions are a mix of almost everything I've done in my history as a CPAN author. There was a CVS repository in the mix, several things left over from Sourceforge, and various ways of using Git. Even in the Git repos, many files still had CVS tags. A surprising number of files don't end in a newline, making for apparently pointless file changes.

My CPAN Cleaning, Day 2457023.500000

Read my other entries in "cpan cleaning"

With some encouragement from Neil Bowers, I'm tidying up my CPAN footprint. Over the years I've collected modules I did not write, permissions I never used, and all sorts of other situations that muddied the data when I what to create a list of CPAN objects I want to pay attention to. On the first day of the new year (check out the sweet Julian Date converter)…

CPAN {Spring|Autumn} cleaning time again

Get rid of your old distributions on CPAN! A couple of years ago, I asked CPAN authors to visit their delete files PAUSE page to "increase their Schwartz". Sadly, the use.Perl page has disappeared; the Schwartz Factor is the ratio of latest distros to the total size of CPAN. I named it after Randal Schwartz, who invented MiniCPAN.

Wendy noted that deleting distros was a topic at the recent Lancaster Q…

Mark your modules as adoptable if you don't want them

Signal that you'd like to pass on your modules by giving the virtual PAUSE user ADOPTME permissions. I've always been amazed at one of the least appreciated features of CPAN: people will step up to maintain or shepherd modules that aren't scratching their itch. It's a different sort of activity than the long-term or drive-by participation that most open source projects rely on. There are a group of people who maintain CPAN projects that they don't even use. There are a few that I handle that I've never used in a program.

I think we can improve on this wonderful but underrated social f…

CPAN is much smaller, but let's get it below 7 Gb!

At the end of last week, I sent mail to all CPAN authors letting them know that they could delete older distributions from author directories. CPAN is pretty large: last week it was almost 8 GB, and today it's almost down to 7 GB. That puts the Schwartz Factor at about 1/7th. We can do better.

It's not the size that's the problem so much: disk is cheap (still, no need to waste it). The more distributions CPAN stores, the more the masters need to check when a mirror wants to rsync. For the most part, mirrors only need to delete the files that disappeared and want the ones that appeared. The other files (aside from the PAUSE files such as CHECKSUMS) should not have changed. The rsync program doesn't know anything special about CPAN though, so it still does all its work.

Tim Bunce, inadvertantly I think, started a long thread about possibly automating the PAUSE purging process. There are all sorts of technical suggestions and fights about filesystems. While they figure all that out, though, you can help those mirrors by cleaning up the ancient distributions in your PAUSE directory.

And, if you didn't get my email, sent individually to every CPAN author (asking the Perl NOC first, of course), you might also take the opportunity to update your PAUSE profile.

If you've already done your bit to make PAUSE smaller, you can still help by spreading the word. I'm sure a lot of CPAN authors didn't read my mail. :)

Tidy up your CPAN author directory, increase your Schwartz!

I used to encourage people to help CPAN Increase its Schwartz by making the ratio of the byte size of just the latest versions to all versions as high as possible. It's time to increase the schwartz again. Think of it as Spring cleaning (Autumn for you southern folks) for your CPAN directory.

Many people are arguing on the CPAN workers mailing list about who's opinion about rsyncing mirrors is the most worthy. While they huff and puff, you can help with just a couple minutes of your time.

If you have cruft in your CPAN directory that can safely live on BackPAN (which has everything ever uploaded), you can help keep the size of CPAN manageable by deleting that cruft. It's not so much the byte-size but the file size. In my CPAN mirror right now there is a bit over 120,000 files, so even if you think that your puny module going away won't do much good, its deletion reduces the file count as much as BioPerl or Number::Phone deleting one of theirs.

Simply log into your PAUSE account, follow the delete files link, and schedule some files for deletion. They go away after three days. You have the option to change your mind too. The files only disappear from PAUSE: they'll still be on BackPAN so you'll always have them.

About brian d foy

user-pic I'm the author of Mastering Perl, and the co-author of Learning Perl (6th Edition), Intermediate Perl, Programming Perl (4th Edition) and Effective Perl Programming (2nd Edition).