Skip to content

Commit

Permalink
fix(packages): Change retrograde package so 'target' version works as…
Browse files Browse the repository at this point in the history
… expected

The retrogade package as released in v0.15.0 was counter intuitive in
that the 'target' argument was the first version that had settings one
wanted to reset. It is more intuative to use if the target is the
version the document settings were designed for. In other words to undo
default changes released in v0.15.0 a document can specify a target of
v0.14.17. This would be a breaking change if the original hadn't been
released this morning and the original counterintuative behaviour had
any change of being deployed anywhere.
  • Loading branch information
alerque committed Jun 7, 2024
1 parent eb3dd75 commit 6ad9b76
Show file tree
Hide file tree
Showing 122 changed files with 140 additions and 152 deletions.
48 changes: 18 additions & 30 deletions packages/retrograde/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ package.shim_commands = {
},
}

package.shim_shims = {
package.shim_classes = {
["0.15.0"] = {
["classes.base.newPar"] = function ()
local newPar = SILE.documentState.documentClass.newPar
Expand Down Expand Up @@ -95,29 +95,28 @@ end

function package:recede (target)
self:recede_defaults(target)
self:recede_shims(target)
self:recede_classes(target)
self:recede_commands(target)
end

function package._prep (_, target, type)
target = semver(target and target or SILE.version)
SU.debug("retrograde", ("Targeting %s changes back as far as the release of SILE v%s."):format(type, target))
SU.debug("retrograde", ("Targeting changes to %s since the release of SILE v%s."):format(type, target))
local terminal = function (version)
SU.debug(
"retrograde",
("The next set of %s changes is from the release of SILE v%s, stopping."):format(type, version)
("The next set of changes to %s is from the release of SILE v%s, stopping."):format(type, version)
)
end
return target, terminal
end

function package:recede_defaults (target)
local semvertarget, terminal = self:_prep(target, "default")
local target_hit = false
local semvertarget, terminal = self:_prep(target, "defaults")
for version, settings in pl.tablex.sort(self.default_settings, semver_descending) do
version = semver(version)
if target_hit then
terminal()
if version <= semvertarget then
terminal(version)
break
end
for parameter, value in pairs(settings) do
Expand All @@ -127,30 +126,23 @@ function package:recede_defaults (target)
)
SILE.settings:set(parameter, value, true)
end
if version <= semvertarget then
target_hit = true
end
end
end

function package:recede_shims (target)
local semvertarget, terminal = self:_prep(target, "default")
function package:recede_classes (target)
local semvertarget, terminal = self:_prep(target, "classes")
local reverters = {}
local target_hit = false
for version, callbacks in pl.tablex.sort(self.shim_shims, semver_descending) do
for version, callbacks in pl.tablex.sort(self.shim_classes, semver_descending) do
version = semver(version)
if target_hit then
terminal()
if version <= semvertarget then
terminal(version)
break
end
for widget, callback in pairs(callbacks) do
SU.debug("retrograde", ("Shimming '%s' to behavior similar to prior to v%s."):format(widget, version))
local reverter = callback()
reverters[widget] = reverter
end
if version <= semvertarget then
target_hit = true
end
end
return function ()
for _, reverter in pairs(reverters) do
Expand All @@ -160,13 +152,12 @@ function package:recede_shims (target)
end

function package:recede_commands (target)
local semvertarget, terminal = self:_prep(target, "command")
local semvertarget, terminal = self:_prep(target, "commands")
local currents = {}
local target_hit = false
for version, commands in pl.tablex.sort(self.shim_commands, semver_descending) do
version = semver(version)
if target_hit then
terminal()
if version <= semvertarget then
terminal(version)
break
end
for command, get_function in pairs(commands) do
Expand All @@ -175,9 +166,6 @@ function package:recede_commands (target)
currents[command] = current
SILE.Commands[command] = get_function(current)
end
if version <= semvertarget then
target_hit = true
end
end
local function reverter ()
for command, current in pairs(currents) do
Expand All @@ -203,15 +191,15 @@ function package:registerCommands ()
end
end)

self:registerCommand("recede-shims", function (options, content)
self:registerCommand("recede-classes", function (options, content)
if content then
SILE.settings:temporarily(function ()
local reverter = self:recede_shims(options.target)
local reverter = self:recede_classes(options.target)
SILE.process(content)
reverter()
end)
else
self:recede_shims(options.target)
self:recede_classes(options.target)
end
end)

Expand Down
2 changes: 1 addition & 1 deletion tests/amharic.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\font[family=Noto Sans Ethiopic,language=am]
የሰው፡ልጅ፡ሁሉ፡ሲወለድ፡ነጻና፡በክብርና፡በመብትም፡እኩልነት፡ያለው፡ነው።፡የተፈጥሮ፡ማስተዋልና፡ሕሊና፡ስላለው፡አንዱ፡ሌላውን፡በወንድማማችነት፡መንፈስ፡መመልከት፡ይገባዋል።

Expand Down
2 changes: 1 addition & 1 deletion tests/arabic-scripts.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\use[module=packages.bidi]
\font[family=LateefGR,size=16pt,language=en]
Expand Down
2 changes: 1 addition & 1 deletion tests/bibtex.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\use[module=packages.bibtex]
Expand Down
2 changes: 1 addition & 1 deletion tests/bidi.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\font[family=SBL Hebrew,language=he]
\font[size=25pt]
\set[parameter=document.baselineskip,value=29pt]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1044.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\neverindent
\font[family=Libertinus Serif]{Ta of}
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1101.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[class=jplain,layout=tate,papersize=a4]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios

Expand Down
2 changes: 1 addition & 1 deletion tests/bug-117.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
%nice script from SILE book
\begin{lua}
for i=1,10 do
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1259.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\use[module=packages.rules]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1280.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=15cm x 6cm]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\use[module=packages.pdf]
\font[filename=.fonts/NotoSerifCJK-Regular.ttc]
\nofolios
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1297-hyph-fr-ca.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=6in x 9in]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\language[main=fr]

Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1317.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[direction=RTL,papersize=a7]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\font[family=Amiri,size=30pt]
\nofolios
\neverindent
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1320.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\use[module=packages.rules]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1343-dotfill-stretch.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\use[module=packages.leaders]
\use[module=packages.lorem]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1359.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=6in x 9in]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\neverindent
\language[main=fr]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1362.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\language[main=en]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1430.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\use[module=packages.grid,spacing=50pt]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1495-inline-math-layout.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\neverindent
\use[module=packages.math]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1580.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[class=plain,papersize=a7]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\use[module=packages.masters]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-162.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
Both lines below should end in a period.

\font[language=cs]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1647.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a7]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\set[parameter=document.parskip, value=50pt]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1674.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\lua{SILE.processString("Foo \\em{bar} \\em{baz}", "sil")}
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1699.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[class=plain,papersize=a7]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
% Both "bar" entries should have parindent applied
\noindent
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-1708.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a7,class=book]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\neverindent
\nofolios
\set[parameter=document.letterspaceglue, value=5pt]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-192.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\font[family=Noto Naskh Arabic,language=urd,size=18pt]
\hbox\skip[height=95%fh]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-200.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\font[family=Gentium Plus,size=16pt,language=en]
\begin{raggedright}
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-226.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\hfill Filler content here: Par 1 (One)

\hfill Par 2 (Two)
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-241.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\font[family=Gentium Plus,size=9pt]
\center{TITILE\break{}Then vfill to logo\vfill{}<logo>\par\break}
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-243.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\use[module=packages.leaders]
\font[size=50pt]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-252.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a7,class=book]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\use[module=packages.frametricks]
\use[module=packages.lorem]
This is a test\footnote{What happens to frames?}.
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-252a.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a7,class=book]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\use[module=packages.lorem]
\use[module=packages.rebox]
\footnote:separator{\skip[height=5pt]}
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-254.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\raggedright{
\font[weight=600]{This} is a sample of bogus\break
extra space.
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-255.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\use[module=packages.frametricks]
\begin{lua}
SILE.registerCommand("donothing", function (options, content)
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-255b.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\use[module=packages.frametricks]
\begin{lua}
SILE.registerCommand("donothing", function(o,c)
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-262.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\use[module=packages.lorem]
\hbox
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-264.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a7,class=book]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
Footnote\skip[height=170pt plus 50pt]
marker.\footnote{Same page\hfill\break as marker?}
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-264b.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a5,class=book]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
% Note: The failure case for this involves an infinite loop when it
% erroneously matched penalty types that aren't actually page breaks
\use[module=packages.linespacing]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-266.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios

Word\glue[width=1ex]to the wise
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-269.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6,class=book]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
\nofolios
\font[family=Gentium Plus,size=10.1pt,language=tr]
\use[module=packages.footnotes]
Expand Down
2 changes: 1 addition & 1 deletion tests/bug-283.sil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\begin[papersize=a6]{document}
\use[module=packages.retrograde,target=v0.15.0]
\use[module=packages.retrograde,target=v0.14.17]
% I tried extensively to get this test to *fail* again prior to v0.14.15
% release but failed. Even reverting the "fixing" commit 9d6691f and a whole
% bunch of subsequent stuff I couldn't make it fail again. Apparently not only
Expand Down
Loading

0 comments on commit 6ad9b76

Please sign in to comment.