All notable changes to the l3build
bundle since the start of 2018
will be documented in this file.
The format is based on Keep a Changelog, this project uses date-based 'snapshot' version identifiers.
- Initialize all boolean config variables.
- Skip README rename when this has no extension (issue #388)
--dev
switch to run tests using development format
- Test for uncompleted conditionals in tests (may require
.tlg
update) - Global
typesetopts
no longer ignored forluatex
andlualatex
(issue #351) - Handling of spaces in options
- Respect
--rerun
indoc
target (issue #112)
- Skip unknown engines correctly in
l3build save
- Handling of environment settings in some cases (issue #353)
- Extend normalization of line numbers to include those wrapped by LaTeX in
text
on line ...
- Suppress
l3msg
message wrapping
- Switch
-s|--stdengine
to run a set of tests only with the standard engine even where this varies between configs (issue #343)
- Switch
--force|-f
- Type of return value of
runtest_tasks()
in doc - Print failures correctly when these occur in multiple configurations
including the core (
build
) one
- Throw warnings on unknown doc name(s)
- Always execute
runtest_tasks()
if set (issue #327) - Print failures correctly when these occur in multiple configurations
- Test for blank
runtest_tasks()
(issue #327)
- Correct setup for script running in TeX Live
- Syntax warning on Windows with some test setups
- Document default value of
ctanpkg
as a valid lua expression - Improve log for failed checks with no diff files
- Document full syntaxes of
\SHOWFILE
and\ASSERT(STR)
- Short-circuit
check --rerun
iftestdir
doesn't exist - Retain errorlevel on Windows during
check
target
- Drop duplicate backslashes in doc
- Support non-ASCII filenames that fall within the system codepage on Windows (see #122)
- Document ConTeXt as supported
checkformat
-
Extend version string normalisation during checks (see issue #96)
-
Extend excludefiles to cover
build.lua
(see #286)
- Return passing errorlevel if BibTeX issues warnings (see #260)
- Respect
excludefiles
when doing (local) installation
- Refine
-utc
support - Apply
checkopts
in addition to engine-specific options
- Initialise the random seed with the current time so
--shuffle
produces different orders each run. - Normalise more
luaotfload
cache lines - Apply
-utc
switch for LuaTeX when using a fixed epoch value
- Set
-kanji-internal=euc
when building pLaTeX
- Improve stdout "Running l3build with target ..."
- Quote configuration name used in stdout
- Update one leftover outdated doc for
unpackexe
: defaults topdftex
- Building pLaTeX format now uses e-upTeX engine
- Normalize more
luaotfload
path data (see issue #301) - Update ConTeXt settings to allow for LuaTeX and LuaMetaTeX runs
- Improve doc for default
stdengine
- Avoid setting
TEMXFCNF
for ConTeXt (issue #232)
- All LuaTeX
.tlg
files were wrongly considered not engine-specific. Introduced in #292 which tried to fix #291.
- Default value of
maxprintline
is now9999
(may require.tlg
updates: see docs)
- Apply needed luatex-specific log normalization, even when
--rerun
is used (issue #291)
- Generalize normalization of ghostscript version in PDF-based tests
- Include UNIX timestamps in generated ZIP files
- Normalize pdfTeX
.enc
file loading
- Ensure when used, value of
ps2pdfopts
is surrounded by a space on both sides
- Run engine sanity check per config
- Restore epoch settings for
dvitopdf()
- Use plural form of variable
ps2pdfopts
consistently in code and doc, and retain compatibility with singular formps2pdfopt
(issue #275) - Remove the last trace of dropped variable
stdconfig
- Unify
testdir
by dropping possibly trailing.lua
passed to--config
- Ensure directories
testdir
andresultdir
exist when--dirty
is set - epoch settings with xetex
- Drop a redundant setup line for upTeX
- Normalise more Lua stack trace data (may require
.tlg
rebuild)
- Ensure
texmf.cnf
work correctly fordvips
- Suppress (new) LaTeX version data at end of
.log
- Allow for local override of
ctanupload
variable
- Copying of nested directories
- Normalise GhostScript version in PDF-based tests
- Sort list of names of difference files for failing tests.
- Basic support for
make4ht
- Support
bidi
version string in\special
lines (closes #226)
- When
\pdfmeta_set_regression_data:
is defined it is used to set metadata - Support multiple configurations in bundles
- Correctly normalize luaotfload font cache path
-
Creation of subdirectories in TDS structures on Unix-like systems
-
use
form-string
rather thanform
for all curl fields to avoid misinterpreting leading@
or<
eg a description starting<p>
-
Check the boolean value returned by executing shell commands in
l3build-upload
and throw an error if this is false. This fixes the issue that previously "validation successful" was reported ifcurl
failed.
- Documentation of how to validate an upload
- Use correct name for
options
table in multi configuration management code
- Support for pre-constructed TDS-style sources (variable
tdsdirs
) - Support for injection of tokens using
specialformats
- If multiple configurations are present, let
l3build clean
run on all of them by default. (issue #214)
- Place PDF files inside
docfiledir
in all cases
- Documentation improvements
- Use
checkengines[1]
as the default forstdengine
- Add sanity check for
TEXMFHOME
value - Double \ when writing the curl options, so that
does not need to be doubled in note and announcement texts.
- Installation of files when using MiKTeX (see #125)
- Incorrect line in
manifest
target (see #195) - Placement of PDF files in subdirectory locations (issue #209)
- Detection of engine-specific tlg files for non-standard LuaTeX based engines (issues #214)
- Always typeset in
typesetdir
(fixes #210)
- Documentation improvements
- Allow config names ending with 'lua', as long as they don't end with '.lua'
- All documentation files are build in a consistent environment with support files visible.
- Creation of zip files on Windows
- Only match filename and not full path for
exefiles
- Add the
--show-saves
flag forl3build check
to generate a list ofl3build save
commands to regenerate all failing tests
- No longer call an external program to generate
zip
files and generate them directly instead. This disables the optionszipexe
andzipopts
. - Copy TDS-style zip files to main dir
- Issue when running PDF-based tests
- Normalise Lua function calls (issue #127) - may require
.tlg
update - LuaTeX from TL'21 is no longer 'off by one' in log files - may require
.tlg
update
- Installation now supports deeper directory levels (issue #182)
- The
texmfhome
directory is now created before use if required - Crash caused by yyyy-mm-dd epoch format
- Support for use as
texlua build.lua <target>
- Store 'raw' PDF files when testing using PDFs, to allow further checks with e.g. PDF validators
- Exclude
sourcefiles
entries from file clean-up - Adjust defaults for TeX Live 2020 LuaHBTeX usage
- Suppress PDF compression in DVI route
- Suppress PDF ID data in DVI route
- Default to
dvips
for (p)TeX - Refinement of
/ID
line suppression
- Refinement of PDF test normalisation
- Option
ps2pdfopt
- Normalise
/ID
lines in PDF comparisons - Normalise
%%
lines in PDF comparisons
- Enable
cleandir()
recursively - Install files after all directory cleaning/creation
- Avoid temporary file when unpacking
os_yes
: useio.popen(...,w)
instead
- Variable
textfiledir
- Table
specialtypesetting
and support data
- Documentation improvements
- When
checkruns
> 1 andrecordstatus=true
, testing code would crash (issue #90)
- Normalise out DVI header lines
- Allow announcement field to be empty (with a warning this suppresses the CTAN announcement)
- Allow for more extracted files from DocStrip
\ASSERTSTR
no longer needs e-TeX
- Installation of files using the
--full
switch
- New
\ASSERT
and\ASSERTSTR
functions (issue #102)
- Avoid normalisation of (u)pTeX data when this is standard engine (fixes #103)
- Normalise Lua data references (#107)
- Extend
runtest_task()
to pass run number - Allow
regression-test
to load when e-TeX is unavailable (fixes #105)
- Location of
testsuppdir
when multiple configurations are used
docinit_hook()
- Normalise out file paths in all cases
- New
flattentds
variable for controlling complex TDS structures - Additional notes on
texmfdir
- Copy TDS files inside subdirectories (fixes #100)
- Path searching if
texmfdir
is set but does not exist
- Typesetting when using an isolated system (use of texmfdir)
- New
texmfdir
variable for more complex local additions
- Clean out all configuration test dirs (see #98)
checkinit_hook()
- Use three typesetting runs as-standard
- Use
pdftex
nottex
for unpacking
- Include
LUAINPUTS
when settingTEXINPUTS
forchecksearch = false
, etc.
- Remove
.log
file before each check run: prevent inter-engine confusion
- Interaction between secondary files in some tests
- Support for non-standard file layouts via
tdslocations
table
- Only write (x)dvipdfmx specials for XeTeX and (u)pTeX (see #94)
- Back out change for normalisation of LuaTeX v1.10 stack information (timing issue: will reintroduce later)
- Correct test for LuaTeX (see #93)
- Support for HarfTeX (see #92)
- Support for normalisation of LuaTeX v1.10 stack information
(may require new
.tlg
files)
- Support for spaces in paths when typesetting (see #91)
- Switch
--show-log-on-error
for use with--halt-on-error
. Results in the.log
file being show in full on the console to aid in non-interactive debugging.
- Moved LuaTeX-specific font cache normalisation
- Handling of ASCII engines
- Execution of all tests by
ctan
target (see #85)
- Table-based control of binary/format combinations:
specialformats
(see #84) - Switch
--debug
for chasing problems with theupload
target
- The
uploadconfig.update
field by default now automatically detects whether it needs to betrue
orfalse
- The
tag
target now allows no tag name to allow for setting this programmatically within abuild.lua
script - Better support for multiple LuaTeX-like engines
- Uploading via Windows should now work
- Switch
--email
for providing upload email address - Switch
-F|--file
for providing upload announcement from file - Switch
-m|--message
for providing upload announcement from command line
- Enable
--dry-run
option forupload
target - Enable tag/version to be passed as optional argument to
upload
target
- Packaging of some team-specific files
- Handling of upload data containing newlines (Windows only)
- Add new
upload
target which usescurl
with the CTAN API to send a package for release (see #1)
- Strip leading spaces from file loading/page number lines (see #78)
- Print test failures correctly per-config (see #77)
- Substitution of spaces in Unix paths (see #76)
\SHOWFILE
command
- Better support for multiple LuaTeX engines (see #75)
- Support for spaces in directory names (fixes #76)
- Support relative directories as argument to
--texmfhome
- Entries in
scriptfiles
are excluded frominstallfiles
- Use a per-config directory for running tests
- Enable use of local
texmf.cnf
file in tests and documentation - New
ctanreadme
variable
- Normalise date lines to contain "...-..-.." rather than removing
(including normalising version data in such lines): note that
.tlg
file updates may be required after this change - Explicitly exclude
.fd
file lines
- Suppress file name info in PDF output for included images, etc.
- Issue with creation of CTAN releases for bundles
ctanzip
variable--full
option
- Run PDF-based tests for all engines
- Tweaks to PDF-based normalisation: new
.tpf
files will be required - The
--halt-on-error|-H
setting now applies to multiple configs
- Testing using
.lve
files - Tagging with new approach to top-level targets
CHANGELOG.md
--dirty
optionincludetests
andexcludetests
variables for controlling which tests runtarget_list
table to allow control of targets without redefiningmain()
- PDF-based testing now uses 'digested' PDF file for comparison,
working from dedicated
.pvt
input files
--pdf|-p
command line switch
- Revert appearance of date lines in
.tlg
files: this is on balance problematic
- Variable
dynamicfiles
to be cleaned between each test run
- Normalise dates to placeholder "YYYY-MM-DD": may require
.tlg
updates
- Include dot files in
tree()
(fixes #30)
- Omit ISO date lines in
.tlg
files
- Allow 'short cut' of check runs
- Support for upcoming LaTeX kernel release functions
- Add
#!
line for POSIX users - Set POSIX u+x on
l3build.lua
- Handling of script name with or without extension
- Pass through script name correctly with new set up
- Target
tag
, variabletagfiles
and functionupdate_tag()
- Variables
scriptfiles
andscriptmanfiles
to support installation of scripts
l3build
can now be run as a top-level script rather than usingtexlua build.lua ...
- Normalisation of LuaTeX-derived
tlg
files, in preparation for TeX Live 2018
- Use of wrapper
build.lua
script to calll3build
: the new top-level script approach is preferred
- Target
setversion
and variableversionfiles
- Allow for
checkopts
adding code/files
- Creation of 'structured' CTAN releases
- Quote test names correctly
- Target
uninstall
- Options
--first
and--last
- Normalisation for upcoming LuaTeX 1.07 release
- Behaviour of check on Windows when using standard
fc
tool
- Target
manifest
for construction of file manifests automatically - Variable
auxfiles
- Option
--dry-run
for installation/cleaning - Option
--texmfhome
to allow customisation of installation - Option
--shuffle
to run tests in a random order
- Sort list of tests to avoid system-dependent ordering
- Split
l3build
into multiple files for improved maintenance
- Issue with
recordstatus
- Rationalise short option names: removed
-d
,-E
,-r
- Target
cmdcheck
: specific to LaTeX kernel work