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.
- Skip LuaTeX-specific log normalization for
\SHOWPDFTAGSoutput (issue #443)
- Align
\SHOWPDFTAGSmarkers (may require.tlgupdate)
- Normalize line ends in show-pdf-tags xml
- Update
\SHOWPDFTAGSdoc
\SHOWPDFTAGSinserts theshow-pdf-tagsXML tree into the log file.
- Clarify doc for
tdslocationsandtdsdirs - Clarify nature of ISO date format
- Minor formatting issue in normalization
- Extend normalization of
Lua functionlines - Normalize
luacalllines
- Support use of
\TIMOwith updated ConTeXt
- For tests created by
unpack,exludetestswas inverted
- Support test file extensions with multiple dot separated components
- Support updated ConTeXt log formatting
- Missing
os_concatrequired on Windows
halferrorlineanderrorlinevars (issue #258)
- Support
recordstatusin a platform-neutral way (issue #383) - Use
[nl]no^^Mwhen marking linebreaks in\SHOWFILE(issue #409): may require.tlgrebuilds
- Interaction between options
--devand--show-saves/-S(issue #411)
- Initialize all boolean config variables
- Normalize
at lines ...statements for overfull and underfull boxes (may require.tlgupdate)
- Skip README rename when this has no extension (issue #388)
--devswitch to run tests using development format
- Test for uncompleted conditionals in tests (may require
.tlgupdate) - Global
typesetoptsno longer ignored forluatexandlualatex(issue #351) - Handling of spaces in options
- Respect
--rerunindoctarget (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
l3msgmessage wrapping
- Switch
-s|--stdengineto 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
ctanpkgas a valid lua expression - Improve log for failed checks with no diff files
- Document full syntaxes of
\SHOWFILEand\ASSERT(STR)
- Short-circuit
check --reruniftestdirdoesn't exist - Retain errorlevel on Windows during
checktarget
- 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 normalization during checks (see issue #96)
-
Extend excludefiles to cover
build.lua(see #286)
- Return passing errorlevel if BibTeX issues warnings (see #260)
- Respect
excludefileswhen doing (local) installation
- Refine
-utcsupport - Apply
checkoptsin addition to engine-specific options
- Initialize the random seed with the current time so
--shuffleproduces different orders each run. - Normalize more
luaotfloadcache lines - Apply
-utcswitch for LuaTeX when using a fixed epoch value
- Set
-kanji-internal=eucwhen 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
luaotfloadpath data (see issue #301) - Update ConTeXt settings to allow for LuaTeX and LuaMetaTeX runs
- Improve doc for default
stdengine
- Avoid setting
TEMXFCNFfor ConTeXt (issue #232)
- All LuaTeX
.tlgfiles were wrongly considered not engine-specific. Introduced in #292 which tried to fix #291.
- Default value of
maxprintlineis now9999(may require.tlgupdates: see docs)
- Apply needed luatex-specific log normalization, even when
--rerunis used (issue #291)
- Generalize normalization of ghostscript version in PDF-based tests
- Include UNIX timestamps in generated ZIP files
- Normalize pdfTeX
.encfile loading
- Ensure when used, value of
ps2pdfoptsis surrounded by a space on both sides
- Run engine sanity check per config
- Restore epoch settings for
dvitopdf() - Use plural form of variable
ps2pdfoptsconsistently in code and doc, and retain compatibility with singular formps2pdfopt(issue #275) - Remove the last trace of dropped variable
stdconfig
- Unify
testdirby dropping possibly trailing.luapassed to--config
- Ensure directories
testdirandresultdirexist when--dirtyis set - epoch settings with xetex
- Drop a redundant setup line for upTeX
- Normalize more Lua stack trace data (may require
.tlgrebuild)
- Ensure
texmf.cnfwork correctly fordvips
- Suppress (new) LaTeX version data at end of
.log
- Allow for local override of
ctanuploadvariable
- Copying of nested directories
- Normalize GhostScript version in PDF-based tests
- Sort list of names of difference files for failing tests.
- Basic support for
make4ht
- Support
bidiversion string in\speciallines (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-stringrather thanformfor all curl fields to avoid misinterpreting leading@or<eg a description starting<p> -
Check the boolean value returned by executing shell commands in
l3build-uploadand throw an error if this is false. This fixes the issue that previously "validation successful" was reported ifcurlfailed.
- Documentation of how to validate an upload
- Use correct name for
optionstable 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 cleanrun on all of them by default. (issue #214)
- Place PDF files inside
docfiledirin all cases
- Documentation improvements
- Use
checkengines[1]as the default forstdengine - Add sanity check for
TEXMFHOMEvalue - 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
manifesttarget (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-savesflag forl3build checkto generate a list ofl3build savecommands to regenerate all failing tests
- No longer call an external program to generate
zipfiles and generate them directly instead. This disables the optionszipexeandzipopts. - Copy TDS-style zip files to main dir
- Issue when running PDF-based tests
- Normalize Lua function calls (issue #127) - may require
.tlgupdate - LuaTeX from TL'21 is no longer 'off by one' in log files - may require
.tlgupdate
- Installation now supports deeper directory levels (issue #182)
- The
texmfhomedirectory 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
sourcefilesentries 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
dvipsfor (p)TeX - Refinement of
/IDline suppression
- Refinement of PDF test normalization
- Option
ps2pdfopt
- Normalize
/IDlines in PDF comparisons - Normalize
%%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
specialtypesettingand support data
- Documentation improvements
- When
checkruns> 1 andrecordstatus=true, testing code would crash (issue #90)
- Normalize 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
\ASSERTSTRno longer needs e-TeX
- Installation of files using the
--fullswitch
- New
\ASSERTand\ASSERTSTRfunctions (issue #102)
- Avoid normalization of (u)pTeX data when this is standard engine (fixes #103)
- Normalize Lua data references (#107)
- Extend
runtest_task()to pass run number - Allow
regression-testto load when e-TeX is unavailable (fixes #105)
- Location of
testsuppdirwhen multiple configurations are used
docinit_hook()
- Normalize out file paths in all cases
- New
flattentdsvariable for controlling complex TDS structures - Additional notes on
texmfdir
- Copy TDS files inside subdirectories (fixes #100)
- Path searching if
texmfdiris set but does not exist
- Typesetting when using an isolated system (use of texmfdir)
- New
texmfdirvariable for more complex local additions
- Clean out all configuration test dirs (see #98)
checkinit_hook()
- Use three typesetting runs as-standard
- Use
pdftexnottexfor unpacking
- Include
LUAINPUTSwhen settingTEXINPUTSforchecksearch = false, etc.
- Remove
.logfile before each check run: prevent inter-engine confusion
- Interaction between secondary files in some tests
- Support for non-standard file layouts via
tdslocationstable
- Only write (x)dvipdfmx specials for XeTeX and (u)pTeX (see #94)
- Back out change for normalization of LuaTeX v1.10 stack information (timing issue: will reintroduce later)
- Correct test for LuaTeX (see #93)
- Support for HarfTeX (see #92)
- Support for normalization of LuaTeX v1.10 stack information
(may require new
.tlgfiles)
- Support for spaces in paths when typesetting (see #91)
- Switch
--show-log-on-errorfor use with--halt-on-error. Results in the.logfile being show in full on the console to aid in non-interactive debugging.
- Moved LuaTeX-specific font cache normalization
- Handling of ASCII engines
- Execution of all tests by
ctantarget (see #85)
- Table-based control of binary/format combinations:
specialformats(see #84) - Switch
--debugfor chasing problems with theuploadtarget
- The
uploadconfig.updatefield by default now automatically detects whether it needs to betrueorfalse - The
tagtarget now allows no tag name to allow for setting this programmatically within abuild.luascript - Better support for multiple LuaTeX-like engines
- Uploading via Windows should now work
- Switch
--emailfor providing upload email address - Switch
-F|--filefor providing upload announcement from file - Switch
-m|--messagefor providing upload announcement from command line
- Enable
--dry-runoption foruploadtarget - Enable tag/version to be passed as optional argument to
uploadtarget
- Packaging of some team-specific files
- Handling of upload data containing newlines (Windows only)
- Add new
uploadtarget which usescurlwith 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)
\SHOWFILEcommand
- 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
scriptfilesare excluded frominstallfiles - Use a per-config directory for running tests
- Enable use of local
texmf.cnffile in tests and documentation - New
ctanreadmevariable
- Normalize date lines to contain "...-..-.." rather than removing
(including normalizing version data in such lines): note that
.tlgfile updates may be required after this change - Explicitly exclude
.fdfile lines
- Suppress file name info in PDF output for included images, etc.
- Issue with creation of CTAN releases for bundles
ctanzipvariable--fulloption
- Run PDF-based tests for all engines
- Tweaks to PDF-based normalization: new
.tpffiles will be required - The
--halt-on-error|-Hsetting now applies to multiple configs
- Testing using
.lvefiles - Tagging with new approach to top-level targets
CHANGELOG.md--dirtyoptionincludetestsandexcludetestsvariables for controlling which tests runtarget_listtable to allow control of targets without redefiningmain()
- PDF-based testing now uses 'digested' PDF file for comparison,
working from dedicated
.pvtinput files
--pdf|-pcommand line switch
- Revert appearance of date lines in
.tlgfiles: this is on balance problematic
- Variable
dynamicfilesto be cleaned between each test run
- Normalize dates to placeholder "YYYY-MM-DD": may require
.tlgupdates
- Include dot files in
tree()(fixes #30)
- Omit ISO date lines in
.tlgfiles
- 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, variabletagfilesand functionupdate_tag() - Variables
scriptfilesandscriptmanfilesto support installation of scripts
l3buildcan now be run as a top-level script rather than usingtexlua build.lua ...- Normalization of LuaTeX-derived
tlgfiles, in preparation for TeX Live 2018
- Use of wrapper
build.luascript to calll3build: the new top-level script approach is preferred
- Target
setversionand variableversionfiles
- Allow for
checkoptsadding code/files
- Creation of 'structured' CTAN releases
- Quote test names correctly
- Target
uninstall - Options
--firstand--last
- Normalization for upcoming LuaTeX 1.07 release
- Behavior of check on Windows when using standard
fctool
- Target
manifestfor construction of file manifests automatically - Variable
auxfiles - Option
--dry-runfor installation/cleaning - Option
--texmfhometo allow customization of installation - Option
--shuffleto run tests in a random order
- Sort list of tests to avoid system-dependent ordering
- Split
l3buildinto multiple files for improved maintenance
- Issue with
recordstatus
- Rationalize short option names: removed
-d,-E,-r - Target
cmdcheck: specific to LaTeX kernel work