Merge branch 'just'

This commit is contained in:
Simon Michael 2023-12-16 10:48:22 -10:00
commit 9a38fd7efb
6 changed files with 1368 additions and 191 deletions

182
.mailmap
View File

@ -1,14 +1,170 @@
Clint Adams <clint@softwarefreedom.org> <clint@debian.org>
Marko Kocić <marko.kocic@gmail.com>
Marko Kocić <marko.kocic@gmail.com> <marko@euptera.com>
Michael Snoyman <michael@snoyman.com>
Nick Ingolia <nick@ingolia.org>
Mykola Orliuk <virkony@gmail.com>
Oliver Braun <ob@obraun.net>
Ryan Desfosses <ryan@desfo.org> <rdesfo@users.noreply.github.com>
Sergei Trofimovich <siarheit@google.com> <slyfox@community.haskell.org>
Thomas R. Koll <tomk32@gmail.com> <tomk32@tomk32.de>
Tim Docker <tim@dockerz.net>
Trygve Laugstøl <trygvis@inamo.no>
Xinruo Sun <xiaoruoruo@gmail.com>
# sort -f
Aerex <nanaus13@yahoo.com>
afarrow <afarrow@users.noreply.github.com>
agander <agander@gmail.com>
Aiken Cairncross <acairncross@gmail.com>
Alan Young <harleypig@harleypig.com>
Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
Aleksandar Dimitrov <git@aleks.bg>
Alex Chen <awchen@ucalgary.ca>
Alex Hirzel <alex@hirzel.us>
Alvaro Fernando García <alvarofernandogarcia@gmail.com>
Amarandus <carl.schneider+github@ruhr-uni-bochum.de>
Amitai Burstein <amitai@gizra.com>
Andreas Pauley <andreas@pauley.org.za>
Andrew Jones <ascjones@gmail.com>
Andrew Lelechenko <andrew.lelechenko@gmail.com>
Andriy Mykhaylyk <erp.lsf@gmail.com>
aragaer <aragaer@gmail.com>
Arjen Langebaerd <alangebaerd@gmail.com>
Arnout Engelen <arnout@bzzt.net>
Arsen Arsenović <arsen@aarsen.me>
awjchen <awjchen@users.noreply.github.com>
Ben Boeckel <mathstuf@gmail.com>
Ben Creasy <ben@bencreasy.com>
bobobo1618 <bobobo1618@users.noreply.github.com>
Boyd Kelly <bkelly@coastsystems.net>
Brian Scott <briananthonyscott@gmail.com>
Brian Wignall <brianwignall@gmail.com>
Bryan Richter <bryan.richter@gmail.com>
Caleb Maclennan <caleb@alerque.com>
Carel Fellinger <cfellinger@users.noreply.github.com>
Carl Richard Theodor Schneider <carl.schneider@ruhr-uni-bochum.de>
Carlos Lopez-Camey <c.lopez@kmels.net>
Charlie Ambrose <C.Ambrose@iinet.net.au>
Charlotte Van Petegem <charlotte.vanpetegem@ugent.be>
charukiewicz <charukiewicz@protonmail.com>
Chris Lemaire <c.lemaire@student.tudelft.nl>
Christian G. Warden <cwarden@xerus.org>
Christoph Nicolai <mail@christoph-nicolai.de>
Clint Adams <clint@debian.org> <clint@softwarefreedom.org>
Colin Woodbury <colin@fosskers.ca>
crocket <748856+crocket@users.noreply.github.com>
Damien Cassou <damien@cassou.me>
Daniel Gröber <dxld@darkboxed.org>
David D Lowe <daviddlowe.flimm@gmail.com>
David Reaver <johndreaver@gmail.com>
David Zhang <crispgm@gmail.com>
Dmitry Astapov <dastapov@gmail.com>
Dominik Süß <dominik.suess@outlook.at>
Doug Goldstein <cardoe@cardoe.com>
Eli Flanagan <eli@typedspace.com>
Elijah Caine <elijahcainemv@gmail.com>
Eric Kow <eric.kow@gmail.com>
Eric Mertens <emertens@galois.com> <emertens@gmail.com>
Everett Hildenbrandt <hildenb2@illinois.edu>
Evilham <cvs@evilham.com>
Felix Van der Jeugt <felix.vanderjeugt@posteo.net>
Felix Yan <felixonmars@archlinux.org>
flip111 <flip101@gmail.com>
Fun Ilrys (Nissar Chababy) <contact@funilrys.com>
Gabriel Ebner <gebner@gebner.org>
Gaith Hallak <gaithhallak@gmail.com>
Garret McGraw <jetaimed@gmail.com>
Gergely Risko <errge@nilcons.com>
gwern <gwern@gwern.net> <gwern0@gmail.com>
Hans-Peter Deifel <hpd@hpdeifel.de>
Henning Thielemann <git@henning-thielemann.de>
Ilja Kocken <i.j.kocken@uu.nl>
Imuli <i@imu.li>
J. B. Rainsberger <me@jbrains.ca>
Jacek Generowicz <jacg@my-post-office.net>
Jacob Weisz <inbox@jacobweisz.com>
Jakob Schöttl <jschoett@gmail.com>
Jakub Zárybnický <kubaz@inuits.eu> <jakub.zarybnicky@inuits.eu>
Jan Zerebecki <jan@zerebecki.de>
Jay Neubrand <jneubrand@users.noreply.github.com>
Jeff Richards <jeff@jrichards.ca>
Jesse Rosenthal <jrosenthal@jhu.edu>
Joachim Breitner <mail@joachim-breitner.de>
Joaquin "Florius" Azcarate <j@florius.com.ar>
Joe Horsnell <github@joehorsnell.com>
Johann Klähn <kljohann@gmail.com>
Johannes Gerer <oss@johannesgerer.com>
John Wiegley <johnw@newartisans.com>
Jonathan Dowland <jon@dow.land>
Joseph Weston <joseph@weston.cloud>
Joshua Chia <joshchia@gmail.com>
Joshua Kehn <josh@kehn.us>
Judah Jacobson <judah.jacobson@gmail.com>
Julien Moutinho <julm+hledger@autogeree.net>
jungle-boogie <sean@jungleboogie.me>
Justin Le <mstksg@gmail.com> <justin@jle.im>
Kyle Marek-Spartz <kyle.marekspartz@govdelivery.com>
Lawrence Wu <lawrencejwu@gmail.com>
legrostdg <gueux+github@gueux.org>
Luca Molteni <volothamp@gmail.com>
Léo Gaspard <leo@gaspard.io>
M Parker <mparker17@users.noreply.github.com>
Malte Brandy <malte.brandy@maralorn.de>
Mark Hansen <mark@markhansen.co.nz>
Marko Kocić <marko@euptera.com>
Marko Kocić <marko@euptera.com> marko.kocic <marko.kocic@gmail.com>
Martin Michlmayr <tbm@cyrius.com>
Mateus Furquim <mfurquim@users.noreply.github.com>
Matthias Kauer <mk.software@zuez.org>
Max Bolingbroke <batterseapower@hotmail.com>
Max Thomas <max@maxthomas.io>
Michael Grünewald <mail@michaelgruenewald.eu>
Michael Kainer <kaini@pushrax.com>
Michael Sanders <michael.sanders@fastmail.com>
Michael Snoyman <michael@snoyman.com>
Michael Walker <mike@barrucadu.co.uk>
Mick Dekkers <mickdekkersnl@gmail.com>
Mitchell Rosen <mitchellwrosen@gmail.com>
Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
Mykola Orliuk <virkony@gmail.com>
Nadrieril <nadrieril@gmail.com>
Nicholas Niro <blowfist@xroutine.net>
Nick Ingolia <nick@ingolia.org>
Nicolas Wavrant <nicolas.wavrant@gmail.com>
Nikhil Jha <nikhiljha@users.noreply.github.com>
Nissar Chababy <contact@funilrys.com>
Nolan Darilek <nolan@thewordnerd.info>
ob <ob@obraun.net>
Omari Norman <omari@smileystation.com>
Patrick Fiaux <patrick@fiaux.dev>
Patrik Keller <git@pkel.dev>
Pavan Rikhi <pavan.rikhi@gmail.com>
Pavlo Kerestey <pavlo@kerestey.net>
Peter Sagerson <psagers@ignorare.net>
Peter Simons <simons@cryp.to>
Philipp Klocke <Phil_K97@gmx.de>
Pia Mancini <piamancini@gmail.com>
Pranesh Prakash <the.solipsist@gmail.com>
Rick Lupton <r.lupton@gmail.com>
Robert Nielsen <32415800+RobertNielsen1@users.noreply.github.com>
Roman Cheplyaka <roma@ro-che.info>
Rui Chen <chenrui333@gmail.com>
Ryan Desfosses <rdesfo@users.noreply.github.com>
Ryan Desfosses <ryan@desfo.org>
S. Zeid <s@zeid.me>
Sam Doshi <sam@metal-fish.co.uk>
Sam Jeeves <sam.jeeves@live.com>
Sam Jeeves <sam.jeeves@live.com>
Samuel May <ag.eitilt@gmail.com>
Sergei Trofimovich <slyfox@community.haskell.org> <siarheit@google.com>
Sergey Astanin <s.astanin@gmail.com>
ShrykeWindgrace <shryke.windgrace@gmail.com>
Shubham Lagwankar <shubhu105@gmail.com>
Simon Hengel <sol@typeful.net>
Simon Michael <simon@joyful.com> <azure-pipelines[bot]@users.noreply.github.com>
Simon Michael <simon@joyful.com> <webmaster@joyful.com>
SpicyCat <yanglingit@outlook.com>
Stefano Rodighiero <stefano.rodighiero@gmail.com>
Stephen Morgan <morgan.stephen99@gmail.com> <Xitian9@users.noreply.github.com>
Steven R. Baker <steven@stevenrbaker.com>
TANIGUCHI Kohei <cohey@taniguchikohei-MacBook-Air.local>
Thomas R. Koll <tomk32@tomk32.de> <tomk32@gmail.com>
Tim Docker <tim@dockerz.net>
Timofey ZAKREVSKIY <timofey.zakrevskiy@3ds.com>
toonn <toonn@toonn.io>
Trevor Riles <trevor@riles.io>
Trygve Laugstøl <trygvis@inamo.no>
Vladimir Sorokin <vsorokin87@gmail.com>
Vladimir Zhelezov <zhelezov@gmail.com>
Wad <wad209@users.noreply.github.com>
Xinruo Sun <xiaoruoruo@gmail.com>
Yann Büchau <nobodyinperson@posteo.de>
Yehoshua Pesach Wallach <yehoshuapw@gmail.com>
zieone <42358507+zieone@users.noreply.github.com>

1185
Justfile Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,14 @@
2000-01-01 transaction 1
1 1 A
1:2 -1 A
1 1 A @ 0.71 B
1:2 -0.71 B
2000-01-02 transaction 2
1:2:3 1 A
1:2:3:4 -1 A
1:2:3 2 B @@ 2 C
1:2:3:4 -2 C
2000-01-03 transaction 3
1:2:3:4:5 1 A
1 -1 A
1:2:3:4:5 3 C
1 -3 C
P 2000-01-01 A 0.70 B
P 2000-01-02 A 0.71 B

View File

@ -1,14 +1,14 @@
2000-01-01 transaction 1
㐀 1 A
㐀:㐁 -1 A
㐀 1 A @ 0.71 B
㐀:㐁 -0.71 B
2000-01-02 transaction 2
㐀:㐁:㐂 1 A
㐀:㐁:㐂:㐃 -1 A
㐀:㐁:㐂 2 B @@ 2 C
㐀:㐁:㐂:㐃 -2 C
2000-01-03 transaction 3
㐀:㐁:㐂:㐃:㐄 1 A
㐀 -1 A
㐀:㐁:㐂:㐃:㐄 3 C
㐀 -3 C
P 2000-01-01 A 0.70 B
P 2000-01-02 A 0.71 B

165
justfile
View File

@ -1,165 +0,0 @@
#!/usr/bin/env just
# * Light project scripts, without file dependendencies, using https://github.com/casey/just.
# https://docs.rs/regex/1.5.4/regex/#syntax Regexps
# https://just.systems/man/en/chapter_31.html Functions
# See also Makefile, Shake.hs
@help:
just -lu
@_check:
just --fmt --unstable --check
@_fmt:
just -q _check || just --fmt --unstable
# ** dev
# push to github CI branch, wait for CI tests to pass, then push to master
@push *INTERVALSECS:
tools/push {{ INTERVALSECS }}
# ** releasing
# Symlink/copy important files temporarily in .relfiles/.
relfiles:
#!/usr/bin/env bash
echo "linking/copying important release files in .relfiles/ for convenient access..."
mkdir -p .relfiles
cd .relfiles
for f in \
../stack.yaml \
../Shake.hs \
../hledger-install/hledger-install.sh \
../CHANGES.md \
../hledger/CHANGES.md \
../hledger-ui/CHANGES.md \
../hledger-web/CHANGES.md \
../hledger-lib/CHANGES.md \
../doc/github-release.md \
../doc/ANNOUNCE \
../doc/ANNOUNCE.masto \
../site/src/release-notes.md \
../site/src/install.md \
; do ln -sf $f .; done
cp ../doc/RELEASING.md ./RELEASING2.md # temp copy which can be edited without disruption
# Prepare to release today, creating/switching to release branch, updating versions, manuals, changelogs etc.
relprep VER:
#!/usr/bin/env bash
[[ -z {{ VER }} ]] && usage
BRANCH=$(just _versionReleaseBranch {{ VER }})
COMMIT="-c"
echo "Switching to $BRANCH, auto-creating it if needed..."
_gitSwitchAutoCreate "$BRANCH"
echo "Bumping all version strings to {{ VER }} ..."
./Shake setversion {{ VER }} $COMMIT
echo "Updating all command help texts for embedding..."
./Shake cmdhelp $COMMIT
echo "Updating all dates in man pages..."
./Shake mandates
echo "Generating all the manuals in all formats...."
./Shake manuals $COMMIT
echo "Updating CHANGES.md files with latest commits..."
./Shake changelogs $COMMIT
# Push the current branch to github to generate release binaries.
@relbin:
# assumes the github remote is named "github"
git push -f github HEAD:binaries
# *** hledger version numbers
# See doc/RELEASING.md > Glossary.
# First 0-2 parts of a dotted version number.
@_versionMajorPart VER:
echo {{ replace_regex(VER, '(\d+(\.\d+)?).*', '$1') }}
# Third part of a dotted version number, if any.
@_versionMinorPart VER:
echo {{ if VER =~ '\d+(\.\d+){2,}' { replace_regex(VER, '\d+\.\d+\.(\d+).*', '$1') } else { '' } }}
# Fourth part of a dotted version number, if any.
@_versionFourthPart VER:
echo {{ if VER =~ '\d+(\.\d+){3,}' { replace_regex(VER, '\d+(\.\d+){2}\.(\d+).*', '$2') } else { '' } }}
# Does this dotted version number have a .99 third part and no fourth part ?
@_versionIsDev VER:
echo {{ if VER =~ '(\d+\.){2}99$' { 'y' } else { '' } }}
# Does this dotted version number have a .99 third part and a fourth part ?
@_versionIsPreview VER:
echo {{ if VER =~ '(\d+\.){2}99\.\d+' { 'y' } else { '' } }}
# Increment a major version number to the next.
# @majorVersionIncrement MAJORVER:
# python3 -c "print({{MAJORVER}} + 0.01)"
# Appropriate release branch name for the given version number.
_versionReleaseBranch VER:
#!/usr/bin/env bash
MAJOR=$(just _versionMajorPart {{ VER }})
if [[ $(just _versionIsDev {{ VER }}) == y ]] then
echo "{{ VER }} is not a releasable version" >&2
exit 1
elif [[ $(just _versionIsPreview {{ VER }}) == y ]] then
# echo "$(just majorVersionIncrement "$MAJOR")-branch"
echo "{{ VER }} is not a releasable version" >&2
exit 1
else
echo "$MAJOR-branch"
fi
# *** git
# Does the named branch exist in this git repo ?
@_gitBranchExists BRANCH:
git branch -l {{ BRANCH }} | grep -q {{ BRANCH }}
# Switch to the named git branch, creating it if it doesn't exist.
_gitSwitchAutoCreate BRANCH:
#!/usr/bin/env bash
if just _gitBranchExists {{ BRANCH }}; then
git switch {{ BRANCH }}
else
git switch -c {{ BRANCH }}
fi
# ** misc
# Show last week's activity, for TWIH
@lastweek:
echo "hledger time last 7 days including today (this should be run on a Friday):"
tt bal hledger -DTS -b '6 days ago' --drop 2
echo
echo "By activity type, percentage:"
tt bal hledger -DTS -b '6 days ago' --pivot t -% -c 1% | tail +1
echo
echo "Time log details:"
tt print hledger -b '6 days ago' | grep -E '^[^ ]|hledger'
echo
echo "main repo:"
git log --format='%C(yellow)%cd %ad %Cred%h%Creset %s %Cgreen(%an)%Creset%C(bold blue)%d%Creset' --date=short --since="6 days ago" --reverse
echo
echo "site repo:"
git -C site log --format='%C(yellow)%cd %ad %Cred%h%Creset %s %Cgreen(%an)%Creset%C(bold blue)%d%Creset' --date=short --since="6 days ago" --reverse
echo
echo "finance repo:"
git -C finance log --format='%C(yellow)%cd %ad %Cred%h%Creset %s %Cgreen(%an)%Creset%C(bold blue)%d%Creset' --date=short --since="6 days ago" --reverse
echo
# Show a bunch of debug messages.
@_dbgmsgs:
rg --sort path -t hs 'dbg.*?(".*")' -r '$1' -o
# # Extract Hledger.hs examples to jargon.j.
# @_jargon:
# rg '^ *> (.*)' -or '$1' hledger-lib/Hledger.hs > jargon.j
# echo "wrote jargon.j"
# Extract ledger/hledger/beancount commit stats to project-commits.j.
@_projectcommits:
# https://hledger.org/reporting-version-control-stats.html
printf "account ledger\naccount hledger\naccount beancount\n\n" >project-commits.j
for p in ledger hledger beancount; do git -C ../$p log --format="%cd (%h) %s%n ($p) 1%n" --date=short --reverse >> project-commits.j; done
echo "wrote project-commits.j"

View File

@ -1,4 +1,5 @@
#!/usr/bin/env runhaskell
#!/usr/bin/env stack
-- stack runghc
{-
generatejournal.hs NUMTXNS NUMACCTS ACCTDEPTH [--chinese|--mixed]