Publications by topic: Workflow and build support
From the TUG Conference 2018 (Rio de Janeiro, Brazil)
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
l3buildfor running tests automatically. Building on the core work,
l3buildhas 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
- Frank Mittelbach
- Paper published in TUGboat 39:1, 2018
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)
- Joseph Wright
- UK-TUG meeting in 2014
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.
- Frank Mittelbach, Will Robertson and The LaTeX3 team
- Published paper, TUGboat volume 35, number 3, 2014
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)
- Frank Mittelbach
- TUG 2014 Conference (Portland, USA)
- Video of the talk: A Modern Regression Test Suite for TeX Programming (via River Valley TV)
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.
A alternative view of all publications ordered by year is given on the Publications by Year page.
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.
- Current LaTeX (LaTeX2e)
- LaTeX -> LaTeX3
- PDF, Tagging, Accessibility
- Coding, Testing & Support
- Other topics independent of the LaTeX version