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 feature. I created the ADOPTME user awhile ago to house the distributions from PAUSE authors who had passed away. I would modify the build file to give a warning, bump the version, and upload as ADOPTME. That's too much work, though.

Around the same time, Andreas started to provide the PAUSE permissions data as 06perms.txt. This example shows that I have "first-come" permissions (a quirk of PAUSE and me being an admin), Sinan has "module-list" permissions, and there are three comaintainers:

Crypt::SSLeay,BDFOY,f
Crypt::SSLeay,CHAMAS,c
Crypt::SSLeay,DLAND,c
Crypt::SSLeay,GAAS,c
Crypt::SSLeay,NANIS,m

If you give permissions to ADOPTME, those permissions will show up in
the permissions list too:

Mac::FileSpec::Unixish,ADOPTME,c
Mac::RecentDocuments,ADOPTME,f
Mac::iPhoto::Shell,ADOPTME,m
Mac::iTunes,ADOPTME,m
Math::Cephes,ADOPTME,c

(New maintainers should kick out ADOPTME as a co-maintainer, though. I'm pretty sure Math::Cephes has a full time maintainer now).

There are several ways you can add ADOPTME as a maintainer:

  • If you've registered the namespace, you can edit "CPAN User-ID" field. You lose all control of the module this way.
  • For all modules, you can pass primary maintainership to someone else.
  • You can give a user co-maintainership


Having done that, when someone comes to the PAUSE admins asking to take over a module, we can short circuit our normally conservative "announce publicly and wait" process to transfer it immediately. Even active PAUSE contributors can use this to avoid having to respond to takeover requests for modules they no longer use. We might even be able to make this a no-human-contact process. You log into your PAUSE account, use a form to ask for permission for the adoptable namespace, and get permissions immediately. Of course, that depends on me actually building that into PAUSE myself, most likely. All the PAUSE code is in Github, though, if someone wants to do it themselves.

Even better than that, though, is the list of adoptable modules that we can advertise to people who'd like to work on a project that they didn't start themselves; there are a surprising number of requests for that sort of thing. PAUSE also has module status flags that can indicate this. The support level "a" flag denotes "abandoned; volunteers welcome to take over maintainance". However, you have to register the namespace to use that, and someone (probably me) has to manually approve the registration. That's a bit of extra work you don't want if you're actually abandoning the module.

I'd really like to see someone hack MetaCPAN to show an "Adopt this module!" thingy in the search results and the various module pages. It's probably a long shot of anyone hacking RT to show people reporting or examining module bugs that the module is adoptable.

5 Comments

That's closely related to my maintainer flag in the METAs (http://babyl.dyndns.org/techblog/entry/help-wanted). The support is already merged in with MetaCPAN. There is indubitably an occasion here to merge the two efforts together.

The current list of modules up for adoption can be found at https://rt.cpan.org/Dist/ByMaintainer.html?Name=ADOPTME.

I clicked on the above link -- first I got nothing but a form asking me what I wanted to search for -- thought maybe I had to be logged in -- then I got in:

The user you specified, ADOPTME., could not be found.

Maybe they have passed on and need to be adopted? ;^)

Here's a link so you can view the modules up for adoption without signing in:

https://rt.cpan.org/Public/Dist/ByMaintainer.html?Name=ADOPTME

Leave a comment

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).