G'day Dallaylaen,

[Note: It is unclear from your post whether the deprecation warnings are from your own or third-party CPAN module(s). If the former, some of what follows may not be pertinent.]

You wrote about "... backward compatibility ..."; however, you also need to consider forward compatibility.

If you search perldiag, you'll find entries containing text like:

"... is deprecated, and will disappear in Perl 5.xx ... (D deprecated) ..."

"Deprecated ... This will be a fatal error in Perl 5.xx ... (D deprecated) ..."

"... (F) ... was deprecated in Perl 5.xx, and became fatal in Perl 5.yy."

When you use modules, you can specify a minimum version for those modules. You can also specify a minimum Perl version with use. Also see the no function.

The if pragma can be used to conditionally load modules based on the current Perl version. (Its conditions are not limited to this type of check.)

In your Makefile.PL, you can specify a minimum version for both Perl and dependent modules: see ExtUtils::MakeMaker. Module::Build offers similar facilities.

Provide clear documentation. Obviously, this will depend on how you end up handling this. You might provide a final end-of-life version of X::Y::Old with doco recommending changing to X::Y::New. You might update the current module with doco explaining why this version is preferred. Use POD and the README, INSTALL and Changes files as appropriate. I'd recommend using cross-references (e.g. "See the INSTALL file for details.") rather than copy/pasting tracts of doco from one place to another (which will almost invariably end up getting out of sync).

— Ken


In reply to Re: Sane deprecation policy for a CPAN module? by kcott
in thread Sane deprecation policy for a CPAN module? by Dallaylaen

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.