From 5b7d8346bd9d0d2efdb9d26b1b88f3009f03ca5b Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 9 Jan 2026 13:24:16 -1000 Subject: [PATCH] ;examples: debconf: hledger readability --- examples/debconf/Makefile | 27 +++++++++++++- examples/debconf/README.md | 7 +--- examples/debconf/patches/dc17.patch | 0 examples/debconf/patches/dc18.patch | 9 +++++ examples/debconf/patches/dc19.patch | 0 examples/debconf/patches/dc20.patch | 25 +++++++++++++ examples/debconf/patches/dc21.patch | 25 +++++++++++++ examples/debconf/patches/dc22.patch | 48 ++++++++++++++++++++++++ examples/debconf/patches/dc23.patch | 57 +++++++++++++++++++++++++++++ examples/debconf/patches/dc24.patch | 9 +++++ examples/debconf/patches/dc25.patch | 19 ++++++++++ examples/debconf/patches/dc26.patch | 0 12 files changed, 220 insertions(+), 6 deletions(-) create mode 100644 examples/debconf/patches/dc17.patch create mode 100644 examples/debconf/patches/dc18.patch create mode 100644 examples/debconf/patches/dc19.patch create mode 100644 examples/debconf/patches/dc20.patch create mode 100644 examples/debconf/patches/dc21.patch create mode 100644 examples/debconf/patches/dc22.patch create mode 100644 examples/debconf/patches/dc23.patch create mode 100644 examples/debconf/patches/dc24.patch create mode 100644 examples/debconf/patches/dc25.patch create mode 100644 examples/debconf/patches/dc26.patch diff --git a/examples/debconf/Makefile b/examples/debconf/Makefile index a7dfc0db4..add26cfd3 100644 --- a/examples/debconf/Makefile +++ b/examples/debconf/Makefile @@ -15,11 +15,36 @@ all: \ dc18 \ dc17 \ +# make dc-YY - clone the budget directory for this year and make it hledger-readable dc%: git clone --filter=blob:none --sparse http://salsa.debian.org/debconf-team/public/data/$@ git -C $@ sparse-checkout set --no-cone budget '!budget/invoices' + git -C $$d apply ../patches/$$d.patch -# make check-ledger, check-hledger - check readability +# make check-ledger, check-hledger - check readability of all years check-%: @for d in dc*; do printf "$$d: "; $* -f $$d/budget/journal.ledger stats >/dev/null && echo ok; done + +# maintenance + +# make rg-PAT - ripgrep for PAT in ledger,inc,db files in all years +rg-%: + rg -g '*.{ledger,inc,db}' '$*' + +# apply hledger readability fixes to all years +fixups: + # ensure at least two whitespace chars before amounts: + sed -i -E 's/(\w)\t(\w)/ \t/' dc*/budget/*.ledger + # ensure a decimal mark in commodity declarations: + sed -i -E 's/^( +format +\w+ +[0-9]+(,[0-9]+)+)$$/\1.00/' dc*/budget/commodities.inc + # convert amount expressions to simple amounts (use ledgereval or ledger eval) + +# show uncommitted changes in each year +diff: + for d in dc*; do echo $$d:; git -C $$d diff; done + +# save patch files for each year +save-patches: + for d in dc*; do GIT_PAGER= git -C $$d diff >patches/$$d.patch; done + diff --git a/examples/debconf/README.md b/examples/debconf/README.md index 02ab67752..6f81aea2f 100644 --- a/examples/debconf/README.md +++ b/examples/debconf/README.md @@ -6,9 +6,6 @@ Eg: Each year has its own repo, and the repos are big. To clone just the accounting data for a few recent years: `make` To clone all years, starting 2017: `make all` - -Some years (eg 24 and 25) can be read by hledger as-is; -others may need some conversion, eg of [amount expressions](https://hledger.org/ledger.html#amount-expressions). -To check hledger readability for the years you have downloaded: `make check-hledger` +Some patches for hledger readability will be applied. (These might need updating from time to time.) +To check h/ledger readability: `make check-hledger` To check ledger readability: `make check-ledger` - diff --git a/examples/debconf/patches/dc17.patch b/examples/debconf/patches/dc17.patch new file mode 100644 index 000000000..e69de29bb diff --git a/examples/debconf/patches/dc18.patch b/examples/debconf/patches/dc18.patch new file mode 100644 index 000000000..42c5a77b9 --- /dev/null +++ b/examples/debconf/patches/dc18.patch @@ -0,0 +1,9 @@ +diff --git a/budget/commodities.inc b/budget/commodities.inc +index 8a644c7..ab13ae7 100644 +--- a/budget/commodities.inc ++++ b/budget/commodities.inc +@@ -23,3 +23,3 @@ commodity TWD + note Taiwan New Dollar +- format TWD 1,000 ++ format TWD 1,000.00 + default diff --git a/examples/debconf/patches/dc19.patch b/examples/debconf/patches/dc19.patch new file mode 100644 index 000000000..e69de29bb diff --git a/examples/debconf/patches/dc20.patch b/examples/debconf/patches/dc20.patch new file mode 100644 index 000000000..d94d51130 --- /dev/null +++ b/examples/debconf/patches/dc20.patch @@ -0,0 +1,25 @@ +diff --git a/budget/expenses.ledger b/budget/expenses.ledger +index 717cb42..5808031 100644 +--- a/budget/expenses.ledger ++++ b/budget/expenses.ledger +@@ -1,11 +1,11 @@ + 2019-11-28 Budget +- expenses:dormitories 21560 USD +- expenses:meals:regular 26740 USD +- expenses:meals:conference dinner 8100 USD +- expenses:daycare 2781.54 USD +- expenses:security guards 2892.24 USD +- expenses:daytrip:buses 1296 USD +- expenses:swags:all 8100 USD +- expenses:video:equipment 2700 USD +- expenses:travel sponsorship 27000 USD ++ expenses:dormitorie 1560 USD ++ expenses:meals:regula 6740 USD ++ expenses:meals:conference dinne 100 USD ++ expenses:daycar 781.54 USD ++ expenses:security guard 892.24 USD ++ expenses:daytrip:buse 296 USD ++ expenses:swags:al 100 USD ++ expenses:video:equipmen 700 USD ++ expenses:travel sponsorshi 7000 USD + assets:SPI diff --git a/examples/debconf/patches/dc21.patch b/examples/debconf/patches/dc21.patch new file mode 100644 index 000000000..d94d51130 --- /dev/null +++ b/examples/debconf/patches/dc21.patch @@ -0,0 +1,25 @@ +diff --git a/budget/expenses.ledger b/budget/expenses.ledger +index 717cb42..5808031 100644 +--- a/budget/expenses.ledger ++++ b/budget/expenses.ledger +@@ -1,11 +1,11 @@ + 2019-11-28 Budget +- expenses:dormitories 21560 USD +- expenses:meals:regular 26740 USD +- expenses:meals:conference dinner 8100 USD +- expenses:daycare 2781.54 USD +- expenses:security guards 2892.24 USD +- expenses:daytrip:buses 1296 USD +- expenses:swags:all 8100 USD +- expenses:video:equipment 2700 USD +- expenses:travel sponsorship 27000 USD ++ expenses:dormitorie 1560 USD ++ expenses:meals:regula 6740 USD ++ expenses:meals:conference dinne 100 USD ++ expenses:daycar 781.54 USD ++ expenses:security guard 892.24 USD ++ expenses:daytrip:buse 296 USD ++ expenses:swags:al 100 USD ++ expenses:video:equipmen 700 USD ++ expenses:travel sponsorshi 7000 USD + assets:SPI diff --git a/examples/debconf/patches/dc22.patch b/examples/debconf/patches/dc22.patch new file mode 100644 index 000000000..6a91a4015 --- /dev/null +++ b/examples/debconf/patches/dc22.patch @@ -0,0 +1,48 @@ +diff --git a/budget/expenses.ledger b/budget/expenses.ledger +index dc887c6..90cb494 100644 +--- a/budget/expenses.ledger ++++ b/budget/expenses.ledger +@@ -243,3 +243,3 @@ + expenses:food:refreshments +- expenses:venue:hygiene (13.50 EUR + 51 EUR + 15.30 EUR) ++ expenses:venue:hygiene 79.80 EUR + assets:FLOSSK -177.78 EUR +@@ -249,3 +249,3 @@ + ; FIXME Needs better translation / breakdown +- expenses:venue:hygiene (0.97 EUR + 2.73 EUR + 2.05 EUR + 6.14 EUR) ++ expenses:venue:hygiene 11.89 EUR + expenses:incidentals +@@ -536,3 +536,3 @@ + ; invoices/daytrip/20220721-busses.pdf +- expenses:party:conference dinner:bus (1.18 * 200.00 EUR) ++ expenses:party:conference dinner:bus 236.00 EUR + expenses:day trip:bus +@@ -562,7 +562,7 @@ + ; pad.dc22.debconf.org +- expenses:video:computers (0.2568 EUR + 0.0008 EUR + 2.28 EUR) ++ expenses:video:computers 2.5376 EUR + ; backend.live.debconf.org +- expenses:video:computers (4 EUR + 0.50 EUR + 6.4 EUR) ++ expenses:video:computers 10.90 EUR + ; onsite.live.debconf.org +- expenses:video:computers (1.99 EUR + 0.5 EUR) ++ expenses:video:computers 2.49 EUR + assets:debian-ch +@@ -650,6 +650,6 @@ + ; DebConf 227 single, 500 double +- expenses:accommodation:debcamp (127/(127+500) * 5,626.54 EUR) +- expenses:accommodation:debconf (500/(127+500) * 5,626.54 EUR) +- expenses:accommodation:debcamp (124/(124+227) * 4,373.46 EUR) +- expenses:accommodation:debconf (227/(124+227) * 4,373.46 EUR) ++ expenses:accommodation:debcamp 1,139.67 EUR ++ expenses:accommodation:debconf 4,486.87 EUR ++ expenses:accommodation:debcamp 1,545.04 EUR ++ expenses:accommodation:debconf 2,828.42 EUR + assets:FLOSSK -10,000.00 EUR +@@ -658,4 +658,4 @@ + ; invoices/venue/20220729-accommodation-services-itp.pdf +- expenses:accommodation:debcamp (127/(127+500) * 3,895.94 EUR) +- expenses:accommodation:debconf (500/(127+500) * 3,895.94 EUR) ++ expenses:accommodation:debcamp 789.13 EUR ++ expenses:accommodation:debconf 3,106.81 EUR + expenses:accommodation:debconf 421.26 EUR diff --git a/examples/debconf/patches/dc23.patch b/examples/debconf/patches/dc23.patch new file mode 100644 index 000000000..6bee4bf64 --- /dev/null +++ b/examples/debconf/patches/dc23.patch @@ -0,0 +1,57 @@ +diff --git a/budget/expenses.ledger b/budget/expenses.ledger +index 955edfc..9e2a3f7 100644 +--- a/budget/expenses.ledger ++++ b/budget/expenses.ledger +@@ -92,6 +92,6 @@ + ; TREASURER #6553 +- expenses:venue:debcamp:food_accomodation (1,274,000.00 INR * 0.3) +- expenses:venue:debconf:food_accomodation (7,221,760.00 INR * 0.3) +- expenses:venue:debcamp:halls (548,700.00 INR * 0.3) +- expenses:venue:debconf:halls (1,274,400.00 INR * 0.3) ++ expenses:venue:debcamp:food_accomodation 382,200.00 INR ++ expenses:venue:debconf:food_accomodation 2,166,528.00 INR ++ expenses:venue:debcamp:halls 164,610.00 INR ++ expenses:venue:debconf:halls 382,320.00 INR + ; unexpected bank fee +@@ -132,4 +132,4 @@ + ; TREASURER#6674 +- expenses:travel:bursary:diversity ( 5390.87 USD / 2) +- expenses:travel:bursary:general ( 5390.87 USD / 2) ++ expenses:travel:bursary:diversity 2695.435 USD ++ expenses:travel:bursary:general 2695.435 USD + assets:SPI - 5390.87 USD +@@ -153,3 +153,3 @@ + ; invoices/swag/20230810-teelabs-shirt-estimate.pdf +- expenses:swag:merchandise (284495.00 INR / 2) ++ expenses:swag:merchandise 142247.50 INR + assets:debian-ch +@@ -191,6 +191,6 @@ + ; TREASURER #6553 +- expenses:venue:debcamp:food_accomodation (1,274,000.00 INR * 0.3) +- expenses:venue:debconf:food_accomodation (7,221,760.00 INR * 0.3) +- expenses:venue:debcamp:halls (548,700.00 INR * 0.3) +- expenses:venue:debconf:halls (1,274,400.00 INR * 0.3) ++ expenses:venue:debcamp:food_accomodation 382,200.00 INR ++ expenses:venue:debconf:food_accomodation 2,166,528.00 INR ++ expenses:venue:debcamp:halls 164,610.00 INR ++ expenses:venue:debconf:halls 382,320.00 INR + ; Subtotal 3,095,658.00 INR +@@ -296,4 +296,4 @@ + expenses:venue:debconf:food_accomodation 1,257,372.00 INR +- expenses:venue:debcamp:halls (548,700.00 INR * 0.3) +- expenses:venue:debconf:halls (1,274,400.00 INR * 0.3) ++ expenses:venue:debcamp:halls 164,610.00 INR ++ expenses:venue:debconf:halls 382,320.00 INR + ; Subtotal 2,026,117.00 INR +@@ -665,4 +665,4 @@ + expenses:venue:debconf:food_accomodation 359,357.00 INR +- expenses:venue:debcamp:halls (548,700.00 INR * 0.10) +- expenses:venue:debconf:halls (1,274,400.00 INR * 0.10) ++ expenses:venue:debcamp:halls 54,870.00 INR ++ expenses:venue:debconf:halls 127,440.00 INR + ; Subtotal 605,059.00 INR +@@ -716,3 +716,3 @@ + ; TREASURER #7020 +- expenses:venue:debconf:halls (2 * 28,320.00 INR) ++ expenses:venue:debconf:halls 56,640.00 INR + assets:SPI -706.62 USD diff --git a/examples/debconf/patches/dc24.patch b/examples/debconf/patches/dc24.patch new file mode 100644 index 000000000..3214ff34b --- /dev/null +++ b/examples/debconf/patches/dc24.patch @@ -0,0 +1,9 @@ +diff --git a/budget/commodities.inc b/budget/commodities.inc +index 932f659..3be38ba 100644 +--- a/budget/commodities.inc ++++ b/budget/commodities.inc +@@ -17,3 +17,3 @@ commodity KRW + note Korean Won +- format KRW 1,000 ++ format KRW 1,000.00 + nomarket diff --git a/examples/debconf/patches/dc25.patch b/examples/debconf/patches/dc25.patch new file mode 100644 index 000000000..b229dbe8f --- /dev/null +++ b/examples/debconf/patches/dc25.patch @@ -0,0 +1,19 @@ +diff --git a/budget/budget.ledger b/budget/budget.ledger +index c02a5e2..a6c1466 100644 +--- a/budget/budget.ledger ++++ b/budget/budget.ledger +@@ -42,8 +42,8 @@ include accounts.inc + ; Estimated total attendees: 400 +- ; Breakfast Rate DebCamp 50.00% of 253 accommodated attendees +- ; Breakfast Rate DebConf 95.00% of 253 accommodated attendees +- ; Lunch Rate DebCamp 40.00% +- ; Lunch Rate DebConf 85.00% +- ; Dinner Rate DebCamp 40.00% +- ; Dinner Rate DebConf 75.00% ++ ; Breakfast Rate DebCam 0.00% of 253 accommodated attendees ++ ; Breakfast Rate DebCon 5.00% of 253 accommodated attendees ++ ; Lunch Rate DebCam 0.00% ++ ; Lunch Rate DebCon 5.00% ++ ; Dinner Rate DebCam 0.00% ++ ; Dinner Rate DebCon 5.00% + expenses:incidental 3,000 EUR diff --git a/examples/debconf/patches/dc26.patch b/examples/debconf/patches/dc26.patch new file mode 100644 index 000000000..e69de29bb