Add a note that users of FATAL warnings are at risk during upgrades
authorYves Orton <demerphq@gmail.com>
Thu, 31 Oct 2013 12:38:43 +0000 (13:38 +0100)
committerYves Orton <demerphq@gmail.com>
Thu, 31 Oct 2013 12:43:20 +0000 (13:43 +0100)
Apparently it isn't obvious to all of our users that use of FATAL
warnings means that peoples code may break when they upgrade due
to the introduction of new warnings. Accordingly we document that
the use of FATAL warnings is entirely at the users risk, and that
we do not and will not consider the introduction of a warning as
an incompatible change, and that in particular the use of features
which are discouraged, unspecified, or whatnot may in the future
trigger new warnings, and thus under FATAL warnings break their code.

pod/perllexwarn.pod

index d423d05..733df81 100644 (file)
@@ -402,6 +402,23 @@ except for those in the "syntax" category.
 
     use warnings FATAL => 'all', NONFATAL => 'syntax';
 
+B<NOTE:> Users of FATAL warnings, especially those using C<FATAL => 'all'>
+should be fully aware that they are risking future portability of their
+programs by doing so. Perl makes absolutely no commitments to not
+introduce new warnings, or warnings categories in the future, and indeed
+we explicitly reserve the right to do so. Code that may not warn now may
+warn in a future release of Perl if the Perl5 development team deems it
+in the best interests of the community to do so.  Should code using FATAL
+warnings break due to the introduction of a new warning we will NOT
+consider it an incompatible change. Users of FATAL warnings should take
+special caution during upgrades to check to see if their code triggers
+any new warnings and should pay particular attention to the fine print of
+the documentation of the features they use to ensure they do not exploit
+features that are documented as risky, deprecated, or unspecified, or where
+the documentation says "so don't do that", or anything with the same sense
+and spirit. Use of such features in combination with FATAL warnings is
+ENTIRELY AT THE USERS RISK.
+
 =head2 Reporting Warnings from a Module
 X<warning, reporting> X<warning, registering>