Skip to content

Commit

Permalink
A new system for changing the version numbers in the documentation.
Browse files Browse the repository at this point in the history
So that `make versions` triggers recompilation of the docs.
  • Loading branch information
sasozivanovic committed Oct 26, 2024
1 parent fa08b78 commit fed881a
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 30 deletions.
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ doc/memoize-code.pdf: $(codedoc-source) \
doc/memoize.pdf: $(manual-source) $(examples-src) $(PACKAGES.edtx)

%.pdf: %.tex
latexmk -cd -lualatex -shell-escape -bibtex- $(LATEXMK) $< && touch $@
latexmk -cd -lualatex -shell-escape -bibtex- $(LATEXMK) $<



Expand Down Expand Up @@ -129,12 +129,14 @@ version:
$(call EDIT-VERSION-MAN,doc/memoize-extract.1.md)
$(call EDIT-VERSION-MAN,doc/memoize-clean.1.md)
$(call EDIT-DATE-CHANGELOG,CHANGELOG.md)
$(call EDIT-VERSION-LATEX,doc/memoize-doc.tex,memoize)
$(call EDIT-VERSION-LATEX,doc/memoize-code.tex,memoize)
define COLOR_VERSION
grep -E --color '[0-9]{4}[/-][0-9]{1,2}[/-][0-9]{1,2}|v?[0-9]\.[0-9]\.[0-9]([-a-z]*)|(January|February|March|April|May|June|July|August|September|October|November|December) [0-9]+, [0-9]{4}'
endef

versions-show:
@grep -E '%<latex>\\ProvidesPackage|^%<context>%D\s*(version|date)=' $(PACKAGES.edtx) | ${COLOR_VERSION}
@grep -E '\\ProvidesPackage|^%<context>%D\s*(version|date)=' $(PACKAGES.edtx) $(pdf:%.pdf=%.tex) | ${COLOR_VERSION}
@grep __version__ *.py | ${COLOR_VERSION}
@grep VERSION *.pl | ${COLOR_VERSION}
@grep -E '^(footer|date):' doc/memoize-*.md | ${COLOR_VERSION}
Expand Down
2 changes: 2 additions & 0 deletions Makefile.advice
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ version:
$(call EDIT-VERSION-LATEX,advice.edtx,advice,$(YEAR)/$(MONTH)/$(DAY) v$(VERSION))
$(call EDIT-VERSION-CONTEXT,advice.edtx,$(YEAR)-$(MONTH)-$(DAY),$(VERSION))
$(call EDIT-DATE-CHANGELOG,doc/CHANGELOG.advice.md)
$(call EDIT-VERSION-LATEX,doc/memoize-doc.tex,advice)
$(call EDIT-VERSION-LATEX,doc/memoize-code.tex,advice)

include Makefile.package
include Makefile.runtimes
2 changes: 2 additions & 0 deletions Makefile.collargs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ version:
$(call EDIT-VERSION-LATEX,collargs.edtx,collargs,$(YEAR)/$(MONTH)/$(DAY) v$(VERSION))
$(call EDIT-VERSION-CONTEXT,collargs.edtx,$(YEAR)-$(MONTH)-$(DAY),$(VERSION))
$(call EDIT-DATE-CHANGELOG,doc/CHANGELOG.collargs.md)
$(call EDIT-VERSION-LATEX,doc/memoize-doc.tex,collargs)
$(call EDIT-VERSION-LATEX,doc/memoize-code.tex,collargs)

include Makefile.package
include Makefile.runtimes
28 changes: 20 additions & 8 deletions doc/memoize-code.tex
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,26 @@
\emailsymbol~\url(mailto:){saso.zivanovic@guest.arnes.si}\\
\homepagesymbol~\url(http://){spj.ff.uni-lj.si/zivanovic}\\
\faGithub~\url(https://){github.com/sasozivanovic}}

\datefrompackageversion{collargs}
\edef\allpackagever{CollArgs v\packagever}
\datefrompackageversion{advice}
\epreto\allpackagever{Advice v\packagever, }
\datefrompackageversion{memoize}
\epreto\allpackagever{Memoize v\packagever, }
\let\packagever\allpackagever
\packageversion{%
\ParseProvidesPackage
\ProvidesPackage{memoize}[2024/10/25 v1.4.0 Fast and flexible externalization]
\begin{tabular}{c}
Memoize v\packagever\\
\csuse{@date}
\end{tabular}
\ParseProvidesPackage
\ProvidesPackage{advice}[2024/03/15 v1.1.1 Extend commands and environments]
\begin{tabular}{c}
Advice v\packagever\\
\csuse{@date}
\end{tabular}
\ParseProvidesPackage
\ProvidesPackage{collargs}[2024/03/15 v1.2.0 Collect arguments of any command]
\begin{tabular}{c}
Collargs v\packagever\\
\csuse{@date}
\end{tabular}
}

\hypersetup{
% pdftitle={Memoize},
Expand Down
23 changes: 7 additions & 16 deletions doc/memoize-doc-common.sty
Original file line number Diff line number Diff line change
Expand Up @@ -48,22 +48,14 @@
\usepackage{pdftexcmds}
\let\pdfsystem\pdf@system

% version and date
\def\datefrompackageversion#1{%
\setbox0=\hbox{%
\def\ProvidesPackage##1[##2]{%
\gdef\@packagever{##2}%
\endinput
}%
\input{#1.sty}%
}%
\expandafter\parsepackagever@\@packagever\parsepackagever@
}
\def\parsepackagever@#1/#2/#3 v#4 #5\parsepackagever@{%
\year=#1\relax\month=#2\relax\day=#3\relax
\def\packagever{#4}\def\packagedesc{#5}%
\def\ParseProvidesPackage\ProvidesPackage#1[#2/#3/#4 v#5 #6]{%
\def\packagename{#1}%
\year=#2\relax\month=#3\relax\day=#4\relax
\def\packagever{#5}\def\packagedesc{#6}%
\ignorespaces
}

\newcommand\packageversion{\def\@packageversion}
\renewcommand\maketitle{%
\begingroup
\mmzset{disable, auto={tcolorbox}{clear options}}% \mmznext does not work here -- todo: maybe it does now
Expand All @@ -76,8 +68,7 @@
tikznode lower,
adjusted title=\@title,
]
\packagever\\
\@date
\@packageversion
\tcblower
\Large\@author
\end{tcolorbox}
Expand Down
13 changes: 9 additions & 4 deletions doc/memoize-doc.tex
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@
\def\exampledir{examples/}

\title{\pkg[white]{Memoize}}
\ParseProvidesPackage
\ProvidesPackage{memoize}[2024/10/25 v1.4.0 Fast and flexible externalization]
\packageversion{v\packagever\\\csuse{@date}}
\author{Sašo Živanović\\[2mm]
\emailsymbol~\url(mailto:){saso.zivanovic@guest.arnes.si}\\
\homepagesymbol~\url(http://){spj.ff.uni-lj.si/zivanovic}\\
\faGithub~\url(https://){github.com/sasozivanovic}}
\datefrompackageversion{memoize}
\preto\packagever{v}

\hypersetup{
pdftitle={Memoize},
Expand Down Expand Up @@ -242,8 +243,12 @@

\begin{tcolorbox}[colback=emphcolor, fontupper=\footnotesize]
This manual also documents packages Advice
({\datefrompackageversion{advice}v\packagever}) and CollArgs
({\datefrompackageversion{collargs}v\packagever}). These are auxiliary
({\ParseProvidesPackage
\ProvidesPackage{advice}[2024/03/15 v1.1.1 Extend commands and environments]
v\packagever}) and CollArgs
({\ParseProvidesPackage
\ProvidesPackage{collargs}[2024/03/15 v1.2.0 Collect arguments of any command]
v\packagever}). These are auxiliary
packages which were developed alongside Memoize, but are distributed as
independent packages as they might be useful outside the context of Memoize,
as well. See sections~\ref{sec:advice} and \ref{sec:ref:advice} for Advice, and
Expand Down

0 comments on commit fed881a

Please sign in to comment.