Re: makeinfo 7.1 misses menu errors

2024-01-21 Thread Karl Berry
Hi Patrice,

then they can set CHECK_NORMAL_MENU_STRUCTURE on
explicitely.

It's easy to say that, but it creates an incompatibility for the 99.99%
case.  I can't set it for makeinfo 7.x without giving people using 6.x
(which is most everyone, downstream) a useless warning. Nor can I omit
it without great chance of messing up the manual.

Also, it feels painful to have to set a config file variable at all to
get a useful feature which has always been enabled by default. Indeed,
having better error messages was one of the primary advantages of C
makeinfo over Elisp texinfo-format-buffer, umpteen years ago.

My point is that some users may want to have menus that do not follow the
sectioning structure, it is perfectly correct, 

I understand. But my point is that, although it can be correct in
theory, in practice it is 99.99% (at least) caused by a mistake, not
intentional.  Therefore it sure seems to me that makeinfo should follow
the 99.99% case, not the .001% case, just because of some theoretical
possibility.

The new features to support normally-structured manuals are great, but
because they are so new, they can't yet be used for manuals intended to
be widely distributed.  I could not use them for automake, for example,
without causing tremendous trouble with all the distros and users using
older makeinfos. Which will be the case for many years yet.

I agree that setting CHECK_NORMAL_MENU_STRUCTURE on is best for most
manuals.  However, it would lead to emitting warnings for correct, even
if rare cases, which I find very unfortunate.  

I understand the principle, but for me the lossage in practice is even
more unfortunate (by far). It sure seems to me that the "rare" case
should be the one to have to make the config file setting. Indeed, the
very fact of making that config file setting would helpfully alert
contributors and builders that "this is not a normally-structured
manual".

I dearly hope you will reconsider. --thanks, karl.



Re: makeinfo 7.1 misses menu errors

2024-01-21 Thread Patrice Dumas
On Sat, Jan 20, 2024 at 07:06:44PM +, Gavin Smith wrote:
> On Sat, Jan 20, 2024 at 06:45:06PM +0100, Patrice Dumas wrote:
> > > That reply pertained to the case of a missing menu entry.  Your case
> > > is the opposite: a superfluous menu entry.
> > 
> > To me, the manual with an entry leading to a node that do not
> > corresponds to the sectioning structure is perfectly acceptable.  I
> > still do not see any issue in having the need to set
> > CHECK_NORMAL_MENU_STRUCTURE to get warnings.  I can't see why the user
> > would not want to have a menu that do not follow the sectioning
> > structure.
> 
> I have difficulty following the last sentence here.  Users may want
> to have menus that follow the menu structure if they have existing
> Texinfo documents that are structured that way, and they are not
> ready or willing to delete all of their @menu blocks to generate all
> menus automatically.

Of course, but then they can set CHECK_NORMAL_MENU_STRUCTURE on
explicitely.

My point is that some users may want to have menus that do not follow the
sectioning structure, it is perfectly correct, and it seems to me wrong
to have warnings, in the default case, for a correct use of @menu.

> > To me it was true before, menus were/are as much a list of links as
> > structuring commands, and it is even more so today, as now fully
> > automatic menus can be obtained with descriptions with @nodedescription.
> > Explicit menus are now needed only if one want a structure not following
> > the sectioning structure.
> 
> This goes against the practice of the vast majority of existing Texinfo
> manuals, so this existing practice should be well supported.

I agree that setting CHECK_NORMAL_MENU_STRUCTURE on is best for most
manuals.  However, it would lead to emitting warnings for correct, even
if rare cases, which I find very unfortunate.  If a user knows that its
manual menus are supposed to follow the sectioning structure, then
he/she can set CHECK_NORMAL_MENU_STRUCTURE on.

-- 
Pat