Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Releasing a module with breaking changes

by jdrago_999 (Hermit)
on Nov 11, 2008 at 23:52 UTC ( #723026=perlquestion: print w/ replies, xml ) Need Help??
jdrago_999 has asked for the wisdom of the Perl Monks concerning the following question:

Monks -

Soon, a new release of Apache2::ASP will be made, and with it will come some breaking changes.

Changes to the $Config and $Response, mostly, but anyone upgrading from 1.x to 2.x will get bitten and will need to make some minor code adjustments.

Aside from the obvious fact that this is Generally Not Good, how should I go about letting the (albeit small) user-base of Apache2::ASP know about the upcoming changes?

Ideas?

Comment on Releasing a module with breaking changes
Re: Releasing a module with breaking changes
by lima1 (Curate) on Nov 12, 2008 at 00:39 UTC
Re: Releasing a module with breaking changes
by dragonchild (Archbishop) on Nov 12, 2008 at 00:52 UTC
    When I did the upgrade in DBM::Deep 0.9 to 1.x, the file format needed to be broken severely. I made it very clear in the documentation what was up. I also provided detection for old file formats and an upgrader (that mostly works). Beyond that, there's not much you can do without changing namespaces (like Apache -> Apache2).

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: Releasing a module with breaking changes
by salva (Abbot) on Nov 12, 2008 at 08:54 UTC
    1. Rename the module to something like Apache::ASP::Old or similar.
    2. Make the Apache2::ASP in CPAN, a module that when loaded warns about the future changes, telling the user to use Apache2::ASP::Old or to try the new development versions. Then load Apache::ASP::Old so nothing gets broken at this point.
    3. Release development versions using 2.xx_xx version numbers that are not automatically installed from CPAN.
    4. After a while, when the new version is stable enough, replace Apache2::ASP with the new version.

      Sage advice.

      Thanks for putting these thoughts all in one spot.

      I like the Apache2::ASP::Old thing - reminds me of Class::DBI::Frozen.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://723026]
Approved by Arunbear
Front-paged by Arunbear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (12)
As of 2014-12-18 21:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (66 votes), past polls