TeX-Live / texdoc

Find and view documentation in TeX Live
https://tug.org/texdoc/
GNU General Public License v3.0
47 stars 7 forks source link

Send users online when they have no local docs. #79

Closed gucci-on-fleek closed 2 years ago

gucci-on-fleek commented 2 years ago

Many users choose to install TeX Live without any documentation. This means that texdoc is completely unhelpful, since it only searches locally. This commit makes it so that texdoc detects if any local documentation exists; if it does, it searches as normal; if not, it informs the user and offers to open online documentation for them.

This is mentioned in the wiki TODO as a desirable feature:

Getting documents from CTAN mirrors

Some TeX Live users install TeX Live without documentation. For those users, current Texdoc is useless at all.

Then, how about implementing a feature to download a document on demand if the document does not exist in the local TEXMFs? I first thought that this is meaningless because it requires the Internet connection; thus, it is far better for the users who can always use (good) newtworks to search with Google (or whatever). But if we cache the document once downloaded, doesn't it make the feature useful?

The problem here is that the versions of the documents and those of the actual packages installed in the local TEXMFs could be different. Can we ignore that difference?

My current implementation is pretty crude, so I'll likely need to make some changes before you can merge this. Please let me know if you have any suggestions or feedback.

wtsnjp commented 2 years ago

Thank you for the pull request!

I generally agree on fallbacking to an online document if we cannot find a local one. Based on your suggested implementation, I would like to add some of my thoughts.

I'm afraid checking the absence of texdoc.pdf does not ensure the fact "there is not any document in the TEXMF trees." Theoretically, one can install some collections of TeX Live and add our texdoc package without its documentation. I would instead suggest first just trying the regular search for each query. Then only in case we find a document in the catalog but the actual local file does not exist, prompt the Y/N decision about whether to access an online document on texdoc.org.

Also, as I mentioned in TODO, the online documentation for a package can be incompatible with the package installed in the user's local because of the version difference. Let us warn of this fact in the message.

gucci-on-fleek commented 2 years ago

I would instead suggest first just trying the regular search for each query. Then only in case we find a document in the catalog but the actual local file does not exist, prompt the Y/N decision about whether to access an online document on texdoc.org.

I like this idea, but I'm not sure how to implement it. When you don't install documentation, the local texlive.tlpdb completely omits any docfiles entries, and the ls-R databases of course won't contain anything. The other issue is that with texdoc's fuzzy searching, I'm not sure what score threshold I should use to determine whether or not to look online. In my experience, texdoc will almost always find something (see https://gitlab.com/islandoftex/images/texdoc-online/-/issues/9), so I'm not sure where to draw the line. Let me know if you have any ideas here.

Also, as I mentioned in TODO, the online documentation for a package can be incompatible with the package installed in the user's local because of the version difference. Let us warn of this fact in the message.

Definitely a good idea.

wtsnjp commented 2 years ago

When you don't install documentation, the local texlive.tlpdb completely omits any docfiles entries

Oh, I didn't know this; I've never tried to install TeX Live without documentation locally. Would you please provide here some tlpdb entries in such an environment? Just for one or a few packages is enough.

Then I think we can do the existence check of local documents for a given query in two steps. First, check whether any docfiles entries exist in the database and if there aren't, show the prompt. Second, if there are docfiles entries, do the regular search and check the existence of actual files of found documents, and if not, show the prompt. The docfiles entries can exist even though the actual document files are not installed locally, for instance, in case Texdoc uses a pre-hashed cache file.

Texdoc only tries fuzzy search after it notices the normal search cannot find anything. We can do the above local doc existence check during the first normal search; in case we detect that there is no local documentation, then we can show the prompt before trying the fuzzy search.

https://github.com/TeX-Live/texdoc/blob/a27708f201ce4216edf7308d9a92ecdb005b294f/script/texdoclib-search.tlu#L772-L778

gucci-on-fleek commented 2 years ago

Would you please provide here some tlpdb entries in such an environment? Just for one or a few packages is enough.

Sure. There may be another texlive.tlpdb somewhere on the system with docfiles entries, but this one doesn't have any:

texlive.tlpdb
$ head -200 /usr/local/texlive/2022/tlpkg/texlive.tlpdb
name 00texlive.config
category Package
depend minrelease/2016
depend release/2022

name 00texlive.installation
category TLCore
depend opt_autobackup:1
depend opt_backupdir:tlpkg/backups
depend opt_create_formats:1
depend opt_desktop_integration:1
depend opt_file_assocs:1
depend opt_generate_updmap:0
depend opt_install_docfiles:0
depend opt_install_srcfiles:0
depend opt_location:https://ctan.math.utah.edu/ctan/tex-archive/systems/texlive/tlnet
depend opt_post_code:1
depend opt_sys_bin:/usr/local/bin
depend opt_sys_info:/usr/local/share/info
depend opt_sys_man:/usr/local/share/man
depend opt_w32_multi_user:1
depend setting_available_architectures:x86_64-linux

name 12many
category Package
revision 15878
catalogue one2many
shortdesc Generalising mathematical index sets
longdesc In the discrete branches of mathematics and the computer
longdesc sciences, it will only take some seconds before you're faced
longdesc with a set like {1,...,m}. Some people write $1\ldotp\ldotp m$,
longdesc others $\{j:1\leq j\leq m\}$, and the journal you're submitting
longdesc to might want something else entirely. The 12many package
longdesc provides an interface that makes changing from one to another a
longdesc one-line change.
containersize 2104
containerchecksum 57a177b65450718631f36bfd8db0f2d1bff788f3bf147137b6412714cc945c7e08832f14f9e7e659adf7e072a91f13a2ea27fe3161cd9b60313bc956f1f543c6
doccontainersize 375412
doccontainerchecksum 9ce7fdae151a116ef6b22943bcbd1e94b90862baa5d50f54a00105d1f2d623f75a2e1440c3c49c560e2e6c5baddb8a6772753f400165b63a90a84f540e3fa381
srccontainersize 6592
srccontainerchecksum f007dcaccb364964a73da6a09db5e6a25ee401d8108b19021b67023af273f486392cef6a0b01e951e9fa885304d0e157b919cbd6abc472a96dfbbb0f432b8530
runfiles size=1
 texmf-dist/tex/latex/12many/12many.sty
catalogue-ctan /macros/latex/contrib/12many
catalogue-license lppl
catalogue-topics maths
catalogue-version 0.3

name 2up
category Package
revision 55076
catalogue twoup-gen
shortdesc Macros to print two-up
longdesc The 2up package offers considerable flexibility as to paper
longdesc size and layout, and produces a standard dvi file without
longdesc involving additional dvi or PostScript filters.
containersize 4200
containerchecksum 6408d1d99a97df71640bcdde4133edc2e5861bbcdc8c5e1be98d5704f7ecf9c043c5538ea19ac4952d811e3677ee0698bdd477eadbd1068725bdb210787d9dbc
doccontainersize 52456
doccontainerchecksum 3375cfbd95412f2fde2bdb9171b1c081890a52168d0c6d0f0dfb0ad914117c79291a56bc97602627a698509635765fd5e6e95387a006039178e440a8bea24837
runfiles size=4
 texmf-dist/tex/generic/2up/2up.sty
 texmf-dist/tex/generic/2up/2up.tex
catalogue-also twoupltx
catalogue-ctan /macros/generic/2up
catalogue-license lppl
catalogue-topics layout
catalogue-version 1.3a

name a0poster
category Package
revision 54071
shortdesc Support for designing posters on large paper
longdesc Provides fonts in sizes of 12pt up to 107pt and also makes sure
longdesc that in math formulas the symbols appear in the right size. Can
longdesc also create a PostScript header file for dvips which ensures
longdesc that the poster will be printed in the right size. Supported
longdesc sizes are DIN A0, DIN A1, DIN A2 and DIN A3.
containersize 3308
containerchecksum 038623ef39540340a9c9de228ff0787512fb34916ee5a250dbc6d9327b9249d51c633b8ed0dd725c90db462ed7c96290ea7d6fd60e299e787d0e5cf585efb5f5
doccontainersize 118128
doccontainerchecksum 51e01cf36d4ec625bdc68e586d276e09973dcfe30cd9ba2aa7dbeed73337bea03a222d66a6903e5203e1530d88433d326d38ff66896c52ac33587a3d147cc2e5
runfiles size=4
 texmf-dist/tex/latex/a0poster/a0poster.cls
 texmf-dist/tex/latex/a0poster/a0size.sty
catalogue-also sciposter
catalogue-ctan /macros/latex/contrib/a0poster
catalogue-license lppl
catalogue-topics poster
catalogue-version 1.22b

name a2ping
category TLCore
revision 52964
shortdesc Advanced PS, PDF, EPS converter
longdesc a2ping is a Perl script command line utility written for Unix
longdesc that converts many raster image and vector graphics formats to
longdesc EPS or PDF and other page description formats. Accepted input
longdesc file formats are: PS (PostScript), EPS, PDF, PNG, JPEG, TIFF,
longdesc PNM, BMP, GIF, LBM, XPM, PCX, TGA. Accepted output formats are:
longdesc EPS, PCL5, PDF, PDF1, PBM, PGM, PPM, PS, markedEPS, markedPS,
longdesc PNG, XWD, BMP, TIFF, JPEG, GIF, XPM. a2ping delegates the
longdesc low-level work to Ghostscript (GS), pdftops and sam2p. a2ping
longdesc fixes many glitches during the EPS to EPS conversion, so its
longdesc output is often more compatible and better embeddable than its
longdesc input.
depend a2ping.ARCH
containersize 30652
containerchecksum 4008c18f93a7d378c8da20bad7c1fdf19c3e6befccdcc804326168854fcd35bb89fe414b30a26dbddeaf81a11c0d404bf5b5459bd3d8adce49dc30279e3bd420
doccontainersize 39744
doccontainerchecksum 7a7b6474819b2715c131485472963b463163378d4ae4ac586f17a130b3327c6dda1f4132f4f2379388a8a493fb2374abfff6b7ad87513cbe9d04993572692aeb
runfiles size=25
 texmf-dist/scripts/a2ping/a2ping.pl
catalogue-contact-repository https://github.com/pts/a2ping
catalogue-ctan /graphics/a2ping
catalogue-license gpl
catalogue-topics graphics-prep
catalogue-version 2.84p

name a2ping.x86_64-linux
category TLCore
revision 27321
shortdesc x86_64-linux files of a2ping
containersize 340
containerchecksum f4eeb76fbc182a73eccd3086b632005b8bed0615634247f84ddbe3e12b24d7c592bf7a8d158d7ad738ed536c5fa753fda86a670c0e899b48e7d05ac0e1c9c3e6
binfiles arch=x86_64-linux size=1
 bin/x86_64-linux/a2ping

name a4wide
category Package
revision 20943
shortdesc "Wide" a4 layout
longdesc This package increases the width of the typeset area of an a4
longdesc page. This sort of operation is capable of producing
longdesc typographically poor results; the operation itself is better
longdesc provided by the geometry package. The package uses the a4
longdesc package.
containersize 1012
containerchecksum e0f1f95bf660760683d6c5a917d75e537a0347837eb4388eded8194c6ca5371b2ad9be9829fcaaff1e24b7d8baefd287db6add752c19a57a6cf0737017e311e3
doccontainersize 134740
doccontainerchecksum bf059462ec7e28ba782d5842d090c93f4e911bdf44eb3d4f184a7324b454105295460a52414ffcb9fc71dceeba902b1d78ba208d0998f71727ad41299eb1138f
runfiles size=1
 texmf-dist/tex/latex/a4wide/a4wide.sty
catalogue-ctan /macros/latex/contrib/a4wide
catalogue-license lppl1
catalogue-topics geometry

name a5comb
category Package
revision 17020
shortdesc Support for a5 paper sizes
longdesc Superceded by geometry.
containersize 968
containerchecksum 443548964eb48ec458942e97f0d6ceb698050a5d4dc83ad17a71db0f1d5085a2c8e73c3e8d9bdbb7ab7e6328d12e42a6ec05c4c7dd4247717f295fcd5da66423
doccontainersize 91652
doccontainerchecksum ee845d8b6a21271d2f0e4e6fd24c79a1235d24ba15cc2d037eb41761b05ad3e69dcb5379c223c07b81c62df5f89190c84ff977390e149566710ce7175e4c2823
runfiles size=1
 texmf-dist/tex/latex/a5comb/a5comb.sty
catalogue-ctan /macros/latex/contrib/a5comb
catalogue-license pd
catalogue-topics geometry
catalogue-version 4

name aaai-named
category Package
revision 52470
shortdesc BibTeX style for AAAI
longdesc A BibTeX style derived from the standard master, presumably for
longdesc use with the aaai package.
containersize 5172
containerchecksum bb851e6bb3d9c2efd8d9abd32056d0853e320ee7f495b3c595d6a112d5e66bdbcb24107f741249fdfde350dead6763484cc412d380188d29155649b4076c4e77
runfiles size=6
 texmf-dist/bibtex/bst/aaai-named/aaai-named.bst
catalogue-ctan /biblio/bibtex/contrib/misc/aaai-named.bst
catalogue-license other-free
catalogue-topics bibtex-sty

name aalok
category Package
revision 61719
shortdesc LaTeX class file for the Marathi journal 'Aalok'
longdesc aalok mraatthii niytkaalikaacii akssrjulnnii krnnyaakritaa
longdesc laattek-vrg. This package provides the class file for
longdesc typesetting 'Aalok', a Marathi journal with LaTeX.
containersize 6092
containerchecksum 03d1585e9b92e26044066d1f5b8d2dec0ad298627cc94fc1ab11e45307f62c573934f1a2cae6c5318a9cb377834d4f5a490144cc07bdebd9dc22cf298315630b
doccontainersize 165976
doccontainerchecksum 702145c708edf984d24153822036acc0b563038c50423af0cd3cc6b008b7eb3bc8d67eddaac350ac6557650177218260e5adfaf0ca5807130b0e23ec7127470d
srccontainersize 18636
srccontainerchecksum b452ccf38dfb3436aa8a6907798101621fb2f5a66077cc24b316760013b0e665ef26d69b444c27cc8521dd6c06828be8a832e061df74bdcc70577f262ae987c3
runfiles size=7
 texmf-dist/tex/latex/aalok/aalok.cls
catalogue-contact-bugs https://puszcza.gnu.org.ua/bugs/?group=aalok
catalogue-contact-home https://puszcza.gnu.org.ua/projects/aalok
catalogue-contact-repository https://git.gnu.org.ua/aalok.git
catalogue-contact-support mailto:aalok-latex@gnu.org.ua
catalogue-ctan /macros/unicodetex/latex/aalok
catalogue-license gpl3+ other-free fdl
catalogue-topics class journalpub marathi expl3
catalogue-version 0.6

Then I think we can do the existence check of local documents for a given query in two steps. First, check whether any docfiles entries exist in the database and if there aren't, show the prompt. Second, if there are docfiles entries, do the regular search and check the existence of actual files of found documents, and if not, show the prompt. The docfiles entries can exist even though the actual document files are not installed locally, for instance, in case Texdoc uses a pre-hashed cache file.

Texdoc only tries fuzzy search after it notices the normal search cannot find anything. We can do the above local doc existence check during the first normal search; in case we detect that there is no local documentation, then we can show the prompt before trying the fuzzy search.

Looks like a great plan. I'll try and get an implementation in tomorrow afternoon (it's quite late here...)

kberry commented 2 years ago

May I suggest another, much simpler, idea (not mutually exclusive): if a texdoc search comes up with nothing, do the suggestion for texdoc.net. Without worrying about whether no documentation (modulo koma-script :) at all is installed.

Also, FWIW, I think it is useful to provide the texdoc link even without any downloading/caching and even though the user has to have a net connection. A general web search does not usually, in my experience, turn up the actual package documentation, but rather tex.sx, wikipedia, etc. The targeted search by texdoc has its place.

gucci-on-fleek commented 2 years ago

Alright, I think that this new implementation should hopefully work. For the list and showall options, there shouldn't be any changes. For the mixed option, I fixed an unrelated bug (e6de6a1). For the view option, if there is a good match, nothing changes.

If you use the view option, there are no good matches, and local documentation is installed, you get something like this:

$ texdoc tex
Unfortunately, I couldn't find any good matches for "tex".

Here are the top 3 matches that I found:
    1 latex/koma-script/scrguide-de.pdf
    2 latex/koma-script/scrguide-en.pdf
    3 latex/koma-script/scraddr.html

There may be online documentation available for "tex" at
    https://texdoc.org/serve/tex/0
This documentation may be for a different version than you have installed.

Enter (1/2/3) to open one of the listed documents, (y) to search online, or any other key to exit:

If you use the view option, there are no good matches, and local documentation is not installed, you get something like this:

$ texdoc tex
You don't appear to have any local documentation installed.

There may be online documentation available for "tex" at
    https://texdoc.org/serve/tex/0
This documentation may be for a different version than you have installed.

Would you like to search online? (y/N)

My system has no local documentation installed, and rake test refuses to work on my system, so it would probably be a good idea for someone else to test this to make sure that I didn't miss anything.

Let me know if you have any feedback.

wtsnjp commented 2 years ago

@kberry

May I suggest another, much simpler, idea (not mutually exclusive): if a texdoc search comes up with nothing, do the suggestion for texdoc.net. Without worrying about whether no documentation (modulo koma-script :) at all is installed.

I'm happy to support both cases. Adding a suggestion for texdoc.org is indeed easy. It can be resolved independent of this pull request, so I created another issue. I will handle it later on.

wtsnjp commented 2 years ago

My system has no local documentation installed, and rake test refuses to work on my system, so it would probably be a good idea for someone else to test this to make sure that I didn't miss anything.

I approved your pull request so that you can check the test result on GitHub Actions. It seems there is only one example that fails. Could you please have a look and fix it?

Talking about the test, since I don't have a local TeX Live installation without documents, I desire to have some test cases (just a few should be enough) for this online search feature. Writing tests for this can be a bit tricky, but it will be possible by using the config key texlive_tlpdb: you can create a small pseudo texlive.tlpdb that does not include any docfiles entry and give it to Texdoc via the key. Could you please also try adding such a test?

wtsnjp commented 2 years ago

It is also nice to mention this online search feature in our documentation. Could you please add a description of the feature and its behavior to the document? Adding a new Section 3.7 would be just fine.

wtsnjp commented 2 years ago

Just a small note for the future. If I understand correctly, this implementation does not support the following environments:

However, I believe these are relatively rare cases. We can merge this pull request without supporting such environments for the first attempt.

kberry commented 2 years ago
$ texdoc tex
Unfortunately, I couldn't find any good matches for "tex".

Here are the top 3 matches that I found:

Apart from anything else: maybe koma-script should be disqualified from fallback searches because, as we know, it will (almost) always be present. -k

gucci-on-fleek commented 2 years ago

It seems there is only one example that fails. Could you please have a look and fix it?

Sure.

The failure is this:

  1) Verbose outputs if no good result found should show an info message
     Failure/Error:
       expect(stderr).to include(
         info_line "No good result found, showing all results.")

I can add back in the message, although it would be slightly misleading since we don't show all of the results any more. I think that it would probably be best to change the test, which I should be able to do without too much difficulty.

Talking about the test, since I don't have a local TeX Live installation without documents, I desire to have some test cases (just a few should be enough) for this online search feature. Writing tests for this can be a bit tricky, but it will be possible by using the config key texlive_tlpdb: you can create a small pseudo texlive.tlpdb that does not include any docfiles entry and give it to Texdoc via the key. Could you please also try adding such a test?

Sure.

Just a small note for the future. If I understand correctly, this implementation does not support the following environments:

1. TeX Live installation with some local documentation for some packages, but not for the texdoc packages

Provided that I've implemented this correctly (???), the search online prompt should only appear if there aren't any "good" results (score > 0). So using the exact spelling or an alias should be fine, but most of the fuzzy searches won't work unless you have the documentation installed for texdoc.

2. Installed texlive.tlpdb (or a pre-hashed cache file for that) has the docfiles entries, but local document files are not exist

Not sure on this one, but I think that you're right. This seems like it should be exceedingly rare, but it may perhaps not be.

However, I believe these are relatively rare cases. We can merge this pull request without supporting such environments for the first attempt.

gucci-on-fleek commented 2 years ago

@kberry

Apart from anything else: maybe koma-script should be disqualified from fallback searches because, as we know, it will (almost) always be present. -k

That seems a reasonable solution. The Koma-Script documentation is almost all aliases (which are broken right now, see #82), so the fuzzy searches don't really work with it anyways right now.

@wtsnjp Any thoughts?

wtsnjp commented 2 years ago

I think that it would probably be best to change the test, which I should be able to do without too much difficulty.

Yes, let's do this.

wtsnjp commented 2 years ago

(Sorry, I've just mistakenly closed the pull request. Reverted...)

gucci-on-fleek commented 2 years ago

Alright, I've:

Now I'll get this squashed into something mergeable.

gucci-on-fleek commented 2 years ago

Alright, I believe that I fixed everything above. Please let me know if you find anything else.

wtsnjp commented 2 years ago

Thank you!!

wtsnjp commented 2 years ago

I had to revert this once because it seems I found a serious bug with it:

$ texdoc -l scrgui
Enter number of file to view, RET to view 1, anything else to skip:

With the -l option and the "no good result with local document" case, it shows the prompt without the document list. If you enter RET here, then Texdoc raises an error:

texdoclib-view.tlu:213: attempt to compare number with nil
wtsnjp commented 2 years ago

Unfortunately, the "revert" feature of GitHub does not re-open this pull request, so it seems we need another pull request to merge the fixed implementation. And I would appreciate it if you could send that one from a topic branch in your fork (not a master branch) because it is easier for me to pull the branch into my local.

gucci-on-fleek commented 2 years ago

Not at a computer right now, but I think that this is all from 5810850451d2c03312a0ef84cefc0b507a2ecf92.

Before, some of code referenced <doc table>.quality, which was always nil, meaning that it was never equal to a string. This meant that even "killed" documents were shown in any lists. I refactored everything to use <doc table>:get_quality(), which was defined and returns a string as expected.

This is untested speculation without a computer, but I think that you only need to revert 5810850451d2c03312a0ef84cefc0b507a2ecf92 and not the whole PR. This still means that the list commands will still show killed documents, but I think that bug has been around for awhile, and I'll get a separate PR in to fix that.

wtsnjp commented 2 years ago

Now I made a branch that only https://github.com/TeX-Live/texdoc/commit/5810850451d2c03312a0ef84cefc0b507a2ecf92 is reverted, but the same behavior is confirmed in my local. I will try to make this reproducible on GitHub Action.

gucci-on-fleek commented 2 years ago

Looks like I had a bad guess then. I'll submit a new PR in the next few days or so.

wtsnjp commented 2 years ago

I could reproduce the error here: https://github.com/TeX-Live/texdoc/actions/runs/2872628548

  1) Online searches bad fuzzy results in the list mode should be successfully executed
     Failure/Error: expect(last_command_started).to be_successfully_executed

       Expected `texlua /home/runner/work/texdoc/texdoc/script/texdoc.tlu -il scrgui` to succeed but got non-zero exit status and the following output:

       Enter number of file to view, RET to view 1, anything else to skip: ...exdoc/texdoc/tmp/texmf/scripts/texdoc/texdoclib-view.tlu:213: attempt to compare number with nil
kberry commented 1 year ago

The fallback to searching online is useful if no documentation is installed. But if all the documentation is installed locally, i.e., the default install of TL, then it seems like noise to me. I, personally, am never going to want to search online, because if it's not in my local TL, why would it be in texdoc.org?

gucci-on-fleek commented 1 year ago

@kberry

if it's not in my local TL, why would it be in texdoc.org

A few reasons:

1) You initially installed a partial TL with documentation, then disabled the documentation and installed more packages 2) You have no documentation installed except for the texdoc documentation, tricking texdoc into thinking that you have the documentation installed 3) You installed a minimal TL and are looking for a package that you haven't installed 4) You have an old frozen TL and are looking for a package only in newer versions 5) You accidentally deleted the documentation for a package

Most of these are pretty unlikely though.

The main reason for the message (in my opinion at least) is that if all the possible matches have a negative score, the options are to:

1) Open the highest-scoring (but still bad) document 2) List the available options and prompt the user to pick 3) Just print a message saying "no documentation found"

I'm not a huge fan of Option 1 since it guarantees that you'll open a "bad" document. For Options 2 and 3, offering to search online could potentially be helpful.

That being said, I agree that it could be annoying if "bad" searches that used to work instantly now give you another prompt, and although the "search online" text is only 3 lines, it is noise that some users may not want. I still like the new prompt, but I'm pretty biased as the author.

(And I'll add that #79/#84 doesn't make any changes if the user has docs installed and a "good" match is found for their search)

kberry commented 1 year ago
Most of these are pretty unlikely though.

Yes, they are unlikely :). In the normal case of a full installation of TL (with doc), I don't think texdoc.org will be of any help. At least for me, as far as I can see, it is just noise.

That's why I (or Takuto or someone, can't remember) suggested checking if there were in fact doc files in the tlpdb and if so, omit the text and option about looking online.

Another (easier) approach would be to keep the current behavior as a default, but introduce Yet Another Option to omit the online offering. offer_online = true # by default

Another approach is to forget about the whole thing and make me live with the offering to go online. -k