summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-06-18 22:29:20 +0000
committerKarl Berry <karl@freefriends.org>2019-06-18 22:29:20 +0000
commit691106177d00ff3ef1e88a1bbe1a914140c86d85 (patch)
tree9393df2ca80c1a7787aa790d52b42b2009946504 /Master
parentbf2e8a6ab79c4f7fd2eed164783c60f1575f84e4 (diff)
l3build (18jun19)
git-svn-id: svn://tug.org/texlive/trunk@51397 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/l3build/CHANGELOG.md14
-rw-r--r--Master/texmf-dist/doc/latex/l3build/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3build/l3build.pdfbin693301 -> 697243 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/l3build.12
-rw-r--r--Master/texmf-dist/doc/man/man1/l3build.man1.pdfbin15104 -> 15356 bytes
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-arguments.lua17
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-check.lua35
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-upload.lua5
-rwxr-xr-xMaster/texmf-dist/scripts/l3build/l3build.lua2
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.dtx70
10 files changed, 120 insertions, 27 deletions
diff --git a/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
index a93fef69cb1..5adace2012d 100644
--- a/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
@@ -7,6 +7,17 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2019-06-18]
+
+### Added
+
+- 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.
+
+### Changed
+
+- Moved LuaTeX-specific font cache normalisation
+
## [2019-02-10]
### Fixed
@@ -251,7 +262,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX3 kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2019-02-10...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2019-06-18...HEAD
+[2019-06-18]: https://github.com/latex3/l3build/compare/2019-02-10...2019-06-18
[2019-02-10]: https://github.com/latex3/l3build/compare/2019-02-06...2019-02-10
[2019-02-06]: https://github.com/latex3/l3build/compare/2018-12-23...2019-02-06
[2018-12-23]: https://github.com/latex3/l3build/compare/2018-12-18...2018-12-23
diff --git a/Master/texmf-dist/doc/latex/l3build/README.md b/Master/texmf-dist/doc/latex/l3build/README.md
index 49d1a4253e9..0c7eeb233e9 100644
--- a/Master/texmf-dist/doc/latex/l3build/README.md
+++ b/Master/texmf-dist/doc/latex/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX3
=================================================
-Release 2019-02-10
+Release 2019-06-18
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3build/l3build.pdf b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
index 5304822630d..bddcaaf002e 100644
--- a/Master/texmf-dist/doc/latex/l3build/l3build.pdf
+++ b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/l3build.1 b/Master/texmf-dist/doc/man/man1/l3build.1
index bc2686d0b95..81d82a908c4 100644
--- a/Master/texmf-dist/doc/man/man1/l3build.1
+++ b/Master/texmf-dist/doc/man/man1/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2019-02-10"
+.TH l3build 1 "2019-06-18"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
diff --git a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
index 28aaae3e5fd..4cc0aa6c47c 100644
--- a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/l3build/l3build-arguments.lua b/Master/texmf-dist/scripts/l3build/l3build-arguments.lua
index a6a13a43fee..cbf68c6254a 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-arguments.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-arguments.lua
@@ -111,12 +111,6 @@ option_list =
short = "h",
type = "boolean"
},
- quiet =
- {
- desc = "Suppresses TeX output when unpacking",
- short = "q",
- type = "boolean"
- },
last =
{
desc = "Name of last test to run",
@@ -128,11 +122,22 @@ option_list =
short = "m",
type = "string"
},
+ quiet =
+ {
+ desc = "Suppresses TeX output when unpacking",
+ short = "q",
+ type = "boolean"
+ },
rerun =
{
desc = "Skip setup: simply rerun tests",
type = "boolean"
},
+ ["show-log-on-error"] =
+ {
+ desc = "If 'halt-on-error' stops, show the full log of the failure",
+ type = "boolean"
+ },
shuffle =
{
desc = "Shuffle order of tests",
diff --git a/Master/texmf-dist/scripts/l3build/l3build-check.lua b/Master/texmf-dist/scripts/l3build/l3build-check.lua
index 96c5d719949..301c0df1853 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-check.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-check.lua
@@ -243,6 +243,9 @@ local function normalize_log(content,engine,errlevels)
match(line, "^used structure >") then
return ""
end
+ -- The first time a new font is used by LuaTeX, it shows up
+ -- as being cached: make it appear loaded every time
+ line = gsub(line, "save cache:", "load cache:")
-- A tidy-up to keep LuaTeX and other engines in sync
line = gsub(line, utf8_char(127), "^^?")
-- Unicode engines display chars in the upper half of the 8-bit range:
@@ -345,9 +348,6 @@ local function normalize_lua_log(content,luatex)
"Missing character: There is no (%^%^..) %(U%+(....)%)",
"Missing character: There is no %1"
)
- -- The first time a new font is used, it shows up
- -- as being cached
- line = gsub(line, "(save cache:", "(load cache:")
-- LuaTeX from v1.07 logs kerns differently ...
-- This block only applies to the output of LuaTeX itself,
-- hence needing a flag to skip the case of the reference log
@@ -544,9 +544,14 @@ function runcheck(name, hide)
local function check_and_diff(ext,engine,comp,pdftest)
runtest(name,engine,hide,ext,pdftest,true)
local errorlevel = comp(name,engine)
- if errorlevel ~= 0 and options["halt-on-error"] then
+ if errorlevel == 0 then
+ return errorlevel
+ end
+ if options["show-log-on-error"] then
+ showfailedlog(name)
+ end
+ if options["halt-on-error"] then
showfaileddiff()
- return 1
end
return errorlevel
end
@@ -728,7 +733,7 @@ function runtest(name, engine, hide, ext, pdfmode, breakout)
-- Ensure lines are of a known length
os_setenv .. " max_print_line=" .. maxprintline
.. os_concat ..
- binary .. format
+ binary .. format
.. " " .. asciiopt .. " " .. checkopts
.. setup(lvtfile)
.. (hide and (" > " .. os_null) or "")
@@ -907,6 +912,20 @@ function checkdiff()
print("")
end
+function showfailedlog(name)
+ print("\nCheck failed with log file")
+ for _,i in ipairs(filelist(testdir, name..".log")) do
+ print(" - " .. testdir .. "/" .. i)
+ print("")
+ local f = open(testdir .. "/" .. i,"r")
+ local content = f:read("*all")
+ close(f)
+ print("-----------------------------------------------------------------------------------")
+ print(content)
+ print("-----------------------------------------------------------------------------------")
+ end
+end
+
function showfaileddiff()
print("\nCheck failed with difference file")
for _,i in ipairs(filelist(testdir, "*" .. os_diffext)) do
@@ -927,7 +946,7 @@ function save(names)
for _,name in pairs(names) do
if testexists(name) then
for _,engine in pairs(engines) do
- local testengine = ((engine == stdengine and "") or "." .. engine)
+ local testengine = ((engine == stdengine and "") or "." .. engine)
local function save_test(test_ext,gen_ext,out_ext,pdfmode)
local out_file = name .. testengine .. out_ext
local gen_file = name .. "." .. engine .. gen_ext
@@ -956,7 +975,7 @@ function save(names)
return 1
else
print('Test "'.. name .. '"not found')
- return 1
+ return 1
end
end
return 0
diff --git a/Master/texmf-dist/scripts/l3build/l3build-upload.lua b/Master/texmf-dist/scripts/l3build/l3build-upload.lua
index 4256ed0854f..de1899ad2cb 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-upload.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-upload.lua
@@ -121,12 +121,13 @@ function upload(tagnames)
-- curl file version
- local curlopt=open(ctanzip .. ".curlopt","w")
+ local curloptfile = uploadconfig.curlopt_file or (ctanzip .. ".curlopt")
+ local curlopt=open(curloptfile,"w")
output(curlopt)
write(ctan_post)
close(curlopt)
- ctan_post=curlexe .. " --config " .. ctanzip .. ".curlopt"
+ ctan_post=curlexe .. " --config " .. curloptfile
if options["debug"] then
diff --git a/Master/texmf-dist/scripts/l3build/l3build.lua b/Master/texmf-dist/scripts/l3build/l3build.lua
index 4c8cd86c075..9d51648553a 100755
--- a/Master/texmf-dist/scripts/l3build/l3build.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2019-02-10"
+release_date = "2019-06-18"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx
index 7a662751323..4a5dc0f51cf 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.dtx
+++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% File l3build.dtx (C) Copyright 2014-2018 The LaTeX3 Project
+% File l3build.dtx (C) Copyright 2014-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -227,7 +227,7 @@
% }^^A
% }
%
-% \date{Released 2019-02-10}
+% \date{Released 2019-06-18}
%
% \maketitle
% \tableofcontents
@@ -352,10 +352,12 @@
% \item |--halt-on-error| (|-H|) Specifies that checks
% should stop as soon as possible, rather than running all requested
% tests; the difference file is printed in the terminal directly in the case of failure
-% \item |--last| Name of the last test to run
+% \item |--last| Name of the last test to run
% \item |--message| (|-m|) Text for upload announcement
% \item |--quiet| (|-q|) Suppresses output from unpacking
% \item |--rerun| Run tests without unpacking/set up
+% \item |--show-log-on-error| To be used in addition to \texttt{--halt-on-error} and results
+% in the full \texttt{.log} file of a failed test to be shown on the console
% \item |--shuffle| Shuffle the order in which tests run
% \item |--texmfhome| Sets the location of the user tree for installing
% \end{itemize}
@@ -1331,15 +1333,37 @@
% and a simple example of an extract from a \texttt{build.lua} file using this is shown
% in Figure~\ref{fig:uploadconfig}.
%
-% Note that the \texttt{upload} target will \emph{not} execute the \texttt{ctan} target first.
+% Note that the \texttt{upload} target will \emph{not} execute the
+% \texttt{ctan} target first.
+%
+% This upload facility assumes availablity of |curl| on your
+% system. In the case of Windows, the system curl will not be
+% available if you are using a 32 bit \TeX\ implementation. Curl
+% executables are available for a variety of operating systems from
+% \url{https://curl.haxx.se/download.html}.
%
% \paragraph{Announcement text}
% It can be convenient not to include the announcement text within the |build.lua| file
% directly. The command line argument |--message| (|-m|) allows the announcement to be
% included as part of the |l3build| arguments, and |--file| (|-F|) reads the announcement
-% from a specified file. Note that if the announcement text is omitted a `silent update'
+% from a specified file. The \texttt{build.lua} file may also specify that this text is to
+% be taken from the file specified by
+% |uploadconfig.announcement_file|, this allows the release-specific announcement to be
+% specified outside the main |build.lua| file. If
+% |uploadconfig.announcement_file| is |nil| or specifies a file that
+% can not be read, and no announcement is provided by the
+% |announcement| field or commandline arguments, |l3build| will
+% interactively prompt for text (which may be empty).
+%
+% Note that if the announcement text is empty a `silent update'
% is performed; this should usually be performed for minor bug or documentation fixes only.
%
+% \paragraph{Note text}
+% This optional field is for passing notes to the CTAN maintainers. As
+% for announcements, the text may be set in |uploadconfig.note| or
+% perhaps more usefully, if |uploadconfig.note_file| is the filename of a
+% readable file the file text is used as the note.
+%
% \paragraph{Uploader details}
% The CTAN team use the uploader email address as a form of low-security sanity
% check that the upload is coming from a reputable source. Therefore, it is advisable not
@@ -1356,13 +1380,41 @@
% non-existing package or if you attempt to upload a new package with the same name as a
% pre-existing one.
%
+% \paragraph{The \texttt{curl} options file}
+%
+% The \pkg{l3build} upload options are passed to |curl| by writing the
+% fields to a text file with a default name being
+% \meta{package}|-ctan.curlopt|. This is then passed to curl using its
+% |--config| commandline option. (Using an intermediate file helps
+% keep \pkg{l3build} portable between systems using different
+% commandline quoting conventions.)
+%
+% By default the file is written into the current directory alongside
+% the zip file to be uploaded. You may wish to specify that this file
+% is ignored by any version control in that directory (using
+% |.gitignore| or similar). Or alternatively you can use the
+% |uploadconfig.curl_file| field in the |build.lua| file to specify an
+% alternative name or location for this file.
+%
+% \paragraph{Debugging}
% If you have have difficulty with the upload process, add the option |--debug| to divert
-% the request from CTAN to a service that redirects the input back again so it can be examined.
+% the request from CTAN to a service that redirects the input back
+% again so it can be examined.
+% It can also be useful to check the contents of the |curlopts| file which has a
+% record of the options passed to curl.
%
% \begin{table}[p]
% \def\YES{\textbullet}
-% \caption{Fields used in the \texttt{uploadconfig} setup table. The first section of fields are \emph{required} and if they are omitted the user will be interactively prompted for further input. Most commands take string input, but those that are indicated with `Multi' accept more than one entry using an array of strings.}
+% \caption{Fields used in the \texttt{uploadconfig} setup table. The
+% first section of fields are \emph{required} and if they are
+% omitted the user will be interactively prompted for further
+% input. Most commands take string input, but those that are
+% indicated with `Multi' accept more than one entry using an array
+% of strings. Most of the fields correspond directly to the fields
+% in the CTAN upload API, the last group relate to file use by
+% \pkg{l3build}.}
% \label{tab:upload-setup}
+% \medskip
% \begin{minipage}{\linewidth}
% \begin{tabular}{@{}lccp{8cm}@{}}
% \toprule
@@ -1387,6 +1439,10 @@
% \texttt{support } & & \YES & URL(s) of support channels \\
% \texttt{topic } & & \YES & Topic(s)\footnote{See \url{https://ctan.org/topics/highscore}} \\
% \texttt{update } & & & Boolean \texttt{true} for an update, \texttt{false} for a new package \\
+% \midrule
+% \texttt{announcement\_file} & & & Announcement text file \\
+% \texttt{note\_file} & & & Note text file \\
+% \texttt{curlopt\_file} & & & The filename containing the options passed to curl \\
% \bottomrule
% \end{tabular}
% \end{minipage}