This blog post outlines an idea for a service that informs people when their CPAN distributions gain reverse dependencies. Many authors are probably not even aware that their distributions have reverse dependencies, and what the implications of that can be. Sending them an email gives us a chance to congratulate and engage authors, but also to educate and encourage them in some new practices.

The first step toward change is awareness. — Nathaniel Branden

Let's say that a new CPAN author releases their first dist to CPAN (we should send them a congratulation message, but that's a different blog post). A bit further down the line someone else might start using the dist, but the author won't know about this unless bugs start getting submitted, or they let the author know via email.

The barrier to entry for CPAN is low, and people are encouraged to submit their modules: "it's easy, it's fun!". This is good. But we're not so good at following up with "ok, so now you're a CPAN author, here are some things you might like to think/learn about". A particular case is when other CPAN distributions start depending on you, and the implications of that, particularly when making releases. The most obvious example is that if Foo starts using your Bar , then if you release a broken version of Bar , then you've broken Foo for anyone trying to install it from that point forwards.

So how about the first time an author gains a reverse dependency (for any dist), a service sends them an email:

Congratulations! Your Foo-Bar dist is now being used by the WhizzBang distribution on CPAN (confirm this for yourself using the Reverse Dependencies sidebar link in MetaCPAN). And the WhizzBang distribution is ultimately dependened on by 5 other distributions. Apart from all the fame and glory that comes with this, what does it mean for you? [information and links to useful resources]

Whenever you have a dist that gets a first revdep, you'd get another message too. You wouldn't get a message every time you gain a revdep though, perhaps on a logarithmic scale (ie on 10th, 100th, etc).

Other situations where you might get a notification:

When you're given release permission on someone else's distribution (eg adoption, joining a team, getting co-maint).

When you gain a darkpan dependency.

This should be an opt-out service that people learn about the first time they get an email from it. That email would also tell them how to opt-out or change their notification settings, just like CPAN Testers does.

I think this could be done in two pieces:

Add the preferences to PAUSE, as part of the author's account settings. Put that information in 00whois, or somewhere else if that's not deemed appropriate.

A separate service that monitors CPAN uploads and 06perms.txt and maintains its own history of actions, and sends out emails.

Or obviously this could be an entirely stand-alone service, that you log into using your PAUSE credentials.

There's a bootstrapping question: what do we do about all existing authors with reverse dependencies?

There have been previous discussions on the idea of sending a periodic (eg yearly) email to all CPAN authors. We could tell authors about their reverse dependencies in such an email, but I think the key reason to do this separately is timely notification when a new CPAN author gains their first ever reverse dependency.

I think this would give us a way to encourage new contributors to CPAN while at the same time educating them about good practices. This idea came up as a result of discussions before and during the QAH.

Please enable JavaScript to view the comments powered by Disqus.

Disqus