Subject: Re: bug#39121: 27.0.60; occur: Add bindings for next-error-no-select

From: Mattias Engdegård <[email-masked]>
Date: Sun, 25 Jul 2021 20:54:47 +0200

25 juli 2021 kl. 18.27 skrev Eli Zaretskii <[email-masked]>:

> The NEWS file doesn't necessarily describe only stuff documented
> somewhere, it also describes changes that aren't documented anywhere
> but the source code.

Yes, but then it's always something that affects the user in some way, isn't it? Mentioning changed internals doesn't seem to be standard practice, but I could be wrong about that. Would you point out a few examples of where we described changed aspects of undocumented implementation details in NEWS? That would support your view and help me understand it better.

The question is also whether it should be documented at all. The fact that it never was before, as well as the general ad-hoc nature of the interface, are strong indicators that it probably shouldn't be.

As a case in point: until Lars and I fixed it, the use of occur-mode in tex-mode.el had been broken since at least Emacs 24, in equal parts for reasons of bit-rot (implementation details changed) and incorrect assumptions of interface invariants. And this is an Emacs core package.

>  Suppose someone read the source of replace.el,
> found out about this property, and uses it to do something, either
> privately or for some 3rd-part package.  Put yourself in the shows of
> that person and ask yourself whether you'd like to know that this kind
> of change has been installed in Emacs.

The `occur-target` property alone is far from sufficient for populating occur-mode buffers; it is one implementation detail of many. A little knowledge and all that.

It would have been different if we had changed the implementation incompatibly; in such case, I agree it would have been polite to issue a notice about it. But nothing should break as a result of the change we are talking about.

> Since you introduced the new format, you probably thought it to be
> better than the existing one, right?  Then telling others about that
> would be a good service, IMO.

The change was made exclusively for improving Occur itself, and the external packages that I have seen would generally draw little advantage from doing anything differently. Of course, I haven't seen them all, but having other people depending on implementation details of your software is a maintenance burden which either impedes progress.