|Think about Loose Coupling|
Is maintaining multiple versions of a CPAN module a terrible idea?by hippo (Curate)
|on Jun 05, 2014 at 19:42 UTC||Need Help??|
hippo has asked for the
wisdom of the Perl Monks concerning the following question:
Esteemed fellow monks, I have recently taken maintainership of a very old and long-neglected module on CPAN (no names, no pack-drill). Having put out a bug-fix release and pretty much cleared that queue my attention is now turning to the future. Initially, the plan was to overhaul some of the code to bring it in line with more modern best practices (and by "modern" here I mean post-millennial) such as using strict, removing default exports and so on.
However, the code as it stands has require 5.002; and the purist in me is loathe to break backward compatibility even for such good reasons and to such an old, old version of Perl.
So, the next idea is to tidy up the existing code somewhat while still maintaining the backwards compatibility and release a "final" version under the current major number and call that feature-complete for older perl versions. Then after that work can start on the updates which would break backwards compatibility, but would be released on the next major number. I would need to keep both tracks under development, but the older one just for bug fixes, etc.
The question is: how dumb an idea is this? Am I just making problems for myself further down the line? Should I just commit fully to going one way or the other?
For the record, I do not plan on making any great changes to the API and almost no changes to the underlying functionality, so I don't think releasing the fresher version under a different module name makes much sense in this particular case.
All opinions on this matter (particularly from seasoned PAUSE users) are welcome.