texinfo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

a scheduled compatibility handling in the Texinfo language?


From: Patrice Dumas
Subject: a scheduled compatibility handling in the Texinfo language?
Date: Fri, 28 Oct 2011 11:08:25 +0200
User-agent: Mutt/1.4.2.2i

Hello,

I am wondering since quite a long time if we couldn't try to have a planned
handling of incompatible changes in the Texinfo language.  The idea would
be that users know by advance how much time they have before they need to
set a backward compatibility flag, and how much time they have before a
feature is completly phased out.  I take the user side when proposing that, 
as it always bother me that in many cases in free software there is no such
possibilities to be able to plan for changes, and users ar at the mercy of
the software maintainers, who, being benevolent are not accountable anyway.

My idea is along the following.  There are 2 time frames, in the first time
frame the new feature is experimental, in the second the old behaviour is
deprecated, and those 2 periods would exist for every change.  Each of
these periods would have a defined length, for example 10 years for each.
In the 'experimental' time, the old feature would be on in the default case.
the new feature would be set by an @-command. If the feature name is
  mynewfeature
the feature would be set with
  @compatibilitymynewfeature on

In the 'deprecated' time frame, the new feature would be set automatically
and could be disabled with
  @compatibilitymynewfeature off

And after the 'deprecated' time frame, the old feature wouldn't be officially
supported anymore.

In parallel we would have, in the documentation a record of the new features
which would explain the new feature, state the date of the 'experimental' 
time frame beginning, the name of the feature, and give ideas on how to 
migrate manuals to the new feature to users.

For example, for deprecated commands like @ctrl{}, this could be

  @item ctrlcommand @tab 2003 @tab ctrl command is deprecated, use @@key and 
@@kbd

If @compatibilityctrlcommand is not set there would be a warning about 
@ctrl being deprecated, otherwise there won't be such a warning.

We would also document tat in the NEWS file, and maybe indicate it prominently
in release notes sent to announce lists or the like.


This is not necessarily something that we would do for every feature change, 
but as much as possible, especially when users have to take actions, or we
have to change something in the code.

Some recent examples I can think about that could benefit this feature are
* the warning (or not) for user defined macros without argument not followed
  by empty braces
* warnings for : in index entries
* deprecation warnings for @refill

We would try to have the same handling for both TeX and texi2any (that is have
the same list of @compatibilitysomething and act similarly, when it make sense),
and maybe we could also communicate with other converter maintainers on this
such that they also follow the same conventions (although I don't know if there
are other texinfo converters that are still maintained).

Wdyt?

-- 
Pat



reply via email to

[Prev in Thread] Current Thread [Next in Thread]