;examples: debconf: hledger readability

This commit is contained in:
Simon Michael 2026-01-09 13:24:16 -10:00
parent a55455e19d
commit 5b7d8346bd
12 changed files with 220 additions and 6 deletions

View File

@ -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

View File

@ -6,9 +6,6 @@ Eg: <https://salsa.debian.org/debconf-team/public/data/dc25/-/tree/main/budget>
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`

View File

View File

@ -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

View File

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File