Skip to content

Commit

Permalink
Update to suspicious rollback code for issue #43
Browse files Browse the repository at this point in the history
Make the suspicious rollback message a warning not error.

Make the current and latest options to latexrelease set the
default rollback request to 0 so package rollback is disabled.

Add some documentation to dissuade package authors from loading
latexrelease in a package.
  • Loading branch information
davidcarlisle committed May 8, 2018
1 parent 7f80def commit f33ab1e
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 15 deletions.
28 changes: 24 additions & 4 deletions base/latexrelease.dtx
Expand Up @@ -40,7 +40,7 @@
%<*!fixltx2e>
% \fi
% \ProvidesFile{latexrelease.dtx}
[2018/02/18 v1.0j LaTeX release emulation and tests
[2018/05/08 v1.0k LaTeX release emulation and tests
(including releases up to \latexreleaseversion)]
% \iffalse
%</!fixltx2e>
Expand Down Expand Up @@ -108,6 +108,12 @@
% the commands defined here to adjust their definitions to the
% specified date as described below.
%
% Note that the \Lpack{latexrelease} package is intended for use
% at the start of a \emph{document}. Package and class code should not
% include this package as loading a package should not normally globally
% reset the effective version of \LaTeX\ that is in force, so affecting all
% other packages used in the document.
%
%
% The bulk of this package, after some initial setup and option
% handling consists of a series of |\IncludeInRelease| commands
Expand All @@ -123,16 +129,27 @@
% package has no information will generate a warning. Dates
% earlier than 2015 will work but will roll back to some point in 2015
% when the method was introduced.
% |\IncludeInRelease| command is defined.
% The |\requestedLaTeXdate| is set to the normalized date argument
% so that package rollback defaults to the specified date.
%
% \item%
% |current| This is the default behaviour, it does not change the
% effective date of the format but does ensure that the
% |\IncludeInRelease| command is defined.
% the |\requestedLaTeXdate| is reset to 0 so that package rollback
% does not use the implicit date.
% |\IncludeInRelease| command is defined.
% The |\requestedLaTeXdate| macro is reset to 0 so that package rollback
% does not use the implicit date.
%
% \item
% |latest| sets the effective date of the format to the release date
% of this file, so in an older format applies all patches currently
% available.
% |\IncludeInRelease| command is defined.
% The |\requestedLaTeXdate| macro is reset to 0 so that package rollback
% does not use the implicit date.
% \end{itemize}
%
%
Expand Down Expand Up @@ -379,18 +396,21 @@
% \end{macro}
%
% \changes{v1.0c}{2015/02/19}{Swap argument order}
% \changes{v1.0k}{2018/05/08}{reset \cs{\requestedLaTeXdate} for current and latest options, gitub issue 43}
% \begin{macrocode}
\DeclareOption*{%
\def\@IncludeInRelease#1[#2]{\@IncludeInRele@se{#1}}%
\let\requestedpatchdate\CurrentOption}
\DeclareOption{latest}{%
\let\requestedpatchdate\latexreleaseversion}
\let\requestedpatchdate\latexreleaseversion
\AtEndOfPackage{\def\requestedLaTeXdate{0}}}
\DeclareOption{current}{%
\let\requestedpatchdate\fmtversion}
\let\requestedpatchdate\fmtversion
\AtEndOfPackage{\def\requestedLaTeXdate{0}}}
% \end{macrocode}
%
% \begin{macrocode}
\ExecuteOptions{current}
\let\requestedpatchdate\fmtversion
\ProcessOptions\relax
% \end{macrocode}
%
Expand Down
19 changes: 9 additions & 10 deletions base/ltclass.dtx
Expand Up @@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
[2018/04/10 v1.2h LaTeX Kernel (Class & Package Interface)]
[2018/05/08 v1.2i LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
Expand Down Expand Up @@ -2144,18 +2144,17 @@
% \end{macrocode}
% If the min-date is after the requested rollback date (if there is
% any, i.e., if it is not zero) then we have a conflict and
% therefore issue an error.
% therefore issue a warning.
% \changes{v1.2i}{2018/05/08}
% {Make suspicious rollback a warning not error: github issue 43}
% \begin{macrocode}
\ifnum \pkgcls@targetdate > \z@
\ifnum \@parse@version0#1//00\@nil > \pkgcls@targetdate
\@latex@error{Suspicious rollback/min-date date given}%
{There is a minimal date of #1 specified for
\@cls@pkg\space'\pkgcls@name'.\MessageBreak
\@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak
A minimal date of #1 has been specified for
\@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak
But this is in conflict
with a rollback request to \requestedpatchdate,
so something\MessageBreak
is wrong here. Continue and I
ignore the minimal date request.}%
with a rollback request to \requestedpatchdate}
\fi
\fi
\fi
Expand Down Expand Up @@ -2295,7 +2294,7 @@
% We then set the |\pkgcls@targetdate| to zero so that any
% |\DeclareRelease| or |\DeclareCurrentRelease| in the file we
% now load are bypassed\footnote{The older release may also have
% such declarations inside if it was a simply copy od the
% such declarations inside if it was a simply copy of the
% \texttt{.sty} or \texttt{.cls} file current at that
% date. Removing these declarations would make the file load a tiny
% bit faster, but this way it works in any case.} and then we
Expand Down
2 changes: 1 addition & 1 deletion base/ltvers.dtx
Expand Up @@ -115,7 +115,7 @@
{2018-04-01}
%</2ekernel|latexrelease>
%<*2ekernel>
\def\patch@level{4}
\def\patch@level{-5}
% \end{macrocode}
% \end{macro}
% \end{macro}
Expand Down

0 comments on commit f33ab1e

Please sign in to comment.