Collection of CPAN distributions often used by jonasbn
Bundle::JONASBN is deprecated
Please use Task::BeLike::JONASBN instead. This space will be used for Task::BeLike::JONASBN in the future, which has been implemented based on a refactoring of Bundle::JONASBN
Bundles have been around for some time on the CPAN. The idea behind bundles are that you can create a meta-distribution containing references to other modules. The reasons for making a meta-distribution are many, but here are some common motivations:
- Easy installation of all the distributions you normally install and use
- A bundle representing the distributions you need in your stack
- A bundle with all of your own modules for easy handling
Bundles are easy to make. You create a standard Perl package
In that package you create a POD section with the heading 'CONTENTS'
Under this heading you simply list your requested bundle contents.
Bundles require some special magic on the client side to parse the
CONTENTS section, in this case primarily the CPAN client and the requirements for developing a bundle are quite special and IMHO error prone. Well it took me 4 releases to get it right, I was simply not grasping the magic part.
Adam Kennedy at some point recognized this weakness in the tool chain and introduced Task, a new much simpler approach. Task is based simply on writing up the requirements in the build file, whether you use Module::Build, ExtUtils::MakeMaker or Module::Install.
Tasks are easier to maintain and validate.
I was in that lucky position that I had put all my requirements in my
Build.PL from day release 0.01. So when I choose to migrate to a Task based approach it was just a matter of renaming packages etc.
Much of all my trouble was due to the fact that I had thought that the approach would be the approach used in Task. But AFAIK it is a combination of package name:
Bundle:: and the
My original idea was to have the list in
Build.PL and the let the
CONTENTS section, be auto-generated. So Bundle::JONASBN and Task::BeLike::JONASBN contain it's own custom build system, based on a sub class of Module::Build. The build system (Module::Build::Bundle) read the requirements from
Build.PL and inserts this in the
CONTENTS section, alphabetized.
I attempted to let the build system create beautiful POD, instead of the standardized used in bundles. It took me several attempts to figure out that it was the reason my particular bundle was not working as expected.
I have now migrated to the
Task approach and reinstated the beautification of the POD and everything works well and looks nice.
These are the distributions I use, which are also mentioned in this Wiki and have the proper label.