texlive[69100] trunk: l3build (12dec23)
commits+karl at tug.org
commits+karl at tug.org
Tue Dec 12 22:08:32 CET 2023
Revision: 69100
https://tug.org/svn/texlive?view=revision&revision=69100
Author: karl
Date: 2023-12-12 22:08:32 +0100 (Tue, 12 Dec 2023)
Log Message:
-----------
l3build (12dec23)
Modified Paths:
--------------
trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
trunk/Master/texmf-dist/doc/latex/l3build/README.md
trunk/Master/texmf-dist/doc/latex/l3build/l3build.pdf
trunk/Master/texmf-dist/doc/man/man1/l3build.1
trunk/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua
trunk/Master/texmf-dist/scripts/l3build/l3build.lua
trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx
Modified: trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua 2023-12-12 21:08:32 UTC (rev 69100)
@@ -1,5 +1,3 @@
-#!/usr/bin/env texlua
-
--[[
File l3build.lua Copyright (C) 2014-2022 The LaTeX Project
@@ -25,7 +23,7 @@
--]]
-- Version information
-release_date = "2023-11-01"
+release_date = "2023-12-12"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -165,16 +163,7 @@
end
if next(failed) then
for _,config in ipairs(failed) do
- print("Failed tests for configuration \"" .. config .. "\":")
- print("\n Check failed with difference files")
- local testdir = testdir
- if config ~= "build" then
- testdir = testdir .. "-" .. config
- end
- for _,i in ipairs(ordered_filelist(testdir,"*" .. os_diffext)) do
- print(" - " .. testdir .. "/" .. i)
- end
- print("")
+ checkdiff(config)
end
if options["show-saves"] then
local savecmds, recheckcmds = "", ""
@@ -200,8 +189,8 @@
end
print"To regenerate the test files, run\n"
print(savecmds)
- if recheckcmds ~= "" then
- print"To detect engine specific differences, run after that\n"
+ if recheckcmds ~= "" and #checkengines ~= 1 then
+ print"To detect engine-specific differences, run after that\n"
print(recheckcmds)
end
end
Modified: trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md 2023-12-12 21:08:32 UTC (rev 69100)
@@ -7,6 +7,17 @@
## [Unreleased]
+## [2023-12-12]
+
+### Changed
+- 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)`
+
+### Fixed
+- Short-circuit `check --rerun` if `testdir` doesn't exist
+- Retain errorlevel on Windows during `check` target
+
## [2023-11-01]
### Changed
@@ -721,7 +732,8 @@
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2023-11-01...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2023-12-12...HEAD
+[2023-12-12]: https://github.com/latex3/l3build/compare/2023-11-01...2023-12-12
[2023-11-01]: https://github.com/latex3/l3build/compare/2023-09-13...2023-11-01
[2023-09-13]: https://github.com/latex3/l3build/compare/2023-09-07...2023-09-13
[2023-09-07]: https://github.com/latex3/l3build/compare/2023-09-05...2023-09-07
Modified: trunk/Master/texmf-dist/doc/latex/l3build/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3build/README.md 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Master/texmf-dist/doc/latex/l3build/README.md 2023-12-12 21:08:32 UTC (rev 69100)
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX
=================================================
-Release 2023-11-01
+Release 2023-12-12
Overview
--------
Modified: trunk/Master/texmf-dist/doc/latex/l3build/l3build.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/man/man1/l3build.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/l3build.1 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Master/texmf-dist/doc/man/man1/l3build.1 2023-12-12 21:08:32 UTC (rev 69100)
@@ -1,4 +1,4 @@
-.TH l3build 1 "2023-11-01"
+.TH l3build 1 "2023-12-12"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
Modified: trunk/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua 2023-12-12 21:08:32 UTC (rev 69100)
@@ -799,29 +799,37 @@
-- Ensure there is no stray .log file
rmfile(testdir,name .. logext)
local errlevels = {}
+ local preamble =
+ -- No use of localdir here as the files get copied to testdir:
+ -- avoids any paths in the logs
+ os_setenv .. " TEXINPUTS=." .. localtexmf()
+ .. (checksearch and os_pathsep or "")
+ .. os_concat ..
+ os_setenv .. " LUAINPUTS=." .. localtexmf()
+ .. (checksearch and os_pathsep or "")
+ .. os_concat ..
+ -- ensure epoch settings
+ set_epoch_cmd(epoch, forcecheckepoch) ..
+ -- Ensure lines are of a known length
+ os_setenv .. " max_print_line=" .. maxprintline
+ .. os_concat
for i = 1, checkruns do
errlevels[i] = runcmd(
- -- No use of localdir here as the files get copied to testdir:
- -- avoids any paths in the logs
- os_setenv .. " TEXINPUTS=." .. localtexmf()
- .. (checksearch and os_pathsep or "")
- .. os_concat ..
- os_setenv .. " LUAINPUTS=." .. localtexmf()
- .. (checksearch and os_pathsep or "")
- .. os_concat ..
- -- ensure epoch settings
- set_epoch_cmd(epoch, forcecheckepoch) ..
- -- Ensure lines are of a known length
- os_setenv .. " max_print_line=" .. maxprintline
- .. os_concat ..
+ preamble ..
binary .. format
.. " " .. asciiopt .. " " .. checkopts
.. setup(lvtfile)
- .. (hide and (" > " .. os_null) or "")
- .. os_concat ..
- runtest_tasks(jobname(lvtfile),i),
+ .. (hide and (" > " .. os_null) or ""),
testdir
)
+ -- On Windows, concatenting here will suppress any non-zero errorlevel
+ -- from the main run, so we split into two parts.
+ if errlevels[i] == 0 then
+ local errorlevel =
+ runcmd(preamble .. runtest_tasks(jobname(lvtfile),i)
+ .. (hide and (" > " .. os_null) or ""),testdir)
+ if errorlevel ~= 0 then errlevels[i] = errorlevel end
+ end
-- Break the loop if the result is stable
if breakout and i < checkruns then
if test_type.generated == pdfext then
@@ -926,7 +934,13 @@
function check(names)
local errorlevel = 0
if testfiledir ~= "" and direxists(testfiledir) then
- if not options["rerun"] then
+ if options["rerun"] then
+ if not direxists(testdir) then
+ print("\n Test directory \"" .. testdir .. "\" doesn't exist.")
+ print(" Try again without \"--rerun\".\n")
+ return 1
+ end
+ else
errorlevel = checkinit()
if errorlevel ~= 0 then
return errorlevel
@@ -1031,7 +1045,7 @@
end
end
if errorlevel ~= 0 then
- checkdiff()
+ checkdiff() -- this leaves "config" parameter of "checkdiff()" nil
if options["show-saves"] then
showsavecommands(failurelist)
end
@@ -1043,10 +1057,26 @@
end
-- A short auxiliary to print the list of differences for check
-function checkdiff()
- print("\n Check failed with difference files")
- for _,i in ipairs(ordered_filelist(testdir, "*" .. os_diffext)) do
- print(" - " .. testdir .. "/" .. i)
+function checkdiff(config)
+ local diff_files = ordered_filelist(testdir, "*" .. os_diffext)
+ if next(diff_files) then
+ if config then
+ print("Failed tests for configuration \"" .. config .. "\":")
+ local testdir = testdir
+ if config ~= "build" then
+ testdir = testdir .. "-" .. config
+ end
+ end
+ print("\n Check failed with difference files")
+ for _,i in ipairs(diff_files) do
+ print(" - " .. testdir .. "/" .. i)
+ end
+ else
+ if config then
+ print("Check failed for configuration \"" .. config .. "\" with no difference files.")
+ else
+ print("Check failed with no difference files.")
+ end
end
print("")
end
Modified: trunk/Master/texmf-dist/scripts/l3build/l3build.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/l3build/l3build.lua 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Master/texmf-dist/scripts/l3build/l3build.lua 2023-12-12 21:08:32 UTC (rev 69100)
@@ -1,5 +1,3 @@
-#!/usr/bin/env texlua
-
--[[
File l3build.lua Copyright (C) 2014-2022 The LaTeX Project
@@ -25,7 +23,7 @@
--]]
-- Version information
-release_date = "2023-11-01"
+release_date = "2023-12-12"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -165,16 +163,7 @@
end
if next(failed) then
for _,config in ipairs(failed) do
- print("Failed tests for configuration \"" .. config .. "\":")
- print("\n Check failed with difference files")
- local testdir = testdir
- if config ~= "build" then
- testdir = testdir .. "-" .. config
- end
- for _,i in ipairs(ordered_filelist(testdir,"*" .. os_diffext)) do
- print(" - " .. testdir .. "/" .. i)
- end
- print("")
+ checkdiff(config)
end
if options["show-saves"] then
local savecmds, recheckcmds = "", ""
@@ -200,8 +189,8 @@
end
print"To regenerate the test files, run\n"
print(savecmds)
- if recheckcmds ~= "" then
- print"To detect engine specific differences, run after that\n"
+ if recheckcmds ~= "" and #checkengines ~= 1 then
+ print"To detect engine-specific differences, run after that\n"
print(recheckcmds)
end
end
Modified: trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx 2023-12-12 21:08:18 UTC (rev 69099)
+++ trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx 2023-12-12 21:08:32 UTC (rev 69100)
@@ -52,10 +52,10 @@
\def\allluavars{
\luavarset{module}{""}{The name of the module}
\luavarset{bundle}{""}{The name of the bundle in which the module belongs (where relevant)}
-\luavarset{ctanpkg}{module/bundle}{Name of the CTAN package matching this module}
+\luavarset{ctanpkg}{bundle == "" and module or bundle}{Name of the CTAN package matching this module}
\luavarseparator
-\luavarset{modules}{\{\}}{The list of all modules in a bundle (when not auto-detecting)}
-\luavarset{exclmodules}{\{\}}{Directories to be excluded from automatic module detection}
+\luavarset{modules}{\{ \}}{The list of all modules in a bundle (when not auto-detecting)}
+\luavarset{exclmodules}{\{ \}}{Directories to be excluded from automatic module detection}
\luavarseparator
\luavarset{maindir} {"."} {Top level directory for the module/bundle}
\luavarset{docfiledir} {"."} {Directory containing documentation files}
@@ -85,8 +85,8 @@
\luavarset{checkfiles} {\{~\}}{Extra files unpacked purely for tests}
\luavarset{checksuppfiles} { }{Files needed for performing regression tests}
\luavarset{cleanfiles} {\{"*.log", "*.pdf", "*.zip"\}}{Files to delete when cleaning}
-\luavarset{demofiles} {\{\}}{Files which show how to use a module}
-\luavarset{docfiles} {\{\}}{Files which are part of the documentation but should not be typeset}
+\luavarset{demofiles} {\{ \}}{Files which show how to use a module}
+\luavarset{docfiles} {\{ \}}{Files which are part of the documentation but should not be typeset}
\luavarset{dynamicfiles} {\{ \}}{Secondary files to cleared before each test is run}
\luavarset{excludefiles} {\{"*\string~","build.lua","config-*.lua"\}}{Files to ignore entirely (default for Emacs backup files)}
\luavarset{installfiles} {\{"*.sty","*.cls"\}}{Files to install to the \texttt{tex} area of the \texttt{texmf} tree}
@@ -96,19 +96,19 @@
\luavarset{sourcefiles} {\{"*.dtx", "*.ins", "*-????-??-??.sty"\}}{Files to copy for unpacking}
\luavarset{tagfiles} {\{"*.dtx"\}}{Files for automatic tagging}
\luavarset{textfiles} {\{"*.md", "*.txt"\}}{Plain text files to send to CTAN as-is}
-\luavarset{typesetdemofiles} {\{\}}{Files to typeset before the documentation for inclusion in main documentation files}
+\luavarset{typesetdemofiles} {\{ \}}{Files to typeset before the documentation for inclusion in main documentation files}
\luavarset{typesetfiles} {\{"*.dtx"\}}{Files to typeset for documentation}
-\luavarset{typesetsuppfiles} {\{\}}{Files needed to support typesetting when \enquote{sandboxed}}
-\luavarset{typesetsourcefiles}{\{\}}{Files to copy to unpacking when typesetting}
+\luavarset{typesetsuppfiles} {\{ \}}{Files needed to support typesetting when \enquote{sandboxed}}
+\luavarset{typesetsourcefiles}{\{ \}}{Files to copy to unpacking when typesetting}
\luavarset{unpackfiles} {\{"*.ins"\}}{Files to run to perform unpacking}
-\luavarset{unpacksuppfiles} {\{\}}{Files needed to support unpacking when \enquote{sandboxed}}
+\luavarset{unpacksuppfiles} {\{ \}}{Files needed to support unpacking when \enquote{sandboxed}}
\luavarseparator
\luavarset{includetests}{\{"*"\}}{Test names to include when checking}
-\luavarset{excludetests}{\{\}} {Test names to exclude when checking}
+\luavarset{excludetests}{\{ \}} {Test names to exclude when checking}
\luavarseparator
-\luavarset{checkdeps} {\{\}}{List of dependencies for running checks}
-\luavarset{typesetdeps}{\{\}}{List of dependencies for typesetting docs}
-\luavarset{unpackdeps} {\{\}}{List of dependencies for unpacking}
+\luavarset{checkdeps} {\{ \}}{List of dependencies for running checks}
+\luavarset{typesetdeps}{\{ \}}{List of dependencies for typesetting docs}
+\luavarset{unpackdeps} {\{ \}}{List of dependencies for unpacking}
\luavarseparator
\luavarset{checkengines}{\{"pdftex", "xetex", "luatex"\}}{Engines to check with \texttt{check} by default}
\luavarset{stdengine} {checkengines[1] or "pdftex"}{Engine to generate \texttt{.tlg} file from}
@@ -117,7 +117,7 @@
\luavarset{\detokenize{test_types}} {\meta{table}} {Custom test variants}
\luavarset{\detokenize{test_order}} {\{"log", "pdf"\}} {Which kinds of tests to evaluate}
\luavarseparator
-\luavarset{checkconfigs}{\{\}}{Configurations to use for tests}
+\luavarset{checkconfigs}{\{ \}}{Configurations to use for tests}
\luavarseparator
\luavarset{typesetexe} {"pdflatex"} {Executable for compiling \texttt{doc(s)}}
\luavarset{unpackexe} {"pdftex"} {Executable for running \texttt{unpack}}
@@ -190,7 +190,7 @@
\setlength\LTleft{-0.21\linewidth}
\begin{longtable}{@{}%
>{\small}
- p{0.18\linewidth}
+ p{0.20\linewidth}
@{\hspace{0.03\linewidth}}
>{\footnotesize\hangindent=1em}
p{0.34\linewidth}
@@ -251,7 +251,7 @@
% }^^A
% }
%
-% \date{Released 2023-11-01}
+% \date{Released 2023-12-12}
%
% \maketitle
% \tableofcontents
@@ -977,12 +977,13 @@
% \cs{BEGINTEST}\marg{title} \dots \cs{ENDTEST} is an environment form of
% \cs{TEST}, allowing verbatim material, \emph{etc.} to appear.
% \item
-% \cs{SHOWFILE} (\eTeX{} only) Shows the content of the file given as an
-% argument.
+% \cs{SHOWFILE}\marg{filename} (\eTeX{} only) Shows the content of
+% \meta{filename}.
% \item
-% \cs{ASSERT} and \cs{ASSERTSTR} Asserts if the full expansion
-% of the two required arguments are the same: the \cs{ASSERT} function is
-% token-based, the \cs{ASSERTSTR} works on a string basis.
+% \cs{ASSERT}\marg{arg_1}\marg{arg_2} and \cs{ASSERTSTR}\marg{arg_1}\marg{arg_2}
+% Asserts if the full expansion of \meta{arg_1} and \meta{arg_2} are the same:
+% the \cs{ASSERT} function is token-based,
+% the \cs{ASSERTSTR} works on a string basis.
% \end{itemize}
% An example of some of these commands is shown following.
% \begin{Verbatim}
More information about the tex-live-commits
mailing list.