Subject: bug#59121: 29.0.50; Gnus: Nnir is deprecated but not mention in the manual

From: Eric Abrahamsen <[email-masked]>
Date: Wed, 09 Nov 2022 14:01:24 -0800

Björn Bidar via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> Eric Abrahamsen <[email-masked]> writes:
>>>> I think the manual should mention that. I think such changes should be
>>>> documented right a way in general.
>>>
>>> Do you mean that you recently upgraded Emacs, and got a deprecation
>>> warning for a nnir-* variable, but there's no information in the Gnus
>>> manual about migrating away from nnir?
>>>
>>> That does seem like an oversight...
>>
>> Here's a potential documentation patch.
>
>> diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
>> index 7bcf334297..578273aede 100644
>> --- a/doc/misc/gnus.texi
>> +++ b/doc/misc/gnus.texi
>> @@ -21900,14 +21900,13 @@ About mairix
>>  @uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
>>  
>>  Though mairix might not be as flexible as other search tools like
>> -swish++ or namazu, which you can use via the @code{nnir} back end, it
>> -has the prime advantage of being incredibly fast.  On current systems, it
>> -can easily search through headers and message bodies of thousands and
>> -thousands of mails in well under a second.  Building the database
>> -necessary for searching might take a minute or two, but only has to be
>> -done once fully.  Afterwards, the updates are done incrementally and
>> -therefore are really fast, too.  Additionally, mairix is very easy to set
>> -up.
>> +swish++ or namazu, it has the prime advantage of being incredibly
>> +fast.  On current systems, it can easily search through headers and
>> +message bodies of thousands and thousands of mails in well under a
>> +second.  Building the database necessary for searching might take a
>> +minute or two, but only has to be done once fully.  Afterwards, the
>> +updates are done incrementally and therefore are really fast, too.
>> +Additionally, mairix is very easy to set up.
>>  For maximum speed though, mairix should be used with mails stored in
>>  @code{Maildir} or @code{MH} format (this includes the @code{nnml} back
>> @@ -22545,6 +22544,20 @@ nnmairix caveats
>>  
>
> What about remote searches such as IMAP?
> In any case since the search isn't asynchronous there's the caveat of
> Gnus locking up Emacs until it is done.
>
> This kinda goes out of the original topic but the manual doesn't mention
> much what can used to reduce the download when IMAP is used (caching etc.).
>
>> +@node nnir
>> +@section Migrating from nnir
>> +
>> +@cindex nnir
>> +
>> +Gnus' previous search engine was called nnir, and is now obsolete.  If
>> +you've upgraded Emacs and are now getting obsolete-variable warnings
>> +about @code{nnir-*} variables, migration is fairly straightforward.
>> +In addition to the variables raised by the warnings, all previous
>> +engine-specific variables can be updated by simply replacing the
>> +@code{nnir-} prefix with @code{gnus-search-}.  For instance,
>> +@code{nnir-notmuch-program} is now @code{gnus-search-notmuch-program}.
>
> The section should mention the exact version it was deprecated,
> instead of now it should be "and is deprecated since <version>".
> Something like a separate section about deprecated items could also be
> very useful. Some guide around the internet set variables which are no
> longer valid, if there is a section for each item deprecated
> with an explanation it could help greatly.

I can mention when nnir was deprecated, but that information is already
in the obsolete variable warning.

The fact is that the Emacs manual ships with Emacs, and if the manual
doesn't mention nnir, then you can be certain that the code doesn't,
either. There are more than 30 nnir customization options for which we'd
need to add obsoletion warnings, all of which warnings would be
redundant with the warning you'll already get from customizing
`nnir-method-default-engines'. Those options are all formed on a very
regular pattern, and very easy to update for gnus-search.

I will add something noting that the IMAP search engine is built in and
requires no configuration, but I think that's all.

Eric