Releases: simonmichael/hledger
1.51
Release notes
Small improvements, doc updates
hledger 1.51
Fixes
- HTML output no longer contains invalid nested tables (Joschua Kesper). This may cause some visual changes, hopefully all for the better.
stats:-onow redirects all output, including the performance stats.
Features
commodities,payeesandtagscommands now have a--findmode for finding the best match (like theaccountscommand).stats: A new-1flag prints a single line of output in machine-friendly tab-separated format, including the program version, journal file name, and performance stats.
Improvements
- In journal format, an empty
{}pair is now allowed (and ignored) in amounts, slightly improving Ledger/Beancount compatibility. accountsin--treemode, when showing a subset of accounts, now shows parent accounts for context, like thebalancecommand.
(Sam Almahri, #2427)accounts --typesno longer shows value-less type tags; untyped accounts are shown without atypetag.- When pivoting on account type with
--pivot=type, account types will be normalised to their short spelling (Ainstead ofAssets, etc). accounts: the--positionsflag has been renamed to--locations.print: the--locationflag has been renamed to--locations.setup: tidier output for missing LEDGER_FILE or default file; wording improvements
Docs
- Account names: rewrite, emphasise the two space delimiter
- accounts: improve/sync options order
- add: balance assertions/assignments: clarify, fix #2494
- aregister: formatting
- aregister: clarify arguments
- argument files: corrections
- check: drop obsolete note about transaction balancing
- check: edits, correction
- close: customisation: clarify #2492
- commodity directive: add info about the -c command line option (Ooker)
- COMMON TASKS: demote subheadings
- csv: new "CSV fields and hledger fields" section
- csv: new "Regular expressions in CSV rules" section
- csv: link the
if-specificskipandendruels more clearly - depth: rewrite, note combining issue
- print: clarify amount styling; note more parseability breakers
- print: note another way print can disrupt journal readability (same-day balance assertions)
- rename Editor configuration -> Editors
- Setting LEDGER_FILE: rewrite, new windows procedures
- Special characters: rewrite (Simon Michael, Caleb Maclennan, #2468)
- Tags: rewrite [hledger_site#141]
- Value reporting: more advice, examples for COMM
- Value reporting: warn about -V, emphasise -X
Examples
- Organise/rename examples/csv/ as the CSV rules library
Scripts/addons
hledger-check-buynothing: check Buy Nothing Day compliancehledgerj1: example of a wrapper for reading a custom data formatsortandmergepostings: Overhaul for more robust determinism (Caleb Maclennan)- Avoids non-deterministic flip-flopping when the alphabetical account sort has multiple commodities
- Sorts postings commodities so commodities are in the same order across transactions
- Sorts postings with matching commodity by posting amount
API
- Hledger.Cli.Utils:
- stop exporting pivotByOpts, anonymiseByOpts
- renamed withJournalDo -> withJournal. The old name is still available but deprecated.
hledger-ui 1.51
Improvements
-
Allow brick 2.10, vty 6.5.
-
Uses hledger 1.51.
hledger-web 1.51
Improvements
- Uses hledger 1.51.
project changes 1.51
Docs updated
- ACHIEVEMENTS
- ANNOUNCE.short
- AUTHORS
- bin/README
- CHANGES.md: move to doc/ for consistent paths
- Contributing: mention translation (Lý Minh Nhật)
- DECISIONS
- dev
- DOCS: document & diagram latest doc update procedures
- ISSUES
- REGRESSIONS
- RELEASING
- relnotes: more reliable changelog links
- ROADMAP
- tldr/README
Infrastructure/Misc
- bump stack snapshots
- Dockerfile fixed (probably)
- drop the hledger-install script
- just changelogs* update
- just docupdatediag
- just ghci-ui: :main (and :rmain) now works again
- just ghnightly* -> nightly*
- just oldest
- just perftest: run performance tests, logged to perf.log
- just releasediag update
- just rels-major
- just site-restart
- just: devtag-push: simplify
- just: ghrel-bin-upload
- just: manuals, manuals-site
- just: reltags: cleanup
- just: ver, majorver
- Justfile: less safari dependence
- Justfile reorg, cleanups
- release script updates
- Shake: drop mandates target, update manual dates automatically
- Shake manuals: more contributor instructions in the header comment [hledger_site#140]
- stack92: add valid hashtables version
- stack94: add valid hashtables version
- stack96: add valid hashtables version
- stack98: include valid hashtables version
- stack98: restore needed encoding 0.10 extra dep
- stop git ignoring site/src/, allowing web docs to be easily opened in vscode
- tools/relnotes.hs update
- use a nightly branch instead of a nightly tag on github, it's simpler
- workflows: use shelltestrunner 1.11
- workflows:binaries-mac-x64: switch to macos-15-intel
credits 1.51
Simon Michael,
Caleb Maclennan,
Joschua Kesper,
Ooker,
Sam Almahri.
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.51/hledger-linux-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.51
Mac, 64-bit ARM or Intel
In a terminal window (don't download the binaries with your web browser, they won't get authorised):
On ARM macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.51/hledger-mac-arm64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.51
On Intel macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.51/hledger-mac-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.51
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
cd ~
curl https://github.com/simonmichael/hledger/releases/download/1.51/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -Force -DestinationPath AppData\Roaming\local\bin
hledger --version; hledger-ui --version; hledger-web --version # should show 1.51
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.51echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clickin...
1.50.4
Release notes
hledger 1.50.4
Fixes
-
An
includedirective with no argument now gives consistent error messages. -
journal format's
includedirective no longer excludes paths containing dotted directories/files.
1.50-1.50.3 contained an overzealous workaround that sometimes wrongly excluded paths containing a dot dir or dot file.
Now the pre-1.50 behaviour is restored
(*and**generally avoid dot files and dot directories, except**will search non-top-level dot directories).
#2498 -
Symbolic links found by
includedirectives are once again shown as-is, not dereferenced.
(1.50-1.50.3 showed them dereferenced, eg inhledger filesoutput.)There is some related new behaviour: each time an include directive is parsed,
all the parent file paths and the new include file path(s) are re-canonicalised.
Previous hledger versions did not do this; it's expected to be unnoticeable,
but if you notice any slowdown caused by having many include directives and a slow filesystem,
please report it.
hledger-ui 1.50.4
- Uses hledger 1.50.4.
hledger-web 1.50.4
- Uses hledger 1.50.4.
credits 1.50.4
Simon Michael.
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.4/hledger-linux-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.4
Mac, 64-bit ARM or Intel
In a terminal window (don't download the binaries with your web browser, they won't get authorised):
On ARM macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.4/hledger-mac-arm64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.4
On Intel macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.4/hledger-mac-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.4
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
cd ~
curl https://github.com/simonmichael/hledger/releases/download/1.50.4/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -Force -DestinationPath AppData\Roaming\local\bin
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.4
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.50.4echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
configure that to be larger, or run hledger-web from a command window instead. - hledger or hledger-web may fail to run if there is not enough memory available.
Next steps
Once installed, run hledger, and perhaps read hledger.org: Quick start.
1.50.3
Release notes
hledger 1.50.3
Fixes
-
hledger versions 1.50-1.50.2 ran much slower than normal (depending on the speed of your hard drive).
This 1.50.3 release fixes that; so please upgrade, and avoid those older 1.50 releases.
#2493 -
A regression in 1.50, where very large dates could produce wrong reports, has been fixed.
(Affecting dates outside the range -25252734927764696-04-22..25252734927768413-06-12
on 64 bit machines, or -5877752-05-08..5881469-05-27 on 32 bit machines.)
#2479 -
If the
LEDGER_FILEenvironment variable is set to a nonexistent file, we now report an error
rather than silently falling back on a default file path, which was confusing.
Also, we no longer support the legacyLEDGERenvironment variable as a fallback.
#2485 -
setupnow shows tidier output when a LEDGER_FILE or default file is not found, -
addnow checks balance assertions more robustly, with awareness of how everything is ordered in the journal.
Also, it now allows adding balance assignments.
#2478 -
check accountsno longer garbles non-ascii account names in its output.
#2469 -
We now escape special characters properly when passing arguments to addons
(with just one level of quoting/escaping, not two).
And related docs have been improved.
(Caleb Maclennan, Simon Michael, #2468) -
Internal report code which could produce certain date-related errors has been made robust again.
(Stephen Morgan) -
The old "threaded" build flag, which cabal could turn off, has been dropped.
This will hopefully prevent wrong builds like Debian's #1120833.
#2495 -
Docs updated: add, areg, argument files, check, close, csv, depth, print, print, Special characters, Value reporting
hledger-ui 1.50.3
-
--watchmode now also detects changes from apps which overwrite the file, such as VS Code.
(Caleb Maclennan) -
When hledger-ui is started with --pivot, re-enabling balance assertions
with the I key now does a full journal reload, to check assertions more accurately.
#2451 -
The old "threaded" build flag, which cabal could turn off, has been dropped.
#2495 -
Allow brick 2.10, vty 6.5.
-
Uses hledger 1.50.3.
hledger-web 1.50.3
-
The old "threaded" build flag, which cabal could turn off, has been dropped.
#2495 -
Uses hledger 1.50.3
credits 1.50.3
Simon Michael,
Caleb Maclennan,
Stephen Morgan.
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.3/hledger-linux-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.3
Mac, 64-bit ARM or Intel
In a terminal window (don't download the binaries with your web browser, they won't get authorised):
On ARM macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.3/hledger-mac-arm64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.3
On Intel macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.3/hledger-mac-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.3
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
cd ~
curl https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -Force -DestinationPath AppData\Roaming\local\bin
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.3
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.50.3echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
configure that to be larger, or run hledger-web from a command window instead. - hledger or hledger-web may fail to run if there is not enough memory available.
Next steps
Once installed, run hledger, and perhaps read hledger.org: Quick start.
1.50.2
Release notes
hledger 1.50.2
Fixes
-
The CSV
encodingrule is now respected when using the rules file as input file. This was a regression in 1.50.
Also, the text decoding error message has been clarified; it now mentions a possible CSV encoding.
#2465 -
The doc for
--depthhas been clarified, and now mentions the use of quotes.
(Quả Cầu, Simon Michael, [hledger_site#140]) -
A typo was fixed in the --depth example in
register's doc.
([hledger_site#140], reported by Quả Cầu) -
Our package bounds now avoid hashtables 1.3.x, which fails to build with some gcc versions
(see gregorycollins/hashtables#97)).
(hseg, #2463)
hledger-ui 1.50.2
- Uses hledger 1.50.2
hledger-web 1.50.2
- Uses hledger 1.50.2
credits 1.50.2
Simon Michael (@simonmichael),,
hseg (@hseg),.
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.2/hledger-linux-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.2
Mac, 64-bit ARM or Intel
In a terminal window (don't download the binaries with your web browser, they won't get authorised):
On ARM macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.2/hledger-mac-arm64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.2
On Intel macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.2/hledger-mac-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.2
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
cd ~
curl https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -Force -DestinationPath AppData\Roaming\local\bin
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.2
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.50.2echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
configure that to be larger, or run hledger-web from a command window instead. - hledger or hledger-web may fail to run if there is not enough memory available.
Next steps
Once installed, run hledger, and perhaps read hledger.org: Quick start.
1.50.1
Release notes
hledger 1.50.1
Fixes
-
Balance commands now show an empty report instead of an error when
no transactions are matched, fixing a regression in 1.50.
(Stephen Morgan, #2452) -
The
printcommand's help no longer shows an unused --show-costs flag.
And the command-specific flags are now mostly ordered alphabetically. -
Whitespace in the
setupcommand's "undeclared commodities" output has been fixed.
Doc updates
- Text encoding
- bin/README: paypal*, simplefin* usage examples, doc link
hledger-ui 1.50.1
Fixes
-
The transaction screen and error screen now update on data changes like other screens,
eg when using the E key, g key, or --watch.
#2014, #2288 -
When the journal is reloaded by the
gkey or--watch, the
--pivot (and --obfuscate) options are now preserved,
and spurious errors are avoided.
#2451 -
The Z key (and the -E command line flag) toggles zero-balance accounts again.
(Stephen Morgan, #2454)
Improvements
- Debug output has improved, eg it's easier to see changes to the screen stack.
hledger-web 1.50.1
- Uses hledger 1.50.1
credits 1.50.1
Simon Michael (@simonmichael),
Stephen Morgan (@Xitian9).
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.1/hledger-linux-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.1
Mac, 64-bit ARM or Intel
In a terminal window (don't download the binaries with your web browser, they won't get authorised):
On ARM macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.1/hledger-mac-arm64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.1
On Intel macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.50.1/hledger-mac-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.1
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
cd ~
curl https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -Force -DestinationPath AppData\Roaming\local\bin
hledger --version; hledger-ui --version; hledger-web --version # should show 1.50.1
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.50.1echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
configure that to be larger, or run hledger-web from a command window instead. - hledger or hledger-web may fail to run if there is not enough memory available.
Next steps
Once installed, run hledger, and perhaps read hledger.org: Quick start.
1.50
Release notes
Better transaction balancing, include improvements, auto posting account interpolation, csv data commands, import archiving, timeclock improvements, fixes
hledger 1.50
Breaking changes
-
Transaction balancing is now done in a more robust way, using local precisions only (like Ledger) [#2402].
Until now, a transaction was required to balance using its commodities's global display precisions.
Small imbalances were tolerated by configuring display precisions for the whole journal (withcommoditydirectives).Now, a transaction is required to balance using the precisions in its journal entry only.
This means each entry can use the precision it needs, and balancing precision and display precision are independent.
(So eg, increasing the display precision with-cno longer breaks the journal.)In practice this requires journal entries to be more accurate, and you will probably need to fix some old entries.
There are three main ways to fix an entry:- reduce the amounts' precision (use fewer decimal digits, so a lower balancing precision is inferred)
- make the amounts more accurate (use better decimal digits, so the amounts sum to zero more closely)
- or (easiest) add an amountless "expenses:rounding" posting (this is not a cheat, it's a more accurate record of what your bank/broker is doing).
You can also keep the old transaction-balancing behaviour with
--txn-balancing=old, for now.
But updating your entries is recommended.The old behaviour could allow small remainders to accumulate over time,
in accounts that often have an inexact posting amount or cost amount and are never reconciled -
typically equity, revenues, and expenses.
You can check for this in your old journals with a command likehledger bal cur:\\$ -c '$1.000000000000' | grep -E '\...0*[1-9]'(show $ account balances, with many decimals, which have a non-zero decimal in the 3rd place or beyond)
-
Timeclock format has had various changes:
- Timeclock syntax and parsing is now more robust (when not using --old-timeclock):
- Semicolon always starts a comment (and timeclock account names may not include semicolons).
- Trailing spaces are ignored.
- Clock-ins now require an account name.
- Clock-outs now can have a comment and tags.
- Timeclock entries are processed in parse order.
- Some order-related bugs in 1.43 have been fixed.
- Concurrent/overlapping sessions are now fully supported, even if they have the same account name.
- The timeclock doc has been rewritten.
- The --old-timeclock hidden flag has been renamed, documented, and now also affects included files.
[#2141], [#2365], [#2400], [#2417]
- Timeclock syntax and parsing is now more robust (when not using --old-timeclock):
-
The
importcommand now shows info messages (such as the dry run "; would import .." message)
on stderr, not stdout.
Also the "no new transactions" output is more compact, showing file names not file paths;
and it no longer prints an extra newline. -
Some edge cases in balance report behaviour were changed for internal consistency:
-
hledger now requires at least GHC 9.6 (and base 4.18), to ease maintenance.
Fixes
-
Paging long output no longer gives an error when
LESSis undefined and
lessdoes not have mouse support (as on some FreeBSD systems). -
The
all:query now requires at least one posting to match.
(Previously, matching no postings at all was also considered a success.) -
When using journal format's
includedirective, several kinds of
error (read failure, cyclic include..) could show an off-by-one line
number or excerpt, confusingly. This has been fixed.
Also, attempting to include a rules file now gives a better error message. -
In CSV
ifrules, match group references like\1no longer get confused
by differing case.
(Jay Neubrand, [#2419]) -
add,commodities, anddiffnow support the --conf and -n/--no-conf flags,
like other commands.
[#2446] -
On Windows machines, the
addcommand now properly shows green prompts instead of ANSI codes.
[#2410] -
Balance reports now properly show the historical balance even when the report period is empty.
[#2403] -
Balance reports' csv output, and the
balance --budgetreport, now respect the --summary-only flag.
(Stephen Morgan, [#2411], [#2443]) -
The
democommand no longer mentions-- ASCIINEMAOPTSin help (that longer works).
Also it shows a better error message when asciinema is not installed. -
hledger help -m TOPICorhledger help -i TOPICnow show the help for TOPIC, as intended.
[#2399] -
Since hledger 1.32.1, the
importcommand, when importing multiple files at once,
would write an empty .latest file for data files with no new transactions
(causing all transactions in those data files to appear new on next import).
This is now fixed.
[#2444]
Features
-
CSV rules files can now run a shell command to clean the data:
# read the latest foo*.csv file, and replace "USD" with "$" source foo*.csv | sed -e 's/USD/$/g'or to generate the data:
# fetch JSON from simplefin.org, then transform it to CSV source | simplefinjson | simplefincsvWhenever hledger runs one of these commands, it will echo the command on stderr.
-
The
importcommand can now automatically archive imported CSV data files,
saving a dated copy in adata/directory. This can be useful for troubleshooting,
or for regenerating entries later with improved rules.
To enable it, addarchiveto the rules file.This and the previous feature can simplify file management and reduce the need for support scripts.
Improvements
-
In command line help, flag group headings have been simplified.
And the help for -f/--file,add, andimportis now clearer. -
When given both an unknown command and an unknown flag, hledger now gives
a clearer error message (about the command, not the flag).
[#2388] -
A long standing awkwardness with addon commands has been solved:
you can now use addon options freely in a hledger command line;
you don't need to write a--argument first.
[#458] -
In smart dates and period expressions, quarter syntax like
2025q1orQ2is now fully supported. -
In end-value reports where the end date is unspecified, market prices
in the future can no longer influence the report end date and valuation date.
(Market prices on or before today, still can.)
[#2445] -
A
tag:query with theaccountscommand now only matches account tags, not posting tags.
Eg,hledger accounts tag:tnow lists only account a from this journal:account a ; t: 2025-01-01 a 1 b -1 ; t: -
Journal format's
includedirective now has more robust and convenient glob patterns:**can match both directories and filenames**now automatically ignores anything under dotted directories, like .git/, foo/.secret/, etc.
(If you do want it to search dotted directories,
you can use the --old-glob flag for now to restore the old behaviour. See also Glob#49.)- Glob patterns with wildcards now automatically exclude the current file.
Eginclude **.journalwill include all other .journal files in this directory and below.
-
include's error messages and debug messages have been improved.
Eg, the including file paths are also shown. -
Journal format's auto posting rules can now use
%accountto insert the account name
from the matched posting.
(Stephen Morgan, [#1975], [#2412]) -
The
aregistercommand no longer abbreviates account names
when producingcsv,html, orfodsoutput.
(savanto, [#1995], [#2416]) -
The
commodities,payeesandtagscommands now have --used/--declared/--undeclared/--unused flags, likeaccounts.
And there has been a general cleanup of options and help across these four commands. -
The
setupcommand's output has been improved.
Lack of a pager is now reported as info, not warning (there's no default pager on Windows).
Shell completions are ignored for now.
Docs
- add: clarify that add is for journal format only
- addon commands: edits, drop
--argument from all examples [#458] - areg: clarification
- bin: README updates
- COMMANDS: mention general options
- completions: README updates
- config files: no longer experimental
- csv: date-format: mention lack of support for local time formats [#1874]
- csv: source, archive: rewrite, add examples
- Depth: fix typo
- github release docs: simplify install commands
- import: use windows-compatible quotes in watchexec example
- include directive: update docs; clarify effect, glob limitations
- note fish LEDGER_FILE setup
- options: mention that flag+value can't combine with other flags [#2059]
- print: improve --location help
- smart dates: fix typo
Examples
- CSV rules for Eternl cryptocurrency wallet
- VAT example
Scripts/addons
- renamed paypaljson2csv to paypaljson
- simplefinjson, simplefincsv: new helpers for downloading/converting data from simplefin.org bank aggregator
hledger-ui 1.50
Breaking changes
- hledger now requires at least GHC 9.6 (and base 4.18), to ease maintenance.
Improvements
- Use hledger 1.50
hledger-web 1.50
Breaking changes
- hledger now requires at least GHC 9.6 (and base 4.18), to ease maintenance.
Fixes
-
The register chart is no longer hidden when the window is narrow.
-
Dragging on the register chart now selects date ranges more accurately.
Eg, now you can select a range including transactions at the rightmost edge of the chart.
Improvements
- Use hledger 1.50
project changes 1.50
Doc updates
- FINANCE
- ISSUES
- REGRESSIONS
- RELEASING
- SCHEDULE &
just schedule...
1.43.2
Release notes
hledger 1.43.2
-
hledger no longer shows an error message or exits with error status
when its output is truncated in a piped command. (This broke in 1.43.) #2405 -
The
addcommand's doc now describes how it interacts with balance assertions
and balance assignments. #2406 -
aregisternow consistently rounds amounts to display precision again.
(This broke in 1.32.) #2407 -
Changelog, release notes: mention improved decoding errors #73;
add missing issue numbers
hledger-ui 1.43.2
- Use hledger-1.43.2
hledger-web 1.43.2
-
Use hledger-1.43.2
-
Add missing issue numbers in the changelog
credits 1.43.2
Simon Michael.
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-linux-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.2
Mac, 64-bit ARM or Intel
In a terminal window (don't use your web browser to download, it won't authorise the binaries):
On ARM macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-mac-arm64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.2
On Intel macs:
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-mac-x64.tar.gz | tar -xzv -f- -C/usr/local/bin hledger hledger-ui hledger-web
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.2
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
cd ~
curl https://github.com/simonmichael/hledger/releases/download/1.43.2/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -Force -DestinationPath AppData\Roaming\local\bin
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.2
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.43.2echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
configure that to be larger, or run hledger-web from a command window instead. - hledger or hledger-web may fail to run if there is not enough memory available.
Next steps
Once installed, run hledger, and perhaps read hledger.org: Quick start.
1.43.1
Release notes
hledger 1.43.1
Fixes
cur:in posting-based reports likebalanceandregisteronce again
filters multicommodity amounts as it should. #2396- More error messages were made consistent, hiding call stack etc. #2367
Docs
hledger-ui 1.43.1
-
More error messages were made consistent, hiding call stack etc. #2367
-
Allow brick 2.9
hledger-web 1.43.1
Fixes
- Fixed a compilation error when not in the hledger source tree. #2397
project changes 1.43.1
- tools:
- Shake changelogs: fix missing blank lines around old heading
- ghcruns-download: make tmp dir
- docs:
RELEASING
credits 1.43.1
Simon Michael.
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43.1/hledger-linux-x64.tar.gz
tar xzf hledger-linux-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.1
Mac, 64-bit ARM or Intel
In a terminal window (don't use your web browser to download, it won't authorise the binaries):
On ARM macs:
cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43.1/hledger-mac-arm64.tar.gz
tar xzf hledger-mac-arm64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.1
On Intel macs:
cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43.1/hledger-mac-x64.tar.gz
tar xzf hledger-mac-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.1
Windows, 64-bit ARM or Intel
In a powershell window (press WINDOWS-R, powershell, ENTER):
-
Make a place to keep installed binaries. You only need to do this once, not for every release:
mkdir -force $HOME\bin >$null $ENV:PATH += ";"+$HOME+"\bin" [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::User)+";"+$HOME+"\bin", [EnvironmentVariableTarget]::User) -
Download and install the release binaries:
cd $HOME\bin curl https://github.com/simonmichael/hledger/releases/download/1.43.1/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip Expand-Archive hledger-windows-x64.zip -DestinationPath . -Force cd $HOME hledger --version; hledger-ui --version; hledger-web --version # should show 1.43.1; if not, check why: where.exe hledger -
Ensure a default journal file exists, and without a problematic encoding (I'm not sure if/why "ascii" was needed here).
This will allow you to start hledger-web by double-clicking on its icon if you wish.out-file -append -encoding ascii $HOME/.hledger.journal
Windows 7, 64-bit Intel
These instructions have not been tested recently, please let us know if they work for you:
- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in
echo %PATH%, likeC:\Windows(though that one will require administrator permission); otherwise, your home directory (C:\Users\YOURNAME) - check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to
\Windows, you'll need to scroll down) - for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
hledger --version; hledger-ui --version; hledger-web --versionshould show 1.43.1echo # >> .hledger.journalto ensure a default journal file exists. (Important: the doubled >> is needed to avoid overwriting existing data.)
Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
configure that to be larger, or run hledger-web from a command window instead. - hledger or hledger-web may fail to run if there is not enough memory available.
Next steps
Once installed, run hledger, and perhaps read hledger.org: Quick start.
1.43
Release notes
hledger 1.43
new setup command, better boolean queries, add assertions, timeclock concurrent sessions, CSV if rules debug output
Breaking changes
-
Timeclock format now supports multiple simultaneous clocked-in sessions.
A clockout entry can reference the account name of the clockin it is ending,
otherwise it will end the most recent clockin.This is a potentially breaking change, because we previously ignored
the description on clockout entries. For now, you can restore the
old behaviour by adding the--timeclock-oldflag. This may be
removed later, so if you needed it, please let us know!
(Michael Rees, #2141)
Fixes
-
Some boolean queries involving
amt:orcur:did not match correctly; now they do.
(Simon Michael, Stephen Morgan, #2371, #2373, #2387) -
The
roicommand has fixed a bug with PnL attributed to the wrong period.
(Dmitry Astapov, #2391) -
For a long time, hledger docs stated that hledger's input and output had to be UTF-8 encoded.
In fact this was wrong; hledger has always used the system locale's encoding for both.
Docs like Install: Text encoding
and hledger: Text encoding
have been updated.
#2394 -
CLI error messages now have consistent format independent of the GHC
version hledger was compiled with. #2367
Features
-
A new
setupcommand checks your hledger installation and shows information
useful for troubleshooting. It will do more in future.
For now,setupshould be reliable and accurate;
please test it on all your machines and share the results with us.
Experimental.When you run this command, hledger attempts one HTTP request, with a 10s timeout,
to hledger.org, to detect the current release version. -
New
any:"BOOLEANQUERY"andall:"BOOLEANQUERY"queries can be
used with transaction-matching commands likeprintandimport.Unlike
expr:"BOOLEANQUERY", where the parts of the boolean query
are allowed to match different postings in the transaction,
withany:andall:the entire boolean query must match a single posting.
any:matches the transaction if any posting is matched,
all:matches the transaction if all postings are matched. -
The
addcommand now allows balance assertions to be added, after an amount.
Also, whenever you enter an amount, it now checks the journal's balance assertions
and will not allow adding an amount that would cause assertion failure
(unless you use the-I/--ignore-assertionsflag).
(Michael Rees, #2355, #2356) -
The hledger-print-location script, which shows transactions' file positions,
is now built in toprintas the--locationflag.
(Sam Salmahri, #2368)
Improvements
-
Core data types are now more strict, which in some cases reduces memory and time usage by up to 15%.
(Stephen Morgan, #2381, #2385, #2387) -
Config files (and maybe timedot files) no longer require a final newline.
-
In journal format,
includedirectives can now have same-line comments. -
CSV
ifrules now produce more--debug=2output, useful for troubleshooting. -
CSV debug output now displays records as the
ifmatchers see them.
(Comma separated and with quotes and outer whitespace removed.) -
A number of error messages have been updated to show a consistent format.
(reading a nonexistent data file,
reading an unsafe dotted file name on Windows,
demo not found,
demo asciinema error,
diff bad arguments,
print --match with no match,
register --match with no match,
roi with no investment transactions).
#2367 -
When unicode/non-ascii text can't be decoded by the system locale's text encoding,
we now show a consistent informative error message explaining it. #73 -
Support GHC 9.12.
Docs
- Account types: rewrite
- Assertions and multiple files: edits
- Balance assertions and multiple files
- balance: edits
- Beancount output: edits
- check: edits
- Config file: drop the s
- CSV: clarify that CSV means delimiter-separated values, link to wikipedia DSV page
- CSV:description field: fix link hledger_site#133
- Fix broken hledger-iadd link
- Fix various broken "Commodity display style" links (JB Rainsberger, Simon Michael, [hledger_site/#132])
- How CSV rules are evaluated: clarify
- Journal: cheatsheet edits
- print: simplify #2368
- Queries: discuss transaction vs posting queries; cleanups
- Queries: fix the explanation of boolean queries and space-separated terms
Examples
- examples/csv/nps.csv.sh updated (Pranesh Prakash)
- examples/forecast-budget* -> examples/goal-budget*
- examples/i18n/*.journal: top level account declarations in several languages.
- examples/quickstart.journal: the quickstart journal from the home page
Scripts/addons
- bin/balance-as-budget-multi.hs (Dmitry Astapov)
- bin/bashrc: command alias updates
- bin/hledger-sankeymatic
API
- Hledger.Cli.Conf: make getConf total, add getConf'
- Hledger.Cli.Version: add more version helpers, rename HledgerBinaryInfo
hledger-ui 1.43
Fixes
- Require fsnotify >=0.4.2.0, which fixes some events being ignored on mac,
possibly making hledger-ui --watch more reliable in this regard.
Improvements
-
CLI error messages now have consistent clean format independent of GHC version. #2367
-
Support GHC 9.12.
Docs
- Update --watch docs.
- Drop obsolete mention of Windows non-support.
hledger-web 1.43
Features
- Serve openapi.json, documenting the hledger-web HTTP API so that tools
like open-webui and LLMs can query hledger-web for context.
(Ben Sima)
Improvements
-
The search help popup has been updated, and now shows the hledger-web version.
-
The default "serve and browse" mode now has an explicit
--serve-browsemode flag, for consistency. -
The old
--serverflag is now deprecated and hidden. Use--serveinstead. -
CLI error messages now have consistent clean format independent of GHC version. #2367
-
Fix capitalisation in Sandstorm app metadata.
-
Support GHC 9.12.
-
Drop base-compat dependency (Thomas Miedema)
Docs
- Fix outdated PERMISSIONS doc.
project changes 1.43
Docs
- Updated:
FILES,
FINANCE,
ISSUES,
PULLREQUESTS,
REGRESSIONS,
RELEASING,
ghrelnotes,
relnotes
Infrastructure/Misc
- issue labels updates,
severity*->annoyance*,impact*->affects* - new shortcut urls: assignedprs.hledger.org, unassignedprs.hledger.org
- clean up LICENSE files, main module licensing headers, add AUTHORS.md, try to fix github license detection
- cabal files now specify GPLv3+ exactly. #2359
- building the hledger packages now requires at least Cabal 2.2+ or stack built with Cabal 2.2+ (was 1.12+).
- avoid a ghci warning if :rmain is defined in user's config.
- simplify stack yaml file names
- workflows updates:
- binaries*: simplify, cleanup
- binaries-linux-x64: install ghcup only if not cached; fix cache
- windows: use preinstalled stack
- docker: draft of a docker image build/publish workflow (Doug Goldstein, #2002)
- nightly: adds latest binaries to the "nightly" release
- tools updated:
binaries,
devtag-push,
ghnightly,
ghnightly-bin,
ghnightlynotes-push,
ghrel,
ghrelease-upload,
ghrelnotes-push,
ghrun,
ghrun-id,
ghrun-open,
ghruns,
ghruns-download,
ghruns-open,
hackageupload,
nightly,
nightlybin,
nightlytag
credits 1.43
Simon Michael (@simonmichael),
Michael Rees (@reesmichael1),
Thomas Miedema (@thomie),
Dmitry Astapov (@adept),
Pranesh Prakash (@the-solipsist),
Stephen Morgan (@Xitian9),
Sam Almahri (@samahri),
Ben Sima (@bsima),
Doug Goldstein (@cardoe).
Install
For all install options, see hledger.org: Install.
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.
Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please let us know.
All platforms
If you have eget, that's a convenient way to download the right binaries for your machine:
eget simonmichael/hledger --all
Otherwise:
GNU/Linux, 64-bit Intel
At the command line:
cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.43/hledger-linux-x64.tar.gz
tar xzf hledger-linux-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version # should show 1.43