LaTeX development formats are now available
We know that many of you, especially developers and maintainers of important packages, have a strong interest in a stable LaTeX environment.
In order to keep LaTeX very stable for users whilst allowing for further development to continue, we now have a development branch of LaTeX on GitHub containing development code for the upcoming release. When this code is ready for wider consumption and testing, we generate a pre-release of LaTeX from this development branch and make it available on CTAN.
For users of the TeXLive and MikTeX distributions it is therefore now straightforward to test their documents and code against the upcoming LaTeX release with ease, simply by selecting a different program name (when using the command line) or by selecting a menu entry (after setting it up, see below).
If you do this then the latest version of the LaTeX development format will be used to process your document, allowing you to test the upcoming release with your own documents and packages. For example, if you run
pdflatex-dev myfile
then you will be greeted on the screen with
LaTeX2e <2019-10-01> pre-release-2
(identifying the pre-release
format) instead of the normal LaTeX2e <2018-12-01>
. In this
pre-release you will find the latest new features that we have
developed. Here is an example of upcoming features that are currently
only in the pre-release format: better UTF8-handling as described in
Taming UTF-8 in pdfTeX.
Note, that these are not `nightly builds’ of the format reflecting the very latest stage of development, but pre-release versions that we have tested ourselves so that we consider them ready for testing by a broader community, prior to their public release.
Our hopes
We don’t expect everybody to start using the development formats to participate in testing, but we hope that people with a strong interest in a stable LaTeX environment (especially developers and maintainers of important packages) will use the new facilities and help us to ensure that future public releases of LaTeX do not (as has happened in the past) require some immediate patches because of issues that were not identified by our internal regression test suite or by other testing that we do.
Any issue identified when using the development format should preferably
be logged as an issue on GitHub, following the procedure outlined in
www.latex-project.org/bugs/
including the use of the latexbug
package as described.
Our bug reporting process normally states that issues involving third-party software are out of scope as we can’t correct external packages. However, in the particular case of the development format showing an incompatibility with a third-party package, it is fine to open an issue with us (in addition, please, to informing the maintainer of that package) so that we know about the problem and can jointly work on resolving it.
Details please …
More details and some background information about the concepts and the process is available in an upcoming TUGboat article:
The LaTeX release workflow and the LaTeX dev formats
- Frank Mittelbach
- TUGboat 40:2, 2019
- Abstract
How do you prevent creating banana software (i.e., software that gets ripe at the customer site)? By proper testing! But this is anything but easy.
The paper will give an overview of the efforts made by the LaTeX Project Team over the years to provide high-quality software and explains the changes that we have made this summer to improve the situation further.
Setting up menu items
While the command line call works out of the box if you have a recent
uptodate TeXLive or MikTeX installation, the use within an integrated
editing environment doesn’t at this point in time (maybe the
developers of these editors will include it in the future). However,
it is normally fairly simple to enable it as most (or even all?) of
them provide simple ways to call your own setup. How this works in
detail depends very much on the environment you use, so we can’t give
much help here. But as an example: to provide an additional menu entry
for XeLaTeX-dev
all I had to do was to copy the file
XeLaTeX.engine
to XeLaTeX-dev.engine
and change the call from
xelatex
to xelatex-dev
inside.
Enjoy — Frank & Chris