> From: Gavin Smith <gavinsmith0...@gmail.com> > Date: Sun, 26 Jan 2025 17:05:40 +0000 > Cc: pip...@protonmail.com, bug-texinfo@gnu.org > > Projects should declare a minimum version of texi2any to support for > developers to use.
We did. > The most reliable check of backwards compatibility > is to actually test processing a manual with an older version. That's not very practical. Developers and contributors rarely have more than a single version of Texinfo installed, and it's usually one of the latest ones. What happens in practice that the only people who bump into those problems, if they were left behind, are those who actually have the old version, and they in many cases build the documentation only very rarely. Which leaves this to the vigilance of the more active developers. But people make mistakes and miss stuff, so this is far from perfect. > > The alternative is for the Texinfo-using projects to > > develop specialized tools that would detect these issues, which > > doesn't sound justified to me. > > If the issue with . and , was a major problem, it should have come up > more since February 2016 (9 years ago). It comes up all the time in the Emacs development. It's just that no one reported it here until now. > Even if we did add an option to output a warning (which would probably > only take a few lines of code, as we still output a warning in some cases), > there would still be 10 years worth or so of Texinfo releases out there > that did not issue a warning, so contributors to the manual would still > often not get a warning. That's true, but at least we could recommend that people install that new version and activate the warning. The situation now is that we cannot give them any practical advice except manually ensuring there's punctuation after the braces. > It appears that the report here is coming from someone complaining on > someone else's behalf, and not a problem that they are directly having > themselves. It isn't hard to find the actual complaints on the Emacs mailing lists. I can give a pointer if needed. > > This is a broader subject. Indeed, makeinfo lacks version-checking > > directives, so one cannot safely use new language features if one > > wants to support older Texinfo releases. This causes very slow > > acceptance of new features, and consequently sub-optimal output. > > There is the @ifcommanddefined command which is documented in the > Texinfo manual, along with a discussion of how this can be used with > any version of Texinfo, even before the @ifcommanddefined command was > introduced. This would be sufficient to allow using any new commands > conditionally. Only for commands. > > It would be good if Texinfo had such version-checking directives added at > > some point. For example: > > > > @ifversion @atleast 10.1 > > ... stuff that only Texinfo 10.1 and newer supports ... > > @end ifversion > > What I can see happening is that this stuff gets added to a Texinfo > source file and then never gets removed, confusing people indefinitely. That's something projects are used to deal with. Version checks in source code is quite common, and routine maintenance takes care of removing the unneeded ones. In any case, this is the role of the project. > In the case of checking for . and , following @xref, the "new feature" was > a removal of an arbitrary restriction, which was supposed to make authoring > Texinfo files easier. I know. But if a project wants to support Texinfo before 6, it needs to have those punctuation characters.