Require all your users to rewrite their scripts using the new interface. Theoretically the best and most correct option, might be best in some cases, but not likely unless time has no value.
I don't think you're giving this option enough credit. The issue is not whether time has value; it's whether you'll spend more time providing wrappers and backwards-compatibility shims than rewriting all code that uses the interface.

I understand that it may be your users' time versus your time, but surely those aren't complete noninterchangeable? If you volunteer to go through all current users' code and update them to the new interface, then will they really have that big of an issue with it changing? And in the process, you'll learn for certain whether the new API really handles actual users' needs.

Admittedly, this only works with a very limited user base (and almost certainly only in a closed-source situation), but I'm guessing that's the situation you're in anyway.

In short: never pass up an opportunity to avoid the backwards-compatibility abyss. If you're going to write wrappers or adapters or whatever, be very very sure that you really need to and aren't just bending over backwards for artificial reasons. You'll be stuck with it soon enough; postpone the inevitable as long as you possibly can.

Also, take a look at ingy's only for requesting specific versions of a module.


I work for Reactrix Systems, and am willing to admit it.

In reply to Re: How to avoid (or handle) module interface changes by sfink
in thread How to avoid (or handle) module interface changes by chester

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.