From fed881a7be6ae02c8238d55cf4a29b76791c9216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C5=A1o=20=C5=BDivanovi=C4=87?= Date: Sat, 26 Oct 2024 00:59:48 +0200 Subject: [PATCH] A new system for changing the version numbers in the documentation. So that `make versions` triggers recompilation of the docs. --- Makefile | 6 ++++-- Makefile.advice | 2 ++ Makefile.collargs | 2 ++ doc/memoize-code.tex | 28 ++++++++++++++++++++-------- doc/memoize-doc-common.sty | 23 +++++++---------------- doc/memoize-doc.tex | 13 +++++++++---- 6 files changed, 44 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index c5d3e4b..f06a811 100644 --- a/Makefile +++ b/Makefile @@ -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) $< @@ -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 '%\\ProvidesPackage|^%%D\s*(version|date)=' $(PACKAGES.edtx) | ${COLOR_VERSION} + @grep -E '\\ProvidesPackage|^%%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} diff --git a/Makefile.advice b/Makefile.advice index bdb9d25..542868c 100644 --- a/Makefile.advice +++ b/Makefile.advice @@ -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 diff --git a/Makefile.collargs b/Makefile.collargs index 796f3e4..ef18863 100644 --- a/Makefile.collargs +++ b/Makefile.collargs @@ -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 diff --git a/doc/memoize-code.tex b/doc/memoize-code.tex index 28aa812..3b9d406 100644 --- a/doc/memoize-code.tex +++ b/doc/memoize-code.tex @@ -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}, diff --git a/doc/memoize-doc-common.sty b/doc/memoize-doc-common.sty index b09b5c9..08b3b10 100644 --- a/doc/memoize-doc-common.sty +++ b/doc/memoize-doc-common.sty @@ -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 @@ -76,8 +68,7 @@ tikznode lower, adjusted title=\@title, ] - \packagever\\ - \@date + \@packageversion \tcblower \Large\@author \end{tcolorbox} diff --git a/doc/memoize-doc.tex b/doc/memoize-doc.tex index 5547d0b..8d7ac1b 100644 --- a/doc/memoize-doc.tex +++ b/doc/memoize-doc.tex @@ -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}, @@ -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