The LaTeX Project logoThe LaTeX Project

Publications by topic: Workflow and build support

From the TUG Conference 2018 (Rio de Janeiro, Brazil)

Fly me to the moon: (La)TeX testing (and more) using Lua (slides)

Testing has been important to the LaTeX team since its inception, and over the years a sophisticated set of test files have been created for the kernel. Methods for running the tests have varied over the past quarter-century, following changes in the way the team work.

In recent years, the availability of Lua as a scripting language in all TeX systems has meant it has become the natural choice to support this work. With this as a driver, the team have developed l3build for running tests automatically. Building on the core work, l3build has grown to provide a powerful approach to releasing packages (and the LaTeX kernel) reliably.

Here, I’ll look at the background of our testing approach, before showing how and why Lua works for ushere.

Video of the talk recorded by IMPA on YouTube: Fly me to the moon: (La)TeX testing (and more) using Lua

New rules for reporting bugs in the LaTeX core software

An article discussing the new workflow for reporting bugs in the core LaTeX software. It also covers the underlying move of the LaTeX sources from an SVN to a Git-based source control system and as a result the retirement of the old LaTeX bug database.

From the UK-TUG meeting in 2014

Some video footage from the meeting in November 2014 on LaTeX2e and LaTeX3 development topics.

Reliable releases: l3build (video)

A new build environment for LaTeX packages and documentation (works with all flavors)! Unfortunately, the demo session on l3build is not vsisible in the video as it only provides audio and displays of the slides used.

l3build — A modern Lua test suite for TeX programming

Regression tests are an important tool in any moderately complex programming environment. They allow the programmer to make extensive changes to their code while providing confidence that something that used to work still does. Extensive regression test suites have been an essential component of the maintenance and development of LaTeX2e and LaTeX3. A regression test suite is typically composed of a number of individual files that contain one or more testable units of the code being tested. A testable unit might be either a certain computation with an expected outcome, a series of logic tests, or—in particular for TeX-based code—material that is typeset and intended to achieve some particular formatting. During code development and before any new code is released to the public, this test suite can be compiled to ensure that any changes to the code have not introduced bugs or changed the behaviour compared to previous versions. As bugs in the code are reported, minimal examples demonstrating the bug often form test files of their own, showing that the bug has been fixed and won’t re-occur. As TeX-based code operates in at least three different `modes’ (mouth, stomach, and output), regression testing is more complex than simply asserting the outcome of certain programming logic. As part of the work of the LaTeX3 project, a new Lua-based testing environment has been written to support ongoing development. This testing environment, presented at the 2014 TUG conference in Portland, is suitable for use by the general TeX community.

From the TUG Conference 2014 (Portland, USA)

A Modern Regression Test Suite for TeX Programming (slides)

Publications by topic

Under each topic you will find relevant articles and papers on related subjects published by the LaTeX3 project as well as links to videos of their conference presentations.

Publications by year

A alternative view of all publications ordered by year is given on the Publications by Year page.

Books by project members and others

A list of books that we think are useful is given on the Books Page. By buying documentation through this website you support the volunteer work of project members to keep LaTeX useful for you.