The purpose of the Alt module is to provide documentation explaining the Alt concept, how it works, and guidelines for using it well.
GitHub on the other hand, is not limited this way. Any author can make a fork, since GitHub repos are namespaced by author id.
On CPAN, even the author(s) of the module in question is limited by this, as they cannot release newer or older forks of their code, without introducing a new name.
To make an alternate CPAN version, leave everything exactly the same, except distribute the new version as "Alt-Foo-Bar-AltIdentifier".
When a user installs your module like so:
they will get your version of the Foo::Bar framework (Foo::Bar, Foo::Bar::Baz).
Obviously, this completely overlays the old Foo::Bar install, but that's the whole idea. The user isn't surprised by this because they just asked for an Alternate implementation. If they don't like it, they can simply reinstall the original Foo-Bar, or try some other alternate.
When Alt-IO-All-new is ``community approved'' it can replace IO-All. If people want the old code, they can can install Alt-IO-All-old.
Here are the basic guidelines for using the Alt namespace:
For instance, if MSTROUT wants to make an alternate IO-All distribution to make it even more crack fueled, he might call it:
He might also just call it:
By having 'Alt' at the start, it guarantees that it does not mess with future IO::All development. The ``phrase'' at the end can be anything unique to CPAN, but should describe the spirit of the alternate. If the alternate is meant to be short-lived, it can just be the author's CPAN id.
Since you are adding this module, you should add some doc to it explaining your Alternate version's improvements.
To use the IO::All example, if MSTROUT releases Alt-IO-All-MSTROUT when IO::All is at version '0.46', his IO::All module should have VERSION = '0.46', but his Alt::IO::All::MSTROUT could be VERSION '0.000005'. This should make the dist be Alt-IO-All-MSTROUT-0.000005.
If another module wants his version of IO::All, it should list Alt::IO::All::MSTROUT 0.000005 as a prereq, and then "use IO::All 0.46;" in the code.
Signing in to our system allows you to post your contributions and vote on the contributions of others. It will also allow you to get extra perts like having your favorites in the cloud and having your persistent personal notes wherever you go. More will be added as we scale up our services.
By signing in to our system, you agree our Member Terms and Conditions
Sign-in with one of the following services
Please select a screen name for NET SOUP.