Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

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?


  • Comment on Releasing a module with breaking changes

Replies are listed 'Best First'.
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 (Canon) 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.

Re: Releasing a module with breaking changes
by lima1 (Curate) on Nov 12, 2008 at 00:39 UTC

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2021-11-27 03:07 GMT
Find Nodes?
    Voting Booth?

    No recent polls found