Skip to content

Releases: simonmichael/hledger

Nightly

08 Mar 16:32
Compare
Choose a tag to compare
Nightly Pre-release
Pre-release

Here you can find unreleased "nightly" binaries, which are updated occasionally. By using these and providing feedback, you can help to make the next release better.

These binaries have the following changes since the 1.43.2 release: 1.43.2...binaries

Install

All platforms

If you have eget, that's a convenient way to download the right binaries for your machine:

eget simonmichael/hledger --pre-release --all

Otherwise:

GNU/Linux, 64-bit Intel

At the command line:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/refs/tags/1.42.99/hledger-linux-x64.tar.gz
tar xzf hledger-linux-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show a recent .99 version

Mac, 64-bit ARM or Intel

In a terminal window (don't use your web browser to download, it won't authorise the binaries):

For ARM macs:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/refs/tags/1.42.99/hledger-mac-arm64.tar.gz
tar xzf hledger-mac-arm64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show a recent .99 version

For Intel macs:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/refs/tags/1.42.99/hledger-mac-x64.tar.gz
tar xzf hledger-mac-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show a recent .99 version

Windows, 64-bit ARM or Intel

In a powershell window (press WINDOWS-R, powershell, ENTER):

  1. 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)
    
  2. Download and install the release binaries:

    cd $HOME\bin
    curl https://github.com/simonmichael/hledger/releases/download/refs/tags/1.42.99/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 refs/tags/1.42.99; if not, check why: where.exe hledger
    
  3. 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
    

1.43.2

13 Jun 22:11
1.43.2
Compare
Choose a tag to compare

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 add command's doc now describes how it interacts with balance assertions
    and balance assignments. #2406

  • aregister now 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%, like C:\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 --version should show 1.43.2
  • echo # >> .hledger.journal to 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

04 Jun 17:24
1.43.1
Compare
Choose a tag to compare

Release notes

hledger 1.43.1

Fixes

  • cur: in posting-based reports like balance and register once again
    filters multicommodity amounts as it should. #2396
  • More error messages were made consistent, hiding call stack etc. #2367

Docs

  • Query types: clarify that amt: filters postings #2396
  • More text encoding corrections/cleanups #2394

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):

  1. 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)
    
  2. 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
    
  3. 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%, like C:\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 --version should show 1.43.1
  • echo # >> .hledger.journal to 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

01 Jun 23:08
1.43
Compare
Choose a tag to compare

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-old flag. This may be
    removed later, so if you needed it, please let us know!
    (Michael Rees, #2141)

Fixes

  • Some boolean queries involving amt: or cur: did not match correctly; now they do.
    (Simon Michael, Stephen Morgan, #2371, #2373, #2387)

  • The roi command 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 setup command checks your hledger installation and shows information
    useful for troubleshooting. It will do more in future.
    For now, setup should 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" and all:"BOOLEANQUERY" queries can be
    used with transaction-matching commands like print and import.

    Unlike expr:"BOOLEANQUERY", where the parts of the boolean query
    are allowed to match different postings in the transaction,
    with any: and all: 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 add command 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-assertions flag).
    (Michael Rees, #2355, #2356)

  • The hledger-print-location script, which shows transactions' file positions,
    is now built in to print as the --location flag.
    (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, include directives can now have same-line comments.

  • CSV if rules now produce more --debug=2 output, useful for troubleshooting.

  • CSV debug output now displays records as the if matchers 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-browse mode flag, for consistency.

  • The old --server flag is now deprecated and hidden. Use --serve instead.

  • 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
Read more

1.42.2

16 May 23:48
1.42.2
Compare
Choose a tag to compare

Release notes

hledger 1.42.2

Fixes

  • The test command can pass options to tasty again (this broke in 1.42).
    Also, any arguments before -- are now passed to tasty as test-selecting -p options.
    #2386

  • Require extra >= 1.7.11, fixing the stack8.10.yaml build. (Thomas Miedema)

Docs

  • CSV encoding: fix inaccurate list of encoding names. #2354
  • Fix broken links to "Commodity display style". (Simon Michael, J.B. Rainsberger hledger_site#132)
  • Misc. edits/fixes: beancount output, commands list, balance command, hledger-iadd link, csv tutorial link

hledger-ui 1.42.2

Fixes

  • Require fsnotify-0.4.2.0+/hfsevents-0.1.8+, which fixes some events
    being ignored on mac (see luite/hfsevents#19),
    which should help hledger-ui --watch a little.

  • Require extra >= 1.7.11, fixing the stack8.10.yaml build. (Thomas Miedema)

Docs

  • Update --watch notes
  • Drop obsolete Windows non-support note

hledger-web 1.42.2

Fixes

  • Don't hang when saving a large file (this broke in 1.42). #2389

  • Require extra >= 1.7.11, fixing the stack8.10.yaml build. (Thomas Miedema)

project changes 1.42.2

Docs

  • relnotes: fix links to hackage changelogs

credits 1.42.2

Simon Michael (@simonmichael),
Thomas Miedema (@thomie).

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.42.2/hledger-linux-x64.tar.gz
tar xzf hledger-linux-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show 1.42.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:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.42.2/hledger-mac-arm64.tar.gz
tar xzf hledger-mac-arm64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show 1.42.2

On Intel macs:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.42.2/hledger-mac-x64.tar.gz
tar xzf hledger-mac-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show 1.42.2

Windows, 64-bit ARM or Intel

In a powershell window (press WINDOWS-R, powershell, ENTER):

  1. 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)
    
  2. Download and install the release binaries:

    cd $HOME\bin
    curl https://github.com/simonmichael/hledger/releases/download/1.42.2/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.42.2; if not, check why: where.exe hledger
    
  3. Ensure a default journal file exists, and without a problematic encoding.
    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
    

    (I'm not sure why "ascii" is needed here - hledger likes utf8 and understands utf8 BOM headers,
    but the state of our unicode support on Windows
    is really unknown, your feedback is welcome.)

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%, like C:\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 --version should show 1.42.2
  • echo # >> .hledger.journal to 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.42.1

13 Mar 07:59
1.42.1
Compare
Choose a tag to compare

Release notes

hledger 1.42.1

Fixes

  • Fix a regression in the parsing of single ampersands (&) in csv rules.
    (Thomas Miedema, #2352)

  • The run and repl commands no longer cache data wrongly when using the --forecast option.
    (Dmitry Astapov, #2345)

  • The run and repl commands no longer miss a caching opportunity when using --forecast with a period argument.
    (Stephen Morgan)

  • run, repl: doc fixes (Pranesh Prakash, Simon Michael)

hledger-ui 1.42.1

  • Allow vty 6.4.

hledger-web 1.42.1

project changes 1.42.1

Infrastructure/Misc

  • Tools updates

  • Fix cabalfilestest: test all cabal files before any hackage upload.

credits 1.42.1

Simon Michael (@simonmichael),
Dmitry Astapov (@adept),
Pranesh Prakash (@the-solipsist),
Stephen Morgan (@Xitian9),
Thomas Miedema (@thomie).

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.42.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.42.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.42.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.42.1

On Intel macs:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.42.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.42.1

Windows, 64-bit ARM or Intel

In a powershell window (press WINDOWS-R, powershell, ENTER):

  1. 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)
    
  2. Download and install the release binaries:

    cd $HOME\bin
    curl https://github.com/simonmichael/hledger/releases/download/1.42.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.42.1; if not, check why: where.exe hledger
    
  3. Ensure a default journal file exists, and without a problematic encoding.
    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
    

    (I'm not sure why "ascii" is needed here - hledger likes utf8 and understands utf8 BOM headers,
    but the state of our unicode support on Windows
    is really unknown, your feedback is welcome.)

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%, like C:\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 --version should show 1.42.1
  • echo # >> .hledger.journal to 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.42

08 Mar 04:17
1.42
Compare
Choose a tag to compare

Release notes

run & repl commands, non-UTF8 CSV, same-line if matchers, more pivot targets, fixes.

hledger 1.42

Fixes

  • hledger's default options for the less pager no longer include --use-color,
    which caused older less versions (eg 551) to break. #2335

  • In balance --budget reports, costs no longer prevent display of percentages. #2327

  • In the balance command's HTML output, -H/--historical now suppresses the total heading.

  • print --help now shows the correct default for --round. #2318

  • close --infer-costs no longer implies the -x/--explicit flag. #1826

  • add: Account names provided on the command line are no longer ignored. #2305

  • bs/bse/cf/is no longer show the unsupported --budget option in their help. #2302

  • The print command now ignores --depth entirely. Previously, a depth
    limit caused it to show only transactions referencing accounts as
    deep or deeper than that.

  • Week periods beginning in the previous year are now shown correctly.
    Eg the week beginning 2024-12-30 (which is week 1 of 2025 because the
    thursday falls in 2025) was previously shown as 2024-W01, and is now shown as 2025-W01.
    #2304

Features

  • run and repl are new commands which run multiple commands
    without re-parsing data files, so they run faster.
    run runs a sequence of commands from files or command line arguments,
    and repl provides an interactive prompt with readline-style history.
    (Dmitry Astapov, Simon Michael, #2323, #2328)

  • commands is a new explicit command for showing the commands list; it's useful in the REPL.
    With --builtin, it shows only the builtin commands.

  • hledger can now read CSV/SSV/TSV data in encodings other than UTF8,
    using the new encoding CSV rule. (Joschua Kesper, #2319)

  • if matchers in CSV rules can now be combined on the same line,
    separated by && (AND) or && ! (AND NOT). This makes if tables more expressive.
    Examples:

    if %description amazon && %date 2025-02-22
        account2 expenses:books
    
    if,account2
    %description amazon && %date 2025-02-22, expenses:books
    

    The next-line & operator also may now be written as &&, for consistency.
    (Thomas Miedema, #2333)

Improvements

  • Terminal width is now detected more robustly, using the POSIX API.
    This means that register commands will more reliably use the proper terminal width,
    eg when $TERM or $COLUMNS do not have a correct value, and on Windows.
    hledger no longer uses $COLUMNS.
    (gesh, #2332, #2340)

  • Error messages (first line) in the terminal are now shown in red (and bold),
    and warning messages are shown in yellow,
    when ANSI codes are supported and permitted.

  • --pivot can now also pivot on amount quantity (amt),
    amount cost (cost), and/or commodity symbol (comm or cur).

  • The close command's --migrate flag has been renamed to --clopen.
    The start: tag has been renamed to clopen:,
    and its default value now excludes the new file's extension.
    And close --assign's tag has been renamed to assign:.

  • The print command now supports the --invert flag. #2314

  • The roi command is now faster:
    it no longer checks every day with P directive,
    and the "one period per report interval" case has been optimised.
    (Dmitry Astapov)

  • Two more file extensions are now recognised as possible hledger addon
    commands: .osh and .ysh.

Docs

  • aregister: Drop an inconsistent newline from options help.
  • balance: improve --layout option help.
  • close: doc rewrites
  • shell completions: mention zsh; cleanups
  • cost/lot notations: clarify
  • cost, value reporting: edits
  • Directive effects: fix account types link #126
  • commodity styles: fix typo [hledger_site#123]
  • commodity directive: clarify
  • close: mention the balance assertions
  • pager: mention --pager=no
  • Aliases and account types: better troubleshooting command
  • Beancount output: mention limitations: P and balance assignments
  • Balance report output: drop outdated note about --tree and HTML #1846

Scripts/addons

  • hledger-balance-as-budget properly applies commodity styles now. (Dmitry Astapov)

  • hledger-git now runs pass-through git commands in the right repo.

  • hledger-git now checks for a git repo more robustly. (Lars Kellogg-Stedman)

  • hledger-jj is another easy CLI for keeping hledger files in version control,
    using newer tech (jujutsu and oil shell's ysh).

  • hledger-script-example.hs has had some cleanup.

hledger-ui 1.42

Fixes

  • Startup arguments provided at the CLI are no longer passed to add when pressing the a key. #2313

Improvements

  • Allow vty 6.3.
  • Allow brick 2.8.

hledger-web 1.42

Fixes

  • Fix a test suite build issue: build it with -threaded.

project changes 1.42

Docs

  • new/updated: ACHIEVEMENTS, CREDITS, FINANCE, MOCKUPS, REGRESSIONS, RELEASING, Scripts
  • examples/csv: pooltool-rewards.csv.rule cleanup
  • examples: some sample hledger run scripts
  • examples: test files for CSV encoding #2319

Infrastructure/Misc

  • Unix bindists in github releases now include the man pages and info manuals. #2309

  • Unix bindists in github releases are now normal .tar.gz files, without the extra zip compression. [#2299]

  • Release notes and install instructions in github releases are now collapsed by default again.
    This makes the sequence of dates and releases clearer.
    Github automatically expands the assets of the latest release, so those will be visible by default.
    For a full text search of all release notes, use the https://hledger.org/relnotes.html page.

  • hledger-install: if installing third party packages fails, it now tries again with bounds relaxed.
    This makes hledger-iadd and hledger-interest more likely to install successfully,
    even if their bounds have not yet been updated for a new hledger release.

  • just functest now fails if there are warnings.
    (It does not force recompilation of already compiled modules,
    but even so this should help catch more warnings before pushing them to CI.)

  • new/changed recipes/tools:
    bench*.sh,
    changelogs-catchup,
    changelogs-finalise,
    changelogs-reset,
    devtag,
    ghrelnotes,
    ghrelnotes-publish,
    log-headtail,
    log-push,
    log-save,
    modulediag,
    modulediags,
    modulediags-view,
    packagediags,
    packagediags-view,
    releasediag,
    relnotes
    relprep -> relbranch,
    reltags,
    reltags-push,
    showrelnotes,
    site-manuals-snapshot,
    site-watch,
    time,
    tldr-diff

  • gitignore cleanups.

credits 1.42

Simon Michael (@simonmichael),
Dmitry Astapov (@adept),
gesh (@hseg),
Thomas Miedema (@thomie),
Joschua Kesper (@jokesper),
Lars Kellogg-Stedman (@larks).

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.42/hledger-linux-x64.tar.gz
tar xzf hledger-linux-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show 1.42

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.42/hledger-mac-arm64.tar.gz
tar xzf hledger-mac-arm64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show 1.42

On Intel macs:

cd /usr/local/bin
curl -fLOC- https://github.com/simonmichael/hledger/releases/download/1.42/hledger-mac-x64.tar.gz
tar xzf hledger-mac-x64.tar.gz
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show 1.42

Windows, 64-bit ARM or Intel

In a powershell window...

Read more

1.41

10 Dec 01:23
1.41
Compare
Choose a tag to compare

Release notes

Valuation fix, improved HTML and FODS output, multiple depths, terminal pagination, robust export to Beancount, ...

hledger 1.41

Breaking changes

  • Accounts named "equity:conversion", "equity:trading", or "equity:trade(s)", which are detected as type V/Conversion, will now revert to type E/Equity instead if any other account has been declared as type V/Conversion.

  • When built with ghc 9.10.1, hledger shows two extra newlines after any error message.

Fixes

  • A somewhat severe, though hopefully rare, valuation bug has been fixed. In certain circumstances, values could be calculated inaccurately, because of display-rounding occurring inappropriately during calculations. [#2254]

    Specifically: when there was no direct P price for the target commodity, so that hledger had to convert via a chain of prices, and if all of those price amounts had too few decimal places, then the result could be inaccurate. An example:

    P 2000-01-01 A   10.5 B
    P 2000-01-01 B  100.5 C
    
    2000-01-01
        (a)    100 A
    
    $ hledger-1.40 print -X C
    2000-01-01
        (a)        105520 C   ; wrong
    
    $ hledger-1.41 print -X C
    2000-01-01
        (a)        105525 C   ; right
    
  • bs/bse/cf/is's HTML output no longer includes excess heading cells, and bs/bse's HTML output no longer shows an inappropriate Total heading with -T. (balancesheet does not support -T.)
    (Henning Thielemann)

  • Balance commands' HTML, CSV and FODS output now show tree mode properly indented (using no-break spaces).
    (Henning Thielemann)

  • In the HTML output of bs/bse/cf/is reports, Net amounts in the Net row are now formatted like the others.
    (Bas van Dijk)

  • In bs/bse/cf/is HTML output, some unnecessary TH cells have been fixed.
    [#2225] (Henning Thielemann)

  • The print command now ignores a depth limit entirely.
    Previously, a depth limit caused it to show only transactions referencing accounts as deep or deeper than that.

  • In the roi command, a division by zero error (when all assets were sold) has been fixed.
    [#2281] (Dmitry Astapov)

  • In a multi-line comment generated by CSV rules, tags on all lines now work (ie, can be matched). Posting dates in comments generated from CSV also now work.
    [#2241]

  • hledger's bash shell completions are now up to date with the latest CLI.
    [#986]

  • When showing output with a pager, if $PAGER is set to something not found in PATH, we now ignore it instead of raising an error.

  • hledger --color=yes | less -R now shows bold headings as you'd expect.

Features

  • The print, register and aregister commands now support HTML and FODS output, and the bs/bse/cf/is commands now support FODS output. This means all of the "STANDARD REPORTS" commands, and the balance command, now support text, HTML, CSV, TSV, or FODS output.
    (Henning Thielemann)

  • When generating HTML output with the register or balance commands, the --base-url option will add hyperlinks to hledger-web, allowing you to view the detailed transactions if you have hledger-web running.
    (Henning Thielemann)

  • Reports can now specify different display depths for certain accounts, rather than showing all accounts with the same depth limit. Multiple --depth=ACCTREGEX=DEPTH options (or depth:ACCTREGEX=DEPTH arguments can be used. For example, this will clip all accounts matching "assets" to depth 3, all accounts matching "expenses" to depth 2, and all other accounts to depth 1: --depth assets=3 --depth expenses=2 --depth 1
    (Stephen Morgan, #2292)

  • In unix-like environments, hledger now uses a pager ($PAGER, less, or more) for all large terminal output, not just for help. You can override this with the new --pager option. The pager is expected to handle hledger's ANSI colour output (unless you disable that). If less is used, it will be configured automatically, or you can override this by setting options in a HLEDGER_LESS environment variable.

  • The print command's beancount output is now much more Beancount-compatible [#2295]. Other than using --alias to provide the top-level account names Beancount requires, you should rarely have to do anything special to produce a journal that bean-check accepts. hledger will automatically adjust problematic names, encode unsupported characters, and so on. See hledger: Beancount output for the full details.

    This supersedes the ledger2beancount tool, and makes using Beancount tools, especially Fava, practical for hledger users. In many cases this should just work:

    hledger [ALIASES] print -o tmp.beancount; fava tmp.beancount
    

Improvements

  • if blocks in CSV rules now allow & ! (AND NOT) on the same line.

  • When reading .latest files, whitespace is now ignored, and any date parse failure is reported with the file and line number.

  • In journal format, P directives now require a space after the first symbol, preventing surprises like P 2024-10-31 a0 1 parsed as P 2024-10-31 a 01.
    [#2280]

  • aregister has a new --heading=YN option, for disabling the report heading. (Henning Thielemann)

  • aregister now supports the --invert and --cumulative flags, like the register command. (Henning Thielemann)

  • The balance commands' HTML and FODS output now shows table borders consistently.
    (Henning Thielemann)

  • In the balance commands' HTML output, row headings now span multiple rows when appropriate, rather than being repeated.
    (Henning Thielemann)

  • Balance commands now support --transpose when generating HTML output.
    (Henning Thielemann)

  • The balance command's --layout=tidy now affects HTML and FODS output at least to some extent (not just CSV output). And it always disables the totals row. (Henning Thielemann)

  • The balance command's FODS output now picks a report title based on the report mode: "Balance Report", "Multi-period Balance Report", or "Budget Report". (Henning Thielemann)

  • balance and aregister's HTML output will now use a hledger.css file if present, like bs/bse/cf/is.

  • bs/bse/cf/is now support the --count (postings count) report type, like balance.

  • The balance commands' options help has had some cleanup.

  • The error messages from check accounts and check recentassertions are now clearer.

  • The check commodities command now also checks commodities used in P directives. [#2280]

  • The commodities command now also list commodities mentioned in P directives. [#2280]

  • All of hledger's internal hidden (but searchable) tags can now be made visible by print --verbose-tags, which is useful for troubleshooting --infer-equity,
    --infer-costs, and the detection of redundant costs and conversion postings. Also,

    • Some hidden tags have been renamed for clarity:
      _modified is now _modified-transaction,
      _cost-matched is now _cost-posting,
      _conversion-matched is now _conversion-posting.
    • The generated-posting: tag added by --infer-equity is now valueless.
    • The modified-transaction: tag added by --auto now appears on its own line.
  • Using the -NUM shortcut (for --depth NUM) in a config file now works.

  • Setting the --color option in a config file now works (except it does not affect --debug output, currently).

  • The --color option's suggested values are now yes/y, no/n, or auto/a. always and never are no longer documented, though still supported.

  • More compact and informative --debug=2 output during valuation. Market prices are now shown using one line each, the known prices are listed, and the status of --infer-market-prices is shown.
    [#2287]

  • More informative --debug=7 output from CSV rules.

  • The hledger packages have a new debug build flag. Builds made with ghc 9.10+ and this flag will show some kind of stack trace if the program exits with an error. (These will improve in future ghc versions.)

  • Disabled the unused ghcdebug build flag and ghc-debug support, for now.

  • Allow megaparsec 9.7.

  • ghc 9.10 / base 4.20 are now supported.

Docs

  • Windows: added tips for setting LEDGER_FILE (Amadeusz Wieczorek, hledger_site#119)
  • csv: if blocks: explain matchers and field names better [#2289]
  • import: rewrite; rename "date skipping" to "overlap detection"
  • import: added tips for first import
  • assertions: mention their behaviour with posting status
  • journal: rewrite the Tags section
  • pager: note that help -p TOPIC uses less; link to less FAQ
  • query types: updates, add headings, mention tag:'s infix matching
  • Regular expressions: note possible RTL/bidi limitation (?)
  • Special characters: rewrite, more precision, mention some Windows differences
  • Output formats: expand, document beancount and FODS output
  • Text output: expand/consolidate terminal topics
  • FODS output: describe the advantages over CSV (Henning Thielemann)
  • Debug output: note that the --debug option doesn't work in config files.
  • bal: improve --layout doc
  • bal: also mention hledger.css and text encoding in balance doc
  • html: note safari text encoding issue
  • timedot: mention the common journal+timedot file setup [#2238]
  • Install, manual: new shell completions doc. [#986]
  • Config files: rewrite [#2231]
  • examples/csv: an example of YNAB 4 data, and RTL text, with a workaround
  • examples: hledger2beancount.conf

Scripts/addons

  • bin/*: remove obsolete _FLAGS markers from --help
  • examples/csv/csv-hledger-1.py: a python-based CSV converter script

API

  • Hledger.Utils.IO's ansi color helpers now respect the --color option.
  • Hledger.Utils.IO.rgb' now takes Float arguments instead of Word8.
  • Hledger.Cli.Commands.Balance: export budgetReportAs* functions, for use in scripts.
    (Dmitry Astapov)

hledger-ui 1.41

Breaking changes

  • W...
Read more

1.40

09 Sep 22:03
1.40
Compare
Choose a tag to compare

Release notes

Config file support, sortable register, FODS output, prettier tables.

hledger 1.40

Fixes

  • Account tags (and type declarations) declared in multiple files are now combined correctly. #2202
  • Several kinds of report interval now choose a better start date:
    • every Nth day of month from DATE with periodic transactions #2218
    • every M/D from DATE
    • every Nth WEEKDAY from DATE
  • The balance commands' html output no longer repeats the "Total" and "Net" headings when the totals row has multiple lines. And the layout has been improved and made more consistent with the text output.
  • The --tldr flag now also works with the tealdeer tldr client.

Features

  • You can now save command line options in a config file, to be added to your hledger commands either on demand or automatically. (This supersedes the older arguments files feature.) This has been a popular feature request. It has pros and cons, and is experimental; your testing and feedback is welcome. It changes the nature of hledger somewhat, which I have marked by giving this release a more memorable version number (1.40).
  • The balance commands can now output in FODS format, a spreadsheet file format accepted by LibreOffice Calc. If you use LibreOffice this is better than CSV because it works across locales (decimal point vs. decimal comma, character encoding stored in XML header), and it supports fixed header rows and columns, cell types (string vs. number vs. date), separation of number and currency, styles (bold), and borders. You can still extract CSV from FODS/ODS with the ods2csv utility from Hackage. (Henning Thielemann)
  • The register report can now be sorted by date, description, account, amount, absolute amount, or a combination of these. (Michael Rees, #2211)

Improvements

  • Command line processing has been overhauled and should be more robust in certain cases, with tweaked error messages and debug output. Command-specific flags can now optionally appear before the command name. (Though writing them afterward is usually more readable. Addon-specific flags must still come last, after --.)
  • The --rules-file option has been renamed to --rules. The old spelling is still supported as a hidden option.
  • Weekly reports' week headings are now more compact, especially in single-year balance reports. (#2204, Victor Mihalache)
  • The balance command with no report interval, and also balance --budget, now support html output. (Henning Thielemann)
  • In balance commands' html and csv output, "Total:" and "Net:" headings are now capitalised consistently.
  • bs/cf/is reports now show the report interval in their title.
  • The balance commands' text output with the --pretty flag now shows an outer table border and inter-column borders.
  • The check recentassertions error message is now more readable.
  • Timedot format now allows comment lines to be indented.
  • When running the tldr-node-client client, auto-update of the tldr database is now suppressed.
  • When running a tldr client fails, the warning now mentions the required --render flag. #2201
  • The error message for unsupported regular expressions like (?:foo) has been improved.
  • --debug has moved to "General help flags", making it available in more situations.
  • Some verbose debug output from command line processing has been demoted to level 2.
  • Parsing timedot files now gives debug output at level 9.
  • Allow doclayout 0.5.

Docs

  • The hledger/hledger-ui/hledger-web manuals now list all command options as shown by --help.
  • Added an example config file, hledger.conf.sample.
  • The diff and prices commands' help layout has been improved.
  • add's doc described the effect of D wrongly, now fixed.
  • Date adjustments: rewrites and corrections
  • Period headings: added
  • Input: clarify that multiple -f options are allowed
  • Scripts and add-ons: edits, list add-ons again
  • Timeclock: edits, fix ti/to scripts
  • Fixed "hledger and Ledger" links [hledger_site#112]
  • examples/csv: Monzo CSV rules added
  • examples/csv: Tiller CSV rules added
  • examples/csv: Nordea CSV rules added (Arto Jonsson)

Scripts/addons

  • bin/bashrc updates; add years, eachyear scripts
  • bin/hledger-simplebal: ignore config files
  • bin/hledger-script-example: explain shebang commands better
  • bin/hledger-register-max: update/fix

hledger-ui 1.40

Improvements

  • The menu screen now supports the shift arrow and shift T keys, and its header shows any narrowed time period in effect, like other screens.
  • Support brick 2.4.

Docs

  • The description of the shift-T key (set period to today) has been fixed.
  • The shift arrow keys and period narrowing have been clarified

hledger-web 1.40

Improvements

  • We now guess a more robust base url when --base-url is not specified. Now relative links to js/css resources will use the same hostname etc. that the main page was requested from, making them work better when accessed via multiple IP addresses/hostnames without an explicit --base-url setting. (A followup to #2099, #2100 and #2127.)
  • We now require a http[s] scheme in --base-url's value. Previously it accepted just a hostname, and generated bad links.

project changes 1.40

Docs

  • In the hledger 1.29 release notes, Date adjustments has had some corrections.
  • Github release notes template cleanups; fix mac, linux install commands.
  • README: fixed contributors link.
  • RELEASING: updates

Scripts/addons

  • hledger-install: cleanups, bump versions, perhaps fix hledger-interest install
  • hledger-install: clarify some stack/cabal setup messages

Infrastructure/Misc

  • Shake.hs: fix partial warnings
  • Shake cmdhelp: renamed to cmddocs, and it now also updates the options listed in the manuals, and shows progress output. It should be run (at some point) after changing commands' docs or options.
  • Shake txtmanuals: silence all but wide table warnings
  • just file cleanups; update to support just 1.28+
  • just twih: date fixes
  • just ghci: -fobject-code was a mistake, keep everything interpreted
  • just functest: try again to reduce rebuilding/slowdowns when testing
  • just installrel: update for .tar.gz
  • ci scripts: cleanup, fix a macos-ism

credits 1.40

Simon Michael (@simonmichael),
Henning Thielemann (@thielema),
Michael Rees (@reesmichael1),
Arto Jonsson (@artoj),
Victor Mihalache (@victormihalache).

How to install

This release may arrive in your local packaging system soon - look for green badges at hledger.org: Install.
Or you can build it from source, as described on that page.
Or you can use the binaries below:

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.40/hledger-linux-x64.tar.gz
tar xvf hledger-linux-x64.tar.gz && rm -f hledger-linux-x64.tar.gz
cd
hledger --version    # should show 1.40

Mac on 64-bit ARM or Intel

In a terminal window, run these commands to download, unpack, authorise, and install the binaries in your command line PATH.
Note, don't use your web browser; it won't authorise the binaries.

cd /usr/local/bin

# for ARM macs:
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.40/hledger-mac-arm64.tar.gz
tar xvf hledger-mac-arm64.tar.gz && rm -f hledger-mac-arm64.tar.gz

# or for Intel macs:
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.40/hledger-mac-x64.tar.gz
tar xvf hledger-mac-x64.tar.gz && rm -f hledger-mac-x64.tar.gz
cd
hledger --version    # should show 1.40

Windows on 64-bit Intel or ARM

In a powershell window (press Windows-r, type powershell, press enter),

  1. Make a place to keep hledger binaries, and add it to your PATH; this makes running hledger easier. 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)
  1. Download and install the release binaries:
cd $HOME\bin
cp hledger.exe hledger.old.exe    # keep a backup of the old executables, if you like
cp hledger-ui.exe hledger-ui.old.exe
cp hledger-web.exe hledger-web.old.exe
curl https://github.com/simonmichael/hledger/releases/download/1.40/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath . -Force
cd $HOME
hledger --version      # should show 1.40
hledger-ui --version
hledger-web --version
...
Read more

1.34

02 Jun 00:45
1.34
Compare
Choose a tag to compare

Release notes

--tldr (short command examples), reorganised commands list, ghc-debug support

hledger 1.34

Breaking changes

  • check ordereddates no longer supports --date2. Also (not a breaking change): --date2 and secondary dates are now officially deprecated in hledger, though kept for compatibility.

Features

  • You can now get a quick list of example command lines for hledger or its most useful subcommands by adding the --tldr flag (or just --tl). For best appearance you should install the tldr client, though it's not required.

    These short "tldr pages" are a great counterbalance to verbose PTA docs. You can also use tldr without hledger to view the latest versions, or translations: tldr hledger[-COMMAND]. Or you can browse tldr pages online. Consider contributing translations! More tips at https://github.com/simonmichael/hledger/tree/master/doc/tldr.

Improvements

  • The hledger commands list has been reorganised, with commands listed roughly in the order you'll need them.

  • The general flags descriptions in --help have been updated and grouped.

  • Correctness checks now run in a documented order. commodities are now checked before accounts, and tags before recentassertions. When both ordereddates and assertions checks are enabled, ordereddates now runs first, giving more useful error messages.

  • -I/--ignore-assertions is now overridden by -s/--strict (or check assertions), enabling more flexible workflows. Eg you can alias hl="hledger -I" to delay balance assertions checking until you add -s to commands.

  • --color and --pretty now also accept y or n as argument.

  • When built with the ghcdebug flag and started with --debug=-1, hledger can be controlled by ghc-debug clients like ghc-debug-brick or a ghc-debug query script, for analysing memory/profile info.

Fixes

  • hledger COMMAND --man and hledger help TOPIC --man now properly scroll the man page to the TOPIC or COMMAND heading. The exact/prefix matching behaviour has been clarified in help --help.

  • In journal files, include directives with trailing whitespace are now parsed correctly.

  • The help command's help flags are now consistent with other commands (and it has --debug as a hidden flag).

  • Build errors with GHC 8.10 have been fixed. #2198

Docs

  • The tables of contents on hledger.org pages now just list top-level headings, (and the hledger manual structure has been adjusted for this). This makes the hledger manual on hledger.org more scannable and less scary.
  • add: drop lengthy transcript, add simpler example commands (from tldr)
  • Amount formatting: move down, it's not the best first topic
  • balance: mention the --summary-only flag
  • check: expand check descriptions
  • examples: CSV rules: vanguard, fidelity, paypal updates
  • Generating data: rewrite
  • JSON output: link to OpenAPI spec
  • manuals: synopsis, options cleanup/consistency
  • Options: correction, NO_COLOR does not override --color
  • PART 4: COMMANDS: reorganise into groups, like the CLI commands list.
  • Period expressions: mention last day of month adjusting #2005
  • Secondary dates: expand, and declare them deprecated.
  • Time periods cleanup, simplify markup
  • Unicode characters: mention UTF-8 on windows

Scripts/addons

  • Added hledger-pricehist, an alias for the pricehist market price fetcher so that it can appear in hledger's commands list.

hledger-ui 1.34

Features

  • You can now get a quick list of example command lines by running with --tldr (or just --tl). For best appearance, install the tldr client, though it's not required.

Improvements

  • The general flags in --help have been updated and grouped, consistent with hledger.

  • When built with the ghcdebug flag and started with --debug=-1, hledger-ui can be controlled by ghc-debug clients like ghc-debug-brick or a ghc-debug query script, for analysing memory/profile info.

hledger-web 1.34

Features

  • You can now get a quick list of example command lines by running with --tldr (or just --tl). For best appearance, install the tldr client, though it's not required.

Improvements

  • The general flags in --help have been updated and grouped, consistent with hledger.

  • When built with the ghcdebug flag and started with --debug=-1, hledger-web can be controlled by ghc-debug clients like ghc-debug-brick or a ghc-debug query script, for analysing memory/profile info.

Docs

  • A basic OpenAPI specification is provided for hledger-web's JSON-over-HTTP API. This is also applicable to hledger print's JSON output format.

project changes 1.34

Docs

  • move release notes from the hledger_site repo to the main hledger repo
  • github release notes: show the release notes, hide the install instructions by default
  • github release notes: improve windows install commands
  • github release notes: start mentioning github usernames, enabling the Contributors avatar list
  • dev docs: new Developer FAQ, Contributor Quick Start updates

Scripts/addons

  • hledger-install.sh now uses stackage nightly, and a failure on non-Windows platforms has been fixed.

Infrastructure/misc

  • A new release workflow creates github releases, uploads release binaries and generates release notes.
  • Github release binaries for mac and linux are now in .tar.gz format (no longer tarred and zipped).
  • There is a new oldest workflow for testing the oldest GHC we support (currently 8.10.7).
  • The binaries-mac-x64 workflow has been bumped from GHC 9.4 to 9.8.
  • The master branch's ci workflow has been updated to Ubuntu 24.04 and uses the preinstalled GHC & stack, saving some work.
  • md-issue-refs helps generate markdown issue links.
  • relnotes.hs helps generate release notes from changelogs.
  • The project Makefile has now been fully replaced by Justfile.

credits 1.34

Simon Michael (@simonmichael)

How to install

This release may arrive in your local packaging system soon - look for green badges at hledger.org: Install.
Or you can build it from source, as described on that page.
Or you can use the binaries below:

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.34/hledger-linux-x64.tar.gz
tar xvf hledger-linux-x64.tar.gz && rm -f hledger-linux-x64.tar.gz
cd
hledger --version    # should show 1.34

Mac on 64-bit ARM or Intel

In a terminal window, run these commands to download, unpack, authorise, and install the binaries in your command line PATH.
Don't use your web browser, it won't authorise the binaries.:

cd /usr/local/bin

# for ARM macs:
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.34/hledger-mac-arm64.tar.gz
tar xvf hledger-mac-arm64.tar.gz && rm -f hledger-mac-arm64.tar.gz

# or for Intel macs:
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.34/hledger-mac-x64.tar.gz
tar xvf hledger-mac-x64.tar.gz && rm -f hledger-mac-x64.tar.gz

cd
hledger --version    # should show 1.34

Windows on 64-bit Intel or ARM

In a powershell window (press Windows-r, type powershell, press enter),

  1. Make a place to keep hledger binaries, and add it to your PATH; this makes running hledger easier. 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)
  1. Download and install the release binaries:
cd $HOME\bin
cp hledger.exe hledger.old.exe            # keep a backup of the old executables if you like
cp hledger-ui.exe hledger-ui.old.exe
cp hledger-web.exe hledger-web.old.exe
curl https://github.com/simonmichael/hledger/releases/download/1.34/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath . -Force
cd $HOME
hledger --version      # should show 1.34
hledger-ui --version
hledger-web --version
  1. Ensure a default journal file exists, and without a problematic encoding.
    (Not sure why "ascii" is needed here - hledger likes utf8 and understands utf8 BOM headers..
    but the state of our unicode support on Windows
    is really unknown, your input welcome.)
out-file -append -encoding ascii $HOME/.hledger.journal

Once that ...

Read more