teatimeguest / setup-texlive-action

A GitHub Action to set up TeX Live
https://github.com/marketplace/actions/setup-texlive-action
MIT License
38 stars 2 forks source link

Add `--reinstall-forcibly-removed` #226

Closed pablgonz closed 2 years ago

pablgonz commented 2 years ago

Hello, first of all, thank you very much for your work :D

I ran into a little problem and I think this line would fix it, while running a test, when installing the packages one did not download correctly (sometimes happens when the mirror is syncronizing) and that ruined the cache.

On my local machine I always run:

tlmgr update --self --all --reinstall-forcibly-removed

and with that I get out of the way.

Could this be added?

Regards

teatimeguest commented 2 years ago

Thank you for your feedback. I wasn't aware of this problem and it is very helpful.

Currently the action updates only tlmgr itself when restoring cache. So I plan to add a new option update-all-packages to the action to update packages by tlmgr with --reinstall-forcibly-removed. This should be ready for release within a few days.

For the time being, I will not add cache update functionality to the action because cache deleting is a quite new feature (released last month) and actions/toolkit doesn't provide any functionality for it. This may be a problem if there are many packages to be updated since it requires a package update for each cache restoration. I'm going to investigate a workaound, including using the raw API with octokit.

If you have any ideas, please let me know.

teatimeguest commented 2 years ago

If you have logs (tlmgr output) of when the problem occurred, I would appreciate it if you could provide them for my information.

pablgonz commented 2 years ago

Hi, thanks for taking the time, with this (https://github.com/pablgonzTemp/scontents/runs/7349035356?check_suite_focus=true)

https://github.com/pablgonzTemp/scontents/runs/7349035356?check_suite_focus=true#step:7:81

  TeXLive::TLUtils::check_file_and_remove: checksums differ for /tmp/lMXGyR8gDe/UkZgdaw6pk/babel.tar.xz:
  TeXLive::TLUtils::check_file_and_remove:   tlchecksum=e616c6d12a6f0648309e63044b342bd5cf09a0950e062960f47daec364ffa9e8d33df2851ed5bfc03d66e7e264046475fcad5fbc2d553fb21bc37279eabaa5d6, arg=3863ba77af35af465d47accdcc59f57c2f8a1d522b12a34d036444e0851e9e6b5020ef94452ecde206deaa3420824897289e60093db2f88973ce47774d6958b5
  TeXLive::TLUtils::check_file_and_remove: backtrace:
   -> /home/runner/work/_temp/setup-texlive/2022/tlpkg/TeXLive/TLUtils.pm:2590: TeXLive::TLUtils::check_file_and_remove
   -> /home/runner/work/_temp/setup-texlive/2022/tlpkg/TeXLive/TLPDB.pm:1983: TeXLive::TLUtils::unpack
   -> /home/runner/work/_temp/setup-texlive/2022/tlpkg/TeXLive/TLPDB.pm:1818: TeXLive::TLPDB::_install_data
   -> /home/runner/work/_temp/setup-texlive/2022/tlpkg/TeXLive/TLPDB.pm:1734: TeXLive::TLPDB::not_virtual_install_package
   -> /home/runner/work/_temp/setup-texlive/2022/bin/x86_64-linux/tlmgr:3921: TeXLive::TLPDB::install_package
   -> /home/runner/work/_temp/setup-texlive/2022/bin/x86_64-linux/tlmgr:797: main::action_install
   -> /home/runner/work/_temp/setup-texlive/2022/bin/x86_64-linux/tlmgr:703: main::execute_action
   -> /home/runner/work/_temp/setup-texlive/2022/bin/x86_64-linux/tlmgr:366: main::main
  TeXLive::TLUtils::check_file_and_remove:   removing /tmp/lMXGyR8gDe/UkZgdaw6pk/babel.tar.xz, but saving copy in /tmp/qAuQC6KJf3
  TLPDB::_install_data: downloading did not succeed (check_file_and_remove failed) for https://mirror.mwt.me/ctan/systems/texlive/tlnet/archive/babel.tar.xz

Anyway it is not an error as such, it is a message returned by TL::Utils and it is a warning, it is not marked as a tlmgr error and the process concludes successfully anyway (otherwise what happened to me would not have happened).

Don't take into account my commits, that fork was to set up the real repository, in which everything is perfect :D

Now that I look at this, I think update should be active only for the current year version (the others are frozen).

In my real repo (https://github.com/pablgonz/scontents/runs/7395301448?check_suite_focus=true) i get:


Run teatimeguest/setup-texlive-action@v2.2.5
Restoring cache
Updating tlmgr
Adjusting TEXMF
8s
Run tlmgr update --self --all --reinstall-forcibly-removed
tlmgr: package repository https://ctan.math.illinois.edu/systems/texlive/tlnet (verified)
tlmgr: no self-updates for tlmgr available
[1/2, ??:??/??:??] update: l3kernel [169k] (63815 -> 63904) ... done
[2/2, 00:01/00:01] update: texlive-scripts [111k] (63884 -> 63919) ... done
running mktexlsr ...
done running mktexlsr.
running mtxrun --generate ...
done running mtxrun --generate.
running updmap-sys ...
done running updmap-sys.
regenerating fmtutil.cnf in /home/runner/work/_temp/setup-texlive/2022/texmf-dist
running fmtutil-sys --byfmt latex --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --status-file=/tmp/DOLLIeXYPf/LKtgx0PAHd ...
  OK: latex.fmt/pdftex
running fmtutil-sys --byfmt xelatex --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --status-file=/tmp/DOLLIeXYPf/LKtgx0PAHd ...
  OK: xelatex.fmt/xetex
running fmtutil-sys --byfmt lualatex --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --status-file=/tmp/DOLLIeXYPf/LKtgx0PAHd ...
  OK: lualatex.fmt/luahbtex
running fmtutil-sys --byfmt pdflatex --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --status-file=/tmp/DOLLIeXYPf/LKtgx0PAHd ...
  OK: pdflatex.fmt/pdftex
running fmtutil-sys --byfmt dvilualatex --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --status-file=/tmp/DOLLIeXYPf/LKtgx0PAHd ...
  OK: dvilualatex.fmt/luatex
tlmgr: package log updated: /home/runner/work/_temp/setup-texlive/2022/texmf-var/web2c/tlmgr.log
tlmgr: command log updated: /home/runner/work/_temp/setup-texlive/2022/texmf-var/web2c/tlmgr-commands.log

And of course it updates, but it doesn't update the cache (hence my other request).

teatimeguest commented 2 years ago

Thank you for the information.

The option update-all-packages has been implemented. Also, I've made sure that the action will fail if a package is forcibly removed during installation, so you shouldn't have a new similar problem.

I've also made the action not attempt to update tlmgr for older versions.

If you have any suggestions, please let me know. I will close this issue when releasing the next version.

pablgonz commented 2 years ago

@teatimeguest Great, just one thing, I would use a slightly shorter name update-all or update-pkg (just a matter of taste:)

teatimeguest commented 2 years ago

That's not a bad idea, but personally, I prefer self-explanatory, unabbreviated names.

teatimeguest commented 2 years ago

This should be resolved in v2.3.0.