in reply to How to distribute complex perl based app
Reading this, I have the impression, that the MICR/OCR modules contribute a significant but not a major part to the overall applications functionality? I further assume that they make only a relatively small part of the projects total size (e.g. some kB MICR*.pm + some MB for bitmaps, configs, templates, etc.)?
If this is true, the application should deserve its own project site and the MICR module its slot at CPAN. It doesn't make sense that an overwhelmingly large part of the project deals with just demonstrating the functionality of a single module. That would also degrade your application to just a demo - which it doesn't seem to be. On the other side, most people downloading your module might not be interested in the very specific functionality, the application offers.
So the question is where to draw the line between module (CPAN) and application (project site)?
It is a litmus test for a modules usefulness, that it can demonstrate its
capabilities with a relatively short amount of demo code. If you cannot come up with a small
demo program, the module might not be fit for the given purpose, yet. The demo is not supposed
to do something useful - it's aim is to educate. A potential demo
candidate might be found among the CLI tools.
If bitmaps are part of the module, e.g. for calibration purpose, put them into the modules package, but make it as small as possible in order to focus on the very specific functionality the module promises to deliver. A link in the modules documentation can point to your projects site, where you can keep CLI tools and the web based application for those interested in more than the module or those
who want to see the modules usage in a bigger application.
Splitting application and module(s) might have the additional advantage, that you can concentrate on the application and don't have to update the CPAN any time, you have added a new feature to your application which doesn't fit into a module. I would expect, that the application provides more opportunities for development (changes at a higher rate) than the module after it has stabilised. Although beta/preview-versions of the module could be made available at the project site first, increasing quality and stability of the module uploaded to CPAN. The application site comes handy too if you develop another application based on the same module or if you want to provide some megabytes of OCRs for demo- and test-purpose.
Just some thoughts, ...
|
|---|