Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TexLive 2025 release #44

Closed
cderv opened this issue Mar 10, 2025 · 18 comments
Closed

TexLive 2025 release #44

cderv opened this issue Mar 10, 2025 · 18 comments
Assignees

Comments

@cderv
Copy link
Contributor

cderv commented Mar 10, 2025

TeX Live 2025 has been release on the 7th.

We need to handle the new build like each year.

WIP

@cderv
Copy link
Contributor Author

cderv commented Mar 10, 2025

New patch release done: https://github.com/rstudio/tinytex-releases/releases/tag/v2025.03.10

@cderv cderv closed this as completed Mar 10, 2025
@cderv cderv unpinned this issue Mar 10, 2025
@math-mcshane
Copy link

@cderv I can't tell if this is actually the 2025 version of TeX Live --

It looks like TUG tags the 74527 release as the first (?) 2025 release, while the CTAN mirror y'all are using is still on the 74241 release (which came out Feb 24th). From your issue instantiation, it looks like you wanted this March 7th release as well.

@cderv
Copy link
Contributor Author

cderv commented Mar 17, 2025

Are you saying that the mirrors are outdated ? We are using the CTAN mirrors to get the versions.

We download http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz as they recommand

We do that daily. And it seems the latest one is https://github.com/rstudio/tinytex-releases/releases/tag/daily

tlmgr revision 74241 (2025-02-24 00:10:34 +0100)
TeX Live (https://tug.org/texlive) version 2025

Shown as TeX Live 2025?

Usually, they do code freeze before release so maybe the difference in date is that.

So from our point of view, and from past year experience, the version I build is the TeX Live 2025 version, same as we see on the mirrors.

Did you notice some problems ? Are there some mirrors with different versions ?

@math-mcshane
Copy link

math-mcshane commented Mar 17, 2025

I can't confirm all mirrors, but I headed to the mirror you referenced in #42 (last year's update).

But yes, looking at the file directory at my second link (which is to the mirror you referenced in #42) , it looks like it is hosting the 2-24 version (74241), while it looks like what TUG classifies as 2025 starts at 74527 (released around 3-7, as you noted in your first comment).

Here's TUG's classification of releases.

@cderv
Copy link
Contributor Author

cderv commented Mar 17, 2025

I understand their classification of release on their SVN. However, it seems all mirrors are synced to the main one which has 74241 as the released version.

See https://ctan.org/tex-archive/systems/texlive/tlnet

So you should contact TeX Live to ask why the tag is SVN is not the same version. I don't think TinyTeX got the wrong one. Even of the most recent mirror this is the version: https://ctan.org/mirrors/mirmon

@math-mcshane
Copy link

Also, yes, when navigating to http://mirror.ctan.org/systems/texlive/tlnet/ (the directory above the installation file you show), it looks like that mirror is also hosting 74241 instead of, e.g., 74527 or the 2025.1 minor update 74612.

@math-mcshane
Copy link

Indeed, all of their mirrors, as you point out, point to 74241

@cfr42
Copy link

cfr42 commented Mar 18, 2025

There's a release-texlive.txt in the top level of the install tree:

TeX Live (https://tug.org/texlive) version 2025

This file is public domain.  It is read by install-tl --version,
tlmgr --version, and texconfig conf, and a final line appended with
the precise version number by tl-update-images during a build.

The following blank line helps avoid confusing output when
used directly from svn, so don't delete it.

The install log in the same directory specifies SVN info for the installer and database:

$ less ../install-tl.log
TeX Live installer invocation: ./install-tl
Trying to verify cryptographic signatures!
Loading https://anorien.csc.warwick.ac.uk/mirrors/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb
Installing TeX Live 2025 from: https://anorien.csc.warwick.ac.uk/mirrors/CTAN/systems/texlive/tlnet (verified)
Platform: x86_64-linux => 'GNU/Linux on x86_64'
Distribution: net  (downloading)
Using URL: https://anorien.csc.warwick.ac.uk/mirrors/CTAN/systems/texlive/tlnet
Directory for temporary files: /tmp/Rp5QmMmrtg
Installer revision: 74223
Database revision: 74523
...

Perhaps you are looking at the version of tlmgr?

$ tlmgr --version -v
D:no translations available for cy_GB (nor cy); falling back to English
tlmgr revision 74241 (2025-02-24 00:10:34 +0100)
tlmgr using installation: /usr/local/texlive/2025
TeX Live (https://tug.org/texlive) version 2025
Revisions of TeXLive:: modules:
TLConfig: 73776
TLUtils:  74083
TLPOBJ:   73770
TLPDB:    71592
TLPaper:  66798
TLWinGoo: 72335

@norbusan
Copy link

I think you are all mixing up the (internal) version numbers of the packages we create in TeX Live, in this case the version number of the install-tl-unx.tar.gz package and a "release of TeX Live".

The number you are seeing is based on "highest revision number of the last change of any file in the package", so it is not really an indicator for a release of the whole.
This number is chosen because it is guaranteed to increase (due to svn being svn).

Also, every time you do a new installation, you will receive a slightly different version, since packages are updated on a regular basis.

Now for the tags: The tag in svn is the tag of the last change of any file in TL repo. This includes the sources, and all files under Master. And thus, this number is higher than the number you see in the filename of a package.

Does that help in any way? If not, feel free to ask me anything (it is mostly my concoction).

@math-mcshane
Copy link

Yes @cfr42 , tinytex prints out these three lines when calling tinytex::tlmgr_version() from within R:

tlmgr revision 74241 (2025-02-24 00:10:34 +0100)
tlmgr using installation: /usr/local/texlive/2025
TeX Live (https://tug.org/texlive) version 2025

Looking at the install directory on my machine, I see install-tl (which does not appear to contain this SVN information), and install-tl.log is not there. Does this log file get deleted after installation?

@yihui
Copy link
Member

yihui commented Mar 18, 2025

@math-mcshane
Copy link

math-mcshane commented Mar 18, 2025

Background: My anxiety about this issue stems from an error message that appears: e.g., tlmgr: Local TeX Live (2020) is older than remote repository (2021).. This is often triggered when there's a $\LaTeX$ error and R Markdown/Quarto seeks a TeX Live update to self-correct. With students, this error almost always only appears with a $\LaTeX$ typo. They're usually perplexed, update (e.g., tinytex::reinstall_tinytex()), and eventually find the more informative $\LaTeX$ error message. So, this year, I wanted to be proactive about their $\LaTeX$ installation -- I saw the date for the planned update on the TUG website to be March 7th, 2025 and put it in my calendar. I see now, in revisiting https://tug.org/texlive/, that indeed as @cderv suggested, there was a code freeze at some point to create the new version (2026 has 2-21 listed) -- presumably that was 2-24-2025 for this year's version. Your comment, @norbusan , helped clarify this as well.

So, my ultimate goal is to tell students what minimum version of tlmgr they should have installed to prevent the inevitable tlmgr: Local TeX Live (2024) is older than remote repository (2025). etc errors. This error is checkable, I believe, with tinytex::tlmgr_update() AKA tlmgr update --all --self, which should report this error when present?

Relatedly, it seems like @cfr42 's comment includes two possibly useful pieces of information: Installer revision: 74223; Database revision: 74523.

Also, every time you do a new installation, you will receive a slightly different version, since packages are updated on a regular basis.

@norbusan managing installations across many student computers can be difficult (in part because it is clearly the blind (yours truly) leading the blind) -- is there a way to get the version number of the "slightly different version"? What number is reliable for this? It seems like "TeX Live (https://tug.org/texlive) version 2025" is enough to prevent the is older than remote repository error message, but is not particularly helpful for debugging purposes should an actual $\LaTeX$ issue arise. Having students run the equivalent of tlmgr update --all --self usually resolves $\LaTeX$ bugs, but isn't bulletproof for resolution.

@cfr42
Copy link

cfr42 commented Mar 18, 2025

Also, every time you do a new installation, you will receive a slightly different version, since packages are updated on a regular basis.

@norbusan managing installations across many student computers can be difficult (in part because it is clearly the blind (yours truly) leading the blind) -- is there a way to get the version number of the "slightly different version"? What number is reliable for this? It seems like "TeX Live (https://tug.org/texlive) version 2025" is enough to prevent the is older than remote repository error message, but is not particularly helpful for debugging purposes should an actual L A T E X issue arise. Having students run the equivalent of tlmgr update --all --self usually resolves L A T E X bugs, but isn't bulletproof for resolution.

For debugging documents, the SVN repo number is not really useful, IMHO. What matters for debugging is e.g. the versions of the LaTeX format, the expl3 programming layer and the packages. These are in the .log produced during compilation. The version of the engine used to compile is also relevant, but binaries aren't updated between the annual releases unless there are major issues. (Relevant for LuaTeX this year.) Again, the relevant information is in the log file.

If the installation log is deleted, that is something TinyTeX does. It is not done by the TL installer.

It seems odd to me that TinyTeX responds to errors by updating first and reporting the error only second. Automatically updating an installation of TL is not a good idea, IMHO. I would never update TL just before an important deadline, for example. That is an invitation for trouble.

@math-mcshane
Copy link

If the installation log is deleted, that is something TinyTeX does. It is not done by the TL installer.

It seems odd to me that TinyTeX responds to errors by updating first and reporting the error only second. Automatically updating an installation of TL is not a good idea, IMHO. I would never update TL just before an important deadline, for example. That is an invitation for trouble.

Quarto/R Markdown (probably knitr) is the thing that is driving the auto-update feature to self-resolve (and is especially useful for automatically installing packages included in the header of a document you've been given -- usually the case for students), not tinytex AFAIK. So FWIW, Quarto has a YAML option, latex-auto-install: false which bypasses the automatic check for updates when there's a $\LaTeX$ error and goes straight to the error.

What matters for debugging is e.g. the versions of the LaTeX format, the expl3 programming layer and the packages. These are in the .log produced during compilation.

@cfr42 -- are you referring to install-tl.log or the .log file specific to a .tex file?

@cfr42
Copy link

cfr42 commented Mar 19, 2025

What matters for debugging is e.g. the versions of the LaTeX format, the expl3 programming layer and the packages. These are in the .log produced during compilation.

@cfr42 -- are you referring to install-tl.log or the .log file specific to a .tex file?

For the document. install-tl.log will tell you what was initially installed for this release. Only the .log file for the document will tell you what was actually used. The SVN revision number really isn't meaningful here.

Perhaps the following is obvious, but note that some packages contain SVN versioning information that is completely unrelated to TL's SVN version for those packages. (E.g. almost all my packages include SVN versioning info. That information is completely meaningless to anybody but me and bears no relation whatsoever to what SVN version TL has for those files.)

@norbusan
Copy link

managing installations across many student computers can be difficult (in part because it is clearly the blind (yours truly) leading the blind) -- is there a way to get the version number of the "slightly different version"? What number is reliable for this? It seems like "TeX Live (https://tug.org/texlive) version 2025" is enough to prevent the is older than remote repository error message

Yes, I can imagine. I managed one myself, but used nfs shares to distribute one read-only installation to the users. That worked nicely. For different student computers that is not a solution.

is there a way to get the version number

This depends on at which stage you want to check:

before installation

From the same location you download install-tl-unix.tar.gz you can check whether a file TEXLIVE_YYYY exists. So if https://mirror.ctan.org/systems/texlive/tlnet/TEXLIVE_2025 exists, it is a TL2025.

You always need to have the installer, tlmgr, and the remote repository within the same year.

So if you downloaded the installer say in January, it was a TL2024 installer, and that doesn't work with 2025.

in install-tl-unix.tar.gz

Various options:

  • first line of the contained release-texlive.txt
  • grep 'our \$ReleaseYear' tlpkg/TeXLive/TLConfig.pm

and probably several others.

installed system

again, multiple versions

  • tlmgr version | tail -1 gives again the same line a the release-texlive.txt
  • cat $(kpsewhich -var-value SELFAUTOPARENT)/release-texlive.txt

and probably many more


Now, if the student have that error (older than remote) then it means that:

  • student installed TL during YYYY-1
  • since then a new TLYYYY was released

In this case, the easiest way is to do a reinstallation, or there is a different way using update-tlmgr, but in general we do not support and do not suggest cross year updates.

I hope that clarifies a few things.

@cderv
Copy link
Contributor Author

cderv commented Mar 19, 2025

Just for context, when using TinyTeX distribution for TeX Live install, the error "older than remote" happened each year because TinyTeX is providing some bundles downloaded for the repo and it happens a few hours (or at worst a few days) where the last bundle built is with Y version, where all the repo have moved to Y+1 version already.

So tinytex::install_tinytex() has been run in year Y. The switch to version Y+1 happened in mirror. Which means that tinytex::reinstall_tinytex() needs to be run after we built a new version.

Since two years now we have improved the process and we build a Monthly Release patch right after the TeX Live Y+1 release. The one for 2025 is https://github.com/rstudio/tinytex-releases/releases/tag/v2025.03.10 built on the 10th of March - next Monday after release.

Though we build a version daily, too : https://github.com/rstudio/tinytex-releases/releases/tag/daily

so the daily build from 8th of march 2025 would already be for TeX Live version. (unless the mirror we used wasn't updated yet when we built and the 9th would have been the one).

Anyhow, this is quite short IMO and we didn't see any report this year for is older than remote repository because of this reactive release we did.

So to sum up for 2026

  • 7mar is the current planned release of TeX Live 2026
  • This is a saturday. So the daily version of the 8th will probably be TeX Live 2026
  • On the monday morning, I'll trigger a build of the tag 2026-03-09 which will be the TeX Live 2026 update for TinyTex.

I hope this clarifies our process. We could try again to reduce the time between TeX Live release, and TinyTeX bundles build by automatique and checking each hour from the 7th of march for the new update on the mirror. But it seems to me, 2 days dalys max when week end is ok.

@norbusan
Copy link

@cderv sounds perfect, thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants