hledger

Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces.

GPL-3.0 License

Stars
2.8K
Committers
172

Bot releases are hidden (Show)

hledger - 1.32.3 Latest Release

Published by simonmichael 9 months ago

Release notes (https://hledger.org/release-notes.html#2024-01-28-hledger-1323)

hledger 1.32.3

Fixes

  • A performance slowdown since 1.29, especially noticeable with many
    accounts and transactions, has been fixed. #2153

  • Balance assertions involving mixed-cost balances are checked correctly again
    (a regression in 1.30). #2150

  • import --catchup works again (a regression in 1.32). #2156

  • --anon is now a deprecated hidden flag that raises an error,
    but is still usable as --obfuscate (also hidden). #2133

  • Balance assertion error messages are clearer, and show the diff again.

hledger-ui 1.32.3

  • Use hledger-1.32.3

  • Allow vty 6.2, brick 2.3

hledger-web 1.32.3

  • Use hledger-1.32.3

project changes 1.32.3

  • bin/hledger-bar: Fix an error when NO_COLOR is not defined;
    allow color when NO_COLOR is defined but empty, per no-color spec;
    and fix shellcheck warnings.
    #2159 (Colin Dean, Simon Michael)

  • bin/hledger-simplebal: Fix shellcheck warnings. (Colin Dean)

credits 1.32.3

Simon Michael,
Colin Dean.

Install

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.32.3:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.32.3

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.32.3/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

In a terminal window,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.32.3/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows 64-bit Intel (or ARM, using emulation)

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
curl https://github.com/simonmichael/hledger/releases/download/1.32.3/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new 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 journal file exists, you can start hledger-web by double-clicking on the icon if you wish.

Windows 7 on 64-bit Intel

  • 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 should show the new version
  • 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

hledger - 1.32.2

Published by simonmichael 10 months ago

hledger 1.32.2

Fixes

  • In CSV field assignments, %FIELD interpolation and \n can be used together again. #2134

  • In timedot data, numbers beginning with a decimal point are accepted again. #2130

  • In a balance --budget report, --layout=tall no longer hides commodity symbols.

  • Value reports seeing a pathological price chain with 1000 or more
    steps now write their warning to the console, not a debug log file.

Improvements

  • Allow megaparsec 9.6

Docs

  • Updated:
    Queries,
    Periodic transactions,
    Auto postings,
    Assertions and costs,
    Budget report

hledger-ui 1.32.2

Features

  • hledger-ui is now available on Windows (ShrykeWindgrace)

Improvements

  • Use Notepad as default editor on Windows (ShrykeWindgrace)

  • Allow brick 2.2 (Vekhir)

  • Allow megaparsec 9.6

hledger-web 1.32.2

Fixes

  • The --base-url option works again. #2127, #2100

  • Startup messages are more accurate and informative, eg with --socket. #2127

  • The non-working --file-url option has been dropped for now. #2139

Improvements

  • Allow megaparsec 9.6

  • hledger-web's tests now respect and can test command line options.

  • hledger-web's tests now run the app at 127.0.0.1 and port 5000,
    rather than "any of our IPv4 or IPv6 addresses" and 3000.

hledger - 1.32.1

Published by simonmichael 11 months ago

Release notes (https://hledger.org/release-notes.html#2023-12-07-hledger-1321)

hledger 1.32.1

  • Fixed: import with multiple files now updates .latest files correctly. (#2125)

  • Fixed: print --round=hard now properly pads/rounds amounts with inferred costs. (#2123)

  • CSV matcher syntax: mention that ! and & can't be used in the same line yet. (#2088)

  • Drop the "a difference of ..." line from balance assertion failure output.
    I feel it made the message harder to read and isn't really necessary.

  • Declaring the empty payee name with payee "" now works,
    to let hledger check payees accept payee-less transactions.
    (#2119)

  • Built-in tags with special meaning like type: and t: are now implicitly declared,
    so using type: in account declarations or generating t: with timedot letters
    won't cause hledger check tags to fail.
    (#2119)

hledger-ui 1.32.1

  • Use hledger-1.32.1

hledger-web 1.32.1

  • Use hledger-1.32.1

Install

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.32.1:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.32.1

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.32.1/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

In a terminal window,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.32.1/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows 64-bit Intel (or ARM, using emulation)

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
curl https://github.com/simonmichael/hledger/releases/download/1.32.1/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new 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 journal file exists, you can start hledger-web by double-clicking on the icon if you wish.

Windows 7 on 64-bit Intel

  • 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 should show the new version
  • 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

hledger - 1.32

Published by simonmichael 11 months ago

Release notes (https://hledger.org/release-notes.html#hledger-1-32)

More precision control, beancount output, TSV output, --summary-only,
strict/idempotent import, CSV rule enhancements, timedot letters, fixes.

hledger 1.32

Breaking changes

  • Display styles and display precision are now managed more carefully
    during calculations and output, fixing a number of issues (#2111,
    "Precisiongeddon"). In brief:

    • Cost and value reports, such as print -V, now (1) consistently
      apply commodity display styles, and (2) do not add or discard
      decimal digits unnecessarily. (#2105)

    • When "infinite decimals" arise during calculations (eg in value
      reports, or in prices or roi output), these are now shown
      limited to 8 decimal digits rather than 255.

    • Non-print-like reports no longer add trailing decimal marks to
      disambiguate digit group marks (this was an unintended regression
      in 1.31). (#2115)

    • We now document number formatting adjustments made in certain
      reports and output formats (hledger manual > REPORTING CONCEPTS >
      Amount formatting, parseability).

Features

  • Timedot format supports a new letters syntax for easier tagged time logging.
    (#2116)

  • print has a new beancount output format for exporting to Beancount.
    This prints journal output more likely (though not guaranteed) to
    be readable by Beancount.

  • In CSV rules, matchers using regular expressions can now interpolate
    their matched texts into the values they assign to fields (field
    assignment values can reference match groups).
    (#2009) (Jonathan Dowland)

  • In CSV rules, matchers can be negated by prepending !.
    (#2088) (bobobo1618)

  • Multi-column balance reports (from bal, bs, is etc.) can use
    the new --summary-only flag (--summary also works) to display
    just the Total and Average columns (if enabled by --row-total and
    -A/--average) and hide the rest.
    (#1012) (Stephen Morgan)

  • All commands that suport csv output now also support tsv
    (tab-separated values) output. The data is identical, but the fields
    are separated by tab characters and there is no quoting or
    escaping. Tab, carriage return, and newline characters in data are
    converted to spaces (this should rarely if ever happen in practice).
    (#869) (Peter Sagerson).

Improvements

  • Journal format no longer fails to parse Ledger-style lot costs with spaces
    after the {, improving Ledger compatibility.

  • import now does not update any .latest files until it has run
    without error (no failing strict checks, no failure while writing
    the journal file). This makes it more idempotent, so you can run it
    again after fixing problems.

  • print now shows zeros with a commodity symbol and decimal digits
    when possible, preserving more information.

  • print has a new option for controlling amount rounding (#2085):

    • --round=none - show amounts with original precisions (default;
      like 1.31; avoids implying less or more precision than was
      recorded)

    • --round=soft - add/remove decimal zeros in non-cost amounts
      (like 1.30 but also affects balance assertion amounts)

    • --round=hard - round non-cost amounts (can hide significant digits)

    • --round=all - round all amounts and costs

    For the record:
    print shows four kinds of amount: posting amounts,
    balance assertion amounts, and costs for each of those.
    Past hledger versions styled and rounded these inconsistently.
    Since 1.31 they are all styled, and since 1.32 they are rounded as follows:

    hledger-1.32 print amt cost bal balcost
    (default) none none none none
    --round=soft soft none soft none
    --round=hard hard none hard none
    --round=all hard hard hard hard
  • The prices command has had a number of fixes and improvements (#2111):

    • It now more accurately lists the prices that hledger would use
      when calculating value reports (similar to what you'd see with
      hledger bal -V --debug=2).

    • The --infer-reverse-prices flag was confusing, since we always
      infer and use reverse prices; it has been renamed to --show-reverse.

    • --show-reverse and --infer-market-prices flags now combine properly.

    • --show-reverse now ignores zero prices rather than giving an error.

    • Price amounts are now shown styled.

    • Price amounts are now shown with all their decimal digits; or with
      8 decimal digits if they appear to be infinite decimals (which can
      arise with reverse prices).

    • Filtering prices with cur: or amt: now works properly.

Fixes

  • print now styles balance assertion costs consistently, like other
    amounts.

  • import now works with -s/--strict.
    And more generally, when reading multiple input files, eg with
    multiple -f options, strict checks are done only for the overall
    combined journal (not for each individual file).
    (#2113)

  • tag: queries now work when reading CSV files. (#2114)

  • Using a .json or .sql file extension with -o/--outputfile
    now properly selects those output formats.

  • Auto postings no longer break redundant equity/cost detection and
    transaction balancing. (#2110)

  • Amounts set by balance assignment now affect commodity styles again.
    (#2091, a regression in 1.30)

  • Timedot quantities with units are parsed more accurately.
    Eg a quantity like "15m" was evaluated as 0.249999999 not 0.25,
    and since hledger 1.21, it was printed that way also.
    Now we round such quantities to two places during parsing to get
    exact quarter-hour amounts. (#2096)

  • The demo command no longer triggers a JSON decode error in asciinema
    2.3.0. It now also shows a better error message if asciinema fails
    (#2094).

  • Failing balance assertions with a cost now show correct markers in
    the error message. (#2083)

Docs

  • New:

    • Amount formatting, parseability
    • Started new code docs for developers, based in the Hledger module's haddock
  • Updated:

    • aregister
    • commodity directive
    • Commodity display style
    • if table
    • Decimal marks, digit group marks
    • Regular expressions
    • Timedot

hledger-ui 1.32

Fixes

  • The V key now preserves the valuation mode specified at the command
    line, if any. (#2084)

  • The hledger-ui package no longer wastefully builds its modules
    twice.

hledger-web 1.32

Features

  • The hledger-web app on the Sandstorm cloud platform has been updated to
    a recent version (Jacob Weisz, #2102), and now uses Sandstorm's access
    control. (Jakub Zárybnický, #821)

Improvements

  • The --capabilities and --capabilities-header options have been replaced
    with an easier --allow=view|add|edit|sandstorm option.
    add is the default access level, while sandstorm is for use on Sandstorm.
    UI and docs now speak of "permissions" rather than "capabilities".
    (#834)

  • The Sandstorm app's permissions and roles have been renamed for clarity. (#834)

  • Permissions are now checked earlier, before the web app is started,
    producing clearer command line errors when appropriate.

  • Account's adeclarationinfo field is now included in JSON output. (#2097) (S. Zeid)

Fixes

  • The app can now serve on address 0.0.0.0 (exposing it on all interfaces),
    which previously didn't work.
    (#2099) (Philipp Klocke)

  • The broken "File format help" link in the edit form has been fixed. (#2103)

project changes 1.32

Scripts/addons

  • hledger-install.sh: replaced hledger-stockquotes with pricehist

  • added gsheet-csv.hs: fetch a google sheet as CSV

  • added hledger-report1: an example custom compound report, with haskell and bash versions

  • justfile: updated import, time report scripts

Examples

  • New:

    • Fidelity CSV rules
  • Updated:

    • roi-unrealised.ledger (Charlie Ambrose)

Docs

  • New:

    • Started a weekly This Week In Hledger news post, inspired by Matrix.
    • There's now a News page, for This Week In Hledger etc.
    • hledgermatic, an up-to-date, simple journal-first workflow
    • How to record journal entries: added
    • Reporting version control stats: added
    • Moved regression bounty info from the issue tracker to Developer docs > REGRESSIONS.
  • Updated:

    • Checking for errors
    • Common workflows
    • Ledger
    • Simon's old setup
    • Videos
    • All docs now use the cli class instead of shell for command-line examples,
      avoiding inaccurate highlighting.

Infrastructure

  • hledger.org website:

    • Fixed the webhook that was not updating the site on git push.

    • Fixed a problem with cloudflare authentication that was preventing
      automatic TLS certificate renewal on hledger.org.

    • Updated and committed hledger.org's caddy config and short urls (redirects)

    • Enabled https for code.hledger.org and site.hledger.org short urls.

    • Updated the stars.hledger.org redirect
      (we have reached the top 30 github-starred Haskell projects 🌟 🎉).

    • Set up a self-hosted Sandstorm server, and a public hledger-web
      instance (sandbox.hledger.org) in it that is fully writable (until
      spammers find it). Use it as a pastebin for examples, eg.

  • Github CI (continuous integration) workflows have been optimised somewhat:

    • Scheduled weekly builds have been disabled, as they were propagating
      to forks and running wastefully there in some cases.

    • Some repeated rebuilding of the hledger-lib and hledger packages
      that seems unnecessary has been stopped.

    • hledger-ui no longer builds its modules twice.

    • Haddock testing now done only at release time.

    • renamed main CI workflow and branch to "ci"

  • Tools:

    • .ghci: added an :rmain alias, which is like :main but reloads first -
      saves typing, and is useful eg when changing --debug level.

    • make haddock-watch is now fast

Finance

  • Updated project finance scripts, regenerated the journal with consistent precisions.

  • Updated reports with the last few months of data from Open Collective.

credits 1.32

Simon Michael,
Jonathan Dowland,
S. Zeid,
Charlie Ambrose,
Jacob Weisz,
Peter Sagerson,
Philipp Klocke,
Stephen Morgan,
bobobo1618.

Install

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.32:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.32

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.32/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

In a terminal window,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.32/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows 64-bit Intel (or ARM, using emulation)

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
curl https://github.com/simonmichael/hledger/releases/download/1.32/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new 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 journal file exists, you can start hledger-web by double-clicking on the icon if you wish.

Windows 7 on 64-bit Intel

  • 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 should show the new version
  • 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

hledger - 1.31

Published by simonmichael about 1 year ago

Release notes (https://hledger.org/release-notes.html#hledger-1-31)

More tolerant equity/cost matching; print amounts in original style; multi-pivot.

hledger 1.31

Features

  • Multi-pivot: the --pivot option now accepts multiple arguments,
    colon-delimited, to construct account names from multiple fields.
    (#2050, Eric Mertens)

Improvements

  • The print command now more closely replicates the original journal
    amount styles, which is helpful when round-tripping / cleaning up
    journal files:

    • Amounts in conversion transactions could be displayed rounded to a
      lower precision; this no longer happens.
      (#2079)

    • Amounts could be displayed with extra zeros after the decimal mark;
      this no longer happens.

    • Amounts could display with a different precision if the journal
      included a timedot file; this no longer happens.

    • Costs in balance assertions were not displayed with standard
      styles like other amounts; now they are.

    • Zero amounts were always shown as just "0"; now they are shown
      with their original commodity symbol and style. (And if an
      inferred amount has multiple zeros in different commodities, a
      posting is displayed for each of these.)

  • print no longer displays numbers with a single digit group mark
    and no decimal mark, which are ambiguous and hard to re-parse. Now
    if a number has digit group marks the decimal mark will always be
    shown also. Eg 1,000 (where the comma is a thousands separator)
    is now shown as 1,000..

  • The check command's
    balancedwithautoconversion and balancednoautoconversion checks
    have been renamed to autobalanced and balanced.

  • hledger check recentassertions now reports failures at the first
    posting that's more than 7 days later than the latest balance
    assertion (rather than at the balance assertion). This is the thing
    actually triggering the error, and it is more likely to be visible
    or at least closer when you are working at the end of a journal
    file.

    Also, the suggested sample balance assertion now uses the same
    commodity symbol as in the failing posting (the first, if there are
    more than one); and, no longer includes a cleared mark.

  • The import command now shows the file path being imported to.

  • With --pivot, desc is now the preferred spelling for pivoting on
    description.

  • The demo command now ignores an invalid journal file, like the other
    HELP commands.

  • Debug output for equity conversion postings has been improved,
    making troubleshooting easier.

  • Allow aeson 2.2, megaparsec 9.5.

Fixes

  • In journal files, valid multicommodity transactions where the
    matching non-equity postings can't be auto-detected are no longer
    considered an error (as they were in hledger 1.29 and 1.30). Now,
    such transactions are accepted, and --infer-cost has no effect on
    them. This is similar to the behaviour of --cost, --infer-equity,
    and --infer-market-prices. (#2045)

  • In journal files, equity conversion postings are now detected more
    tolerantly, using the same precision as the conversion posting's
    amount (#2041). Eg, the following transaction is now accepted:

    2023-01-01
        Assets               -84.01 USD @ 2.495 GEL
          ; ^ 209.60495 GEL, recognised as a match for the 209.60 below
        Equity:Conversion     84.01 USD
        Equity:Conversion   -209.60 GEL
        Assets               209.60 GEL
    
  • The roi command now reports TWR per period and overall TWR for
    multi-period reports.
    (#2068, Dmitry Astapov)

  • The commands list no longer shows bar when hledger-bar is not installed (#2065),
    and had a few other cleanups.

hledger-ui 1.31

Improvements

  • Allow megaparsec 9.5

hledger-web 1.31

Improvements

  • Allow aeson 2.2, megaparsec 9.5

project changes 1.31

Scripts/addons

  • ft, tt shell scripts for collecting financial and time reports

  • A justfile implementation of ft and tt

Examples

  • self-tracking

  • RPG ledger (Eric Mertens)

Docs

Infrastructure

  • tools, CI: checkembeddedfiles, checkversions

  • Shake: avoid making empty commits

  • make functest-PAT: runs a subset of functional tests

  • Provide a ghc-tags.yaml file to make use of ghc-tags with Hledger easy.

    ghc-tags is a standalone tool to replace the formerly-built-in
    ":ctags" feature (and I presume ":etags") in GHCi. These walked over
    the source and produced a TAGS file (in vim-compatible ctags or
    Emacs-compatible etags format) that allows the relevant editors to
    quickly navigate around function definitions.

    ghc-tags trips over some of the CPP used in Hledger. The solution
    is to provide ghc-tags with explicit CPP defines via a YAML file.
    However, if a YAML file is provided, one also must specify the source
    paths, as the tool XORs config file | paths-on-command-line.

    See https://github.com/arybczak/ghc-tags/issues/6 for more
    information.
    (Jonathan Dowland)

credits 1.31

Simon Michael,
Dmitry Astapov,
Eric Mertens,
Jay Neubrand,
Jonathan Dowland.

Install

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.31:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.31

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.31/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

In a terminal window,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.31/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows 64-bit Intel (or ARM, using emulation)

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
curl https://github.com/simonmichael/hledger/releases/download/1.31/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new 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 journal file exists, you can start hledger-web by double-clicking on the icon if you wish.

Windows 7 on 64-bit Intel

  • 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 should show the new version
  • 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

hledger - 1.30

Published by simonmichael over 1 year ago

Release notes (https://hledger.org/release-notes.html#hledger-1-30)

Boolean queries, easier CSV file management, built-in demos, hledger-ui cash accounts screen, fixes.

hledger 1.30

Breaking changes

  • The CSV reader now properly skips all empty lines, as specified by docs.
    Previously, inner empty lines were not being skipped automatically.
    You might need to adjust the skip count in some CSV rules files.
    (#2024)

  • Timedot format now generates a single multi-posting transaction per
    date line, and supports comments and tags on all lines.
    (#1754)

  • Timeclock format now supports comments and tags.
    Descriptions can no longer contain semicolons.
    (#1220)

Features

  • CSV rules files can now be read directly, as in
    hledger -f foo.csv.rules CMD. By default this will read data
    from foo.csv in the same directory.

  • CSV rules files can use a new source FILE rule to specify the data file,
    with some convenience features:

    • If the data file does not exist, it is treated as empty, not an
      error.

    • If FILE is a relative path, it is relative to the rules file's
      directory. If it is just a file name with no path, it is relative
      to ~/Downloads/.

    • If FILE is a glob pattern, the most recently modified matched file
      is used.

    This helps remove some of the busywork of managing CSV downloads.
    Most of your financial institutions's default CSV filenames are
    different and can be recognised by a glob pattern. So you can put a
    rule like source Checking1*.csv in foo-checking.csv.rules,
    periodically download CSV from Foo's website accepting your browser's
    defaults, and then run hledger import checking.csv.rules to import
    any new transactions. The next time, if you have done no cleanup, your
    browser will probably save it as something like Checking1-2.csv, and
    hledger will still see that because of the * wild card. You can choose
    whether to delete CSVs after import, or keep them for a while as
    temporary backups, or archive them somewhere.
    (Experimental)

  • The balance command has a new --count report type
    which reports posting counts instead of amounts.

  • Full boolean queries, allowing arbitrary use of AND, OR, NOT
    (case insensitive) and parentheses for grouping, are now supported.
    For backward compatibility, these require an expr: prefix.
    Existing queries work as before, and you can mix and match the
    old and new styles if you like.
    (Chris Lemaire)

  • demo: This new command plays brief asciinema screencasts explaining
    various features and use cases. We will add more of these over time.
    (Experimental)

Improvements

  • Add-on commands can now have .js, .lua, or .php file extensions.

  • Generated and modified transactions and postings have the same hidden
    tags (beginning with underscore) as before, but no longer have visible
    tags added by default. Use --verbose-tags if you want them added.

  • We now try harder to ensure less (and its more mode) show our
    ANSI formatting properly in help output.
    If you use some other $PAGER, you may have to configure it yourself
    to show ANSI (or disable ANSI entirely, eg by setting NO_COLOR=1).
    This is now documented in hledger manual > Paging.
    (#2015)

  • The print command's --match mode has been refined.
    Previously, similarity completely outweighed recency, so a
    slightly-more-similar transaction would always be selected no matter
    how old it was. Now similarity and recency are more balanced,
    and it should produce the desired transaction more often.
    There is also new debug output (at debug level 1) for troubleshooting.

  • Miscellaneous commands list updates.
    Help has been added for all published add-on commands (like hledger-lots).

  • The help command's documentation now mentions an issue caused by
    a too-old info program, as on mac.
    (#1770)

Fixes

  • Unbalanced virtual postings with no amount always infer a zero amount.
    This is fixing and clarifying the status quo; they always did this,
    but print always showed them with no amount, even with -x, and
    the behaviour was undocumented.

  • On windows systems with multiple drive letters, the commands list
    could fail to show all installed add-ons.
    (#2040)

  • Balancing a transaction with a balance assignment now properly respects costs.
    (#2039)

  • The commands list no longer lists non-installed addons.
    (#2034)

  • Since hledger 1.25, "every Nth day of month" period rules with N > 28 could
    be calculated wrongly by a couple of days when given certain forecast start dates.
    Eg ~ every 31st day of month with --forecast='2023-03-30..'.
    This is now fixed.
    (#2032)

  • Postings are now processed in correct date order when inferring balance assignments.
    (#2025)

  • Posting comment lines no longer disrupt the underline position in error messages.
    (#1927)

  • Debug output is now formatted to fit the terminal width.

Docs

  • Miscellaneous manual cleanups.

  • Rewrite introductory sections,
    Date adjustment,
    Directives,
    Forecasting,
    etc.

  • Add Paging section.

  • Remove archaic mentions of setenv.

API

  • Renamed: Hledger.Cli.Commands: findCommand -> findBuiltinCommand

hledger-ui 1.30

Features

  • A "Cash accounts" screen has been added, showing
    accounts of the Cash type.

Improvements

  • The top-level menu screen is now the default screen.
    Power users can use the --cash/--bs/--is/--all
    flags to start up in another screen.

  • "All accounts" screen has been moved to the bottom of the list.

  • Screens' help footers have been improved.

Docs

  • The transaction screen's inability to update is now noted.

  • Miscellaneous manual cleanups.

hledger-web 1.30

Fixes

  • A command line depth limit now works properly.
    (#1763)

Docs

  • Miscellaneous manual cleanups.

project changes 1.30

Scripts/addons

  • hledger-bar: new script for making simple bar charts in the terminal

  • hledger-install: also list cabal, stack, pip tool versions

Examples

  • examples/csv: added a more up-to-date CSV makefile

  • examples/i18: Added sample top level account and type declarations in several languages

Docs

  • A shorter, more example-heavy home page on the website.

  • Simplified website and FAQ structure.

credits 1.30

Simon Michael,
Chris Lemaire,
Yehoshua Pesach Wallach.

Install

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.30:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.30

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

At the command line,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.30/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

In a terminal window,

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.30/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows 64-bit Intel (or ARM, using emulation)

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
curl https://github.com/simonmichael/hledger/releases/download/1.30/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new 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 journal file exists, you can start hledger-web by double-clicking on the icon if you wish.

Windows 7 on 64-bit Intel

  • 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 should show the new version
  • 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

Updates

2023-06-02: This release is missing some extra-source-files declarations in hledger/package.yaml and hledger/hledger.cabal, which is harmless when downloading/building from github. (https://hackage.haskell.org/package/hledger-1.30.1 was released for people building from Hackage.)
#2043

hledger - 1.29.2

Published by simonmichael over 1 year ago

Release notes (https://hledger.org/release-notes.html#hledger-1-29-2)

hledger 1.29.2

Breaking changes

  • 1.29's cleanup of the close command has been continued.
    Here are all the changes to close since hledger 1.28:

    • The default behaviour is now to print only one transaction: a closing transaction.

    • To print both closing and opening transactions as before,
      use the new --migrate flag.

    • The accounts closed by default are now just the ALE accounts
      (accounts declared or inferred as type Asset, Liability, or Equity).
      If you don't have account types configured, or
      to close some other set of accounts, provide query arguments that match them.
      To close all accounts as before, use a . argument to match them all.

    • To print a retain earnings transaction for RX accounts (accounts
      of type Revenue or Expense), use the new --retain flag.

    • The equity command alias, removed in 1.29, has been restored.

    • The --open-acct option, removed in 1.29, has been restored.

    • The --closing and --opening flags have been renamed to --close and --open.
      (--close had been removed in 1.29 and is now restored.)

    • The docs have been rewritten. Also the 1.29 release notes now mention
      the breaking change.

    • The command is marked experimental again.

    (#2020)

Fixes

  • type: queries now "see through" account aliases and pivots,
    as they did in hledger <1.27, and as acct: queries do.
    (#2018)

  • The corruption in 1.29's info manual is fixed. (#2023)

  • The 1.29 release notes for periodic reports'/periodic transactions' start dates
    have been improved. Also the hledger manual's "Date adjustment" section
    has been corrected and clarified.

hledger-ui 1.29.2

Improvements

  • A pager is used to show --help output when needed, as in hledger.

Fixes

  • The corruption in 1.29's info manual is fixed. (#2023)

hledger-web 1.29.2

Improvements

  • A pager is used to show --help output when needed, as in hledger.

Fixes

  • The corruption in 1.29's info manual is fixed. (#2023)

project changes 1.29.2

Scripts/addons

  • hledger-install: re-enable hledger-interest, hledger-iadd; add hledger-lots

credits 1.29.2

Simon Michael

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.29.2:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.29.2

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.29.2/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.29.2/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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)

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.29.2/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • 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

Downloads, linux-x64
Downloads, mac-x64
Downloads, windows-x64

hledger - 1.29.1

Published by simonmichael over 1 year ago

Release notes (https://hledger.org/release-notes.html#hledger-1-29)

hledger 1.29.1

Improvements

  • Hledger.Cli.Script now also exports

     Control.Applicative
     Control.Concurrent
     Data.Char
     Data.Functor
     System.IO
     System.IO.Error
    

    and new string helpers

     strip1Char
     stripBy
     strip1By
    
  • Allow building with GHC 9.6.1 (#2011)

Fixes

  • The stats report no longer displays "Exact" in front of dates. (#2012)

Docs

  • remove duplicate in hledger close docs (Yehoshua Pesach Wallach)

hledger-ui 1.29.1

  • Allow building with GHC 9.6.1 (#2011)

hledger-web 1.29.1

  • Allow building with GHC 9.6.1 (#2011)

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.29.1:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.29.1

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.29.1/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.29.1/hledger-mac-x64.zip
unzip hledger-mac-x64.zip && tar xvf hledger-mac-x64.tar && rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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)

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.29.1/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • 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

hledger - 1.29

Published by simonmichael over 1 year ago

Release notes (https://hledger.org/release-notes.html#hledger-1-29)

Tag checking,
flexible multi-period start dates,
flexible cost/conversion posting combining,
new commands list,
hledger manual reorg,
easier close command,
10% more Ledger file compatible

hledger 1.29

Breaking changes

  • Weekly reports are no longer automatically adjusted to start on a
    monday; in some cases you might need to adjust their start date to
    preserve simple week headings (see below).

Features

  • In journal format there is now a tag directive for declaring tag names,
    and the check command now has a tags check to enforce use of declared tag names.

  • Periodic transactions and multi-period reports can now start on any date.
    To enable this while still maintaining pretty good backward compatibility,
    hledger now treats inferred dates, and dates where the day is unspecified,
    as "flexible" (which can be automatically adjusted to interval boundaries),
    and dates specified to the day as "exact" (which can not).
    Eg:

    • A periodic rule like ~ monthly from 2023-01-15 now works as
      you'd expect instead of raising an error. This also improves
      our ability to read Ledger files.

    • Period options like -p 'monthly from 2023/1/15' or -M -b 2023/1/15
      now start the report on exactly 1/15 instead of being adjusted to 1/1.

    Note: periods using in may look partial but are considered to specify exact dates.
    So weekly reports such as -p 'weekly in 2023-01', which previously
    were adjusted to start on a monday, will now start exactly on 2023-01-01.
    This can also cause more verbose column headings.
    To guarantee simple week headings, you must now start such reports
    exactly on a monday, eg -p 'weekly from 2022-12-26 to 2023-02'.
    (#1982)

  • You can now freely combine @/@@ costs and conversion postings
    in a single transaction. This can help readability, and also allows
    more flexibility when recording cost. hledger will check that the
    two notations are in agreement, and ignore the redundancy if they are.
    (Conversion postings are postings to accounts with type V/Conversion
    or name equity:conversion/equity:trade/equity:trading,
    or subaccounts of these. See also COST.)

Improvements

  • hledger's commands list has been reorganised for clarity.
    More add-on commands are now recognised and categorised,
    and unrecognised add-on commands are listed in a more compact
    multi-column layout.
    (Simon Michael, Michael Grünewald)

  • hledger's commands list and command line help now use ANSI (bold
    headings) when supported.

  • hledger's commands list and command line help now use a pager
    (respecting $PAGER) for long output except on MS Windows.

  • hledger's --version output no longer shows + for dev builds made
    in dirty repos (it was buggy).

  • The add command's Description completions now also include payee names
    (declared with payee or recorded in transactions with |),
    not just full descriptions.

  • aregister now supports HTML output.
    (#1996) (Jonathan Dowland)

  • aregister now shows a " (matching query)" hint in report title
    when extra query args (other than date: or depth:) are used,
    to reduce confusion.

  • close now has three modes, --retain/--migrate/--open,
    clarifying its uses and providing more useful defaults.

  • register-match is now the --match mode of the register command.
    (This command was used by ledger-autosync at one point; if you still
    need it, hopefully register --match works similarly.)

  • print-unique has been dropped, because it doesn't
    support print's options, it disorders same-day transactions, I don't
    know of any users or use cases, and it could easily be recreated as
    an addon script.

  • print's JSON output now also includes source positions for --forecast transactions.
    (Chris Lemaire)

  • Journal format now allows the empty commodity symbol to be written
    as "", so it's now possible to declare market prices for it:
    P 2022-01-01 "" $100. This can be useful for timedot data.

  • Inferring costs from equity now happens after transaction balancing,
    not before. As a result, --infer-costs now works in transactions
    where an amount is left blank.

  • account declarations now reject parenthesised account names,
    reducing confusion.
    (Chris Lemaire)

  • Our journal reader now accepts more Ledger syntax, improving Ledger
    file compatibility (#1962). We now test our ability to at least
    read the sample journals from Ledger's baseline functional tests,
    and our success rate has improved from 80% to 90% since 1.28.

    • since is accepted as synonym of from in period expressions
    • apply year and year are accepted as synonyms of Y
    • (lot notes) in amounts and ((valuation expressions)) after amounts are now ignored
    • directives
      A, assert, bucket, capture, check, define,
      expr, eval, python, value,
      apply fixed, apply tag,
      end apply fixed, end apply tag, end apply year
      are now ignored
    • subdirectives of payee, tag, and commodity (other than format) are now ignored
    • pop directive is no longer supported
  • When reading CSV, we now check that assigned account names are valid (parseable).
    (#1978)

Fixes

  • aregister now handles an extra account query correctly. (#2007)

  • balance's --help now mentions --layout=tidy

  • Balance commands with --layout=bare now generate proper table
    layout in HTML output.

  • register's -w/--width option no longer gives ugly parse error messages.

  • stats's --help no longer wrongly claims to support -O/--output-format.

  • Balance assignments with a cost now generate a correct balance assertion. (#1965)

  • The CSV reader now properly skips header lines before attempting to parse records. (#1967)

Scripts/addons

  • Scripts can now use Hledger.Cli.Script, a convenient new prelude which
    helps reduce import boilerplate. It currently re-exports:

    Control.Monad
    Data.Either
    Data.List
    Data.Maybe
    Data.Ord
    Data.Time
    Text.Printf hiding (formatString)
    Data.Text (Text, pack, unpack)
    Safe hiding (at)
    System.Directory
    System.Environment
    System.Exit
    System.FilePath
    System.Process
    Hledger
    Hledger.Cli
    Hledger.Cli.Main (argsToCliOpts)
    

    (Not much of Data.Text/Data.Text.IO because those need to be qualified.)

Docs

  • chunk the hledger manual into parts, rename and rearrange sections for better structure/flow
  • add a cheatsheet demonstrating all the main journal features that I recommend
  • move a number of my not-so-recommended journal features into a less visible "Other syntax" section
  • add: payees/descriptions completion
  • areg: more advice on account-matching
  • bal: --budget: clarify use of print --forecast
  • bal: budget: compare with forecasting; add some tips
  • balance cleanups/reorder
  • check: adjacentconversionpostings was dropped
  • cli: balance: fix link to Budgeting page
  • cli: fix all links to Journal > Tags / Commands > tags
  • codes: improve example suggested by Rob Nielsen
  • csv, timeclock, timedot: clarify comment lines (#1953)
  • csv: add new coinbase example
  • csv: clarify amount-in/amount-out docs (#1970)
  • csv: clarify skip/valid csv semantics (#1967)
  • csv: clarify valid CSV requirements and issues (fix #1966)
  • csv: cleanup, reorder, CSV rules tips -> Working with CSV
  • csv: fix wrong if tables doc; rewrite several sections (#1977)
  • csv: flatten, clean up CSV sections
  • csv: improve Amount field / Setting amounts
  • csv: note -in and -out are used together for one posting (#1970)
  • csv: rules factoring tips
  • csv: try to clarify how CSV fields and hledger fields work
  • document --infer-market-prices with signed costs (#1870)
  • fix duplicate market prices heading breaking info navigation
  • import: note a pitfall with multifile import
  • improve Directives summaries
  • introduction/input/output improvements
  • journal: cheatsheet: clarify date tag
  • journal: rewrite Account names, mention brackets/parentheses (#1915)
  • mention pivoting on a tag with multiple values (#1950)
  • more cost notation docs; describe Ledger and Beancount cost notation
  • more mention of posting order effect on inferring cost (#1959)
  • period expressions doc updates
  • Removed redundant paragraph in documentation. (J. B. Rainsberger)
  • rename directive sections, fix many links
  • reorganise commands list, like the CLI
  • reorganise bin/README & the Scripts page, add entries for recent scripts
  • replace "transaction prices" terminology with "costs"
  • tags: discuss multi-values/overriding (#1950)
  • update market price inference docs per sol
  • Updated section on pivoting. Used synonyms for "member" in cases where there could be confusion with the tag named "member." (Robert Nielsen)
  • use more standard and consistent boilerplate in hledger, ui, web man pages
  • virtual postings: improve wording per Robert Nielsen

hledger-ui 1.29

  • In the help dialog, mention that LEFT shows other screens.

  • In the manual, mention shift-up/down config needed for Terminal.app.

hledger-web 1.29

  • The add form's typeahead now shows non-ascii text correctly.
    (#1961) (Arsen Arsenović)

  • In the manual, improve --base-url's description. (#1562)

project changes 1.29

Scripts/addons

  • hledger-script-example.hs: rename/cleanup
  • sortandmergepostings: new, sorts postings and merges duplicates (Caleb Maclennan, Murukesh Mohanan)
  • hledger-register-max: new, prints the posting with largest historical balance
  • hledger-git: record shows better error output, no longer force-adds ignored files
  • hledger-git: status is fixed, also shows diffs
  • hledger-git: add short command aliases r, s, l
  • hledger-git: -h is fixed
  • hledger-git: pass unrecognised commands to git
  • hledger-install: also install hledger-edit, hledger-plot
  • hledger-install: add support for installing python packages
  • hledger-install: show quieter stack/cabal output
  • hledger-install: align install status list
  • hledger-install: don't list hledger-install.sh in PATH
  • hledger-install: drop hledger-iadd for now https://github.com/hpdeifel/hledger-iadd/issues/71

Docs

  • move most dev docs to doc/
  • Scripting hledger: move plugin types table here
  • Scripts: add hledger-plot, hledger-edit, hledger-fifo (Yann Büchau, Simon Michael)
  • update lots mockups, move to Mockups page
  • split Contributor Guide into Contributor Quick Start, LINKS, ISSUES
  • add REPOS, FILES, DECISIONS
  • CREDITS: updates, link to github contributors list

Infrastructure

  • pr template: mention COMMITS page and prefix convention (#1997)
  • make ghc 9.4 and current stackage nightly the default for dev builds
  • require megaparsec 9.3+ in dev builds, for its useful dbg tool
  • make site-watch: fix runaway recursion, be more verbose
  • new make rules: man-watch
  • new tools: ciwatch, push, pushdocs, gtree
  • misc process updates

credits 1.29

Simon Michael, Chris Lemaire, Caleb Maclennan, Jonathan Dowland, J. B. Rainsberger, Michael Grünewald, Robert Nielsen, Yann Büchau.

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.29:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.29

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.29/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.29/hledger-mac-x64.zip
unzip hledger-mac-x64.zip && tar xvf hledger-mac-x64.tar && rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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)

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.29/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • 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

hledger - 1.28

Published by simonmichael almost 2 years ago

Release notes (https://hledger.org/release-notes.html#hledger-1-28)

new hledger-ui screens, better debug output;
accounts, print, csv-reading improvements;
new hledger-move, watchaccounts scripts

hledger 1.28

Features

  • The accounts command has new flags: --undeclared (show accounts used but not declared),
    --unused (show accounts declared but not used), and --find (find the first account
    matched by the first command argument, a convenience for scripts).
    Also -u and -d short flags have been added for --used and --declared.

  • A new CSV rule intra-day-reversed helps generate transactions in correct order
    with CSVs where records are reversed within each day.

  • CSV rules can now correctly convert CSV date-times with a implicit or explicit timezone
    to dates in your local timezone. Previously, CSV date-times with a different time zone
    from yours could convert to off-by-one dates, because the CSV's timezone was ignored.
    Now,

    1. When a CSV has date-times with an implicit timezone different from yours,
      you can use the timezone rule to declare it.

    2. CSV date-times with a known timezone (either declared by timezone
      or parsed with %Z) will be localised to the system timezone
      (or to the timezone set with the TZ environment variable).

    (#1936)

Improvements

  • print --match now respects -o and -O.

  • print --match now returns a non-zero exit code when there is no acceptable match.

  • Support megaparsec 9.3. (Felix Yan)

  • Support GHC 9.4.

Fixes

  • In CSV rules, when assigning a parenthesised account name to accountN,
    extra whitespace is now ignored, allowing unbalanced postings to be detected correctly.

Scripts/addons

  • bin/hledger-move helps record transfers involving subaccounts and costs,
    eg when withdrawing some or all of an investment balance containing many lots and costs.

  • bin/hledger-git no longer uses the non-existent git record command.
    (#1942) (Patrick Fiaux)

  • bin/watchaccounts is a small shell script for watching the account tree as you make changes.

hledger-ui 1.28

Features

  • New "Balance sheet accounts" and "Income statement accounts" screens have been added,
    along with a new top-level "Menu" screen for navigating between these and the
    "All accounts" screen.

  • hledger-ui now starts in the "Balance sheet accounts" screen by default
    (unless no asset/liability/equity accounts can be detected,
    or command line account query arguments are provided).
    This provides a more useful default view than the giant "All accounts" list.
    Or, you can force a particular starting screen with the new --menu/--all/--bs/--is flags
    (eg, hledger-ui --all to replicate the old behaviour).

Improvements

  • The ENTER key is equivalent to RIGHT for navigation.

  • hledger-ui debug output is now always logged to ./hledger-ui.log rather than the console,
    --debug with no argument is equivalent to --debug=1,
    and debug output is much more informative.

  • Support GHC 9.4.

  • Support megaparsec 9.3 (Felix Yan)

  • Support (and require) brick 1.5, fsnotify 0.4.x.

Fixes

  • Mouse-clicking in empty space below the last list item no longer navigates
    back. It was too obtrusive, eg when you just want to focus the window.
    You can still navigate back with the mouse by clicking the left edge of the window.

  • A possible bug with detecting change of date while in --watch mode has been fixed.

API

  • hledger-ui's internal types have been changed to allow fewer invalid states
    and make it easier to develop and debug.
    (#1889, #1919).

  • Debug logging helpers have been added and cleaned up in Hledger.Ui.UIUtils:
    dbgui
    dbguiIO
    dbguiEv
    dbguiScreensEv
    mapScreens
    screenId
    screenRegisterDescriptions

hledger-web 1.28

Improvements

  • --debug with no argument is now equivalent to --debug=1.

  • Allow megaparsec 9.3 (Felix Yan)

  • Support GHC 9.4

project changes 1.28

Docs

  • Miscellaneous improvements.

Examples

  • Indian National Pension Service CSV rules (Pranesh Prakash)

Infrastructure

  • make site-watch: switch from entr to watchexec.

  • make hoogle-setup, hoogle-serve: run a local hoogle on hledger code.

  • make man-watch-PROG: watch a hledger program's man page as source files change.

credits 1.28

Simon Michael, Felix Yan, Patrick Fiaux.

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.28:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.28

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.28/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.28/hledger-mac-x64.zip
unzip hledger-mac-x64.zip && tar xvf hledger-mac-x64.tar && rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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)

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.28/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • 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

hledger - 1.27.1

Published by simonmichael about 2 years ago

Release notes (https://hledger.org/release-notes.html#hledger-1-27-1)

2022-09-18 hledger-1.27.1

hledger 1.27.1

Fixes

  • Balance commands using -T -O html no longer fail with an error
    when there is no data to report.
    (#1933)

hledger-ui 1.27.1

  • Uses hledger-1.27.1

hledger-web 1.27.1

Fixes

  • The add form no longer gives an error when there is just a single file and no file field showing.
    (#1932)

  • Uses hledger-1.27.1

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.27.1:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.27.1

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.27.1/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.27.1/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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)

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.27.1/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • 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

hledger - 1.27

Published by simonmichael about 2 years ago

Release notes (https://hledger.org/release-notes.html#hledger-1-27)

2022-09-01 hledger-1.27

Infer costs from equity postings, new error checks, improved error messages, fixes.

hledger 1.27

Features

  • hledger check recentassertions (and flycheck-hledger in Emacs if
    you enable this check) requires that all balance-asserted accounts
    have a balance assertion within 7 days before their latest posting.

    This helps remind you to not only record transactions, but also to
    regularly check account balances against the real world, to catch
    errors sooner and avoid a time-consuming hunt.

  • The --infer-costs general flag has been added, as the inverse
    operation to --infer-equity. --infer-costs detects commodity
    conversion transactions which have been written with equity
    conversion postings (the traditional accounting notation) and adds
    PTA cost notation (@@) to them (allowing cost reporting).
    See https://hledger.org/hledger.html#equity-conversion-postings .
    (Stephen Morgan)

Improvements

  • Many error messages have been improved. Most error messages now use
    a consistent, more informative format.
    (#1436)

  • The accounts command has a new --directives flag which makes it
    show valid account directives which you can paste into a journal.

  • The accounts command has a new --positions flag which shows where
    accounts were declared, useful for troubleshooting.
    (#1909)

  • Bump lower bounds for Diff and githash. (Andrew Lelechenko)

  • GHC 8.6 and 8.8 are no longer supported. Building hledger now
    requires GHC 8.10 or greater.

Fixes

  • Account display order is now calculated correctly even when accounts
    are declared in multiple files.
    (#1909)

  • At --debug 5 and up, account declarations info is logged.
    (#1909)

  • hledger aregister and hledger-ui now show transactions correctly
    when there is a type: query.
    (#1905)

  • bal: Allow cumulative gain and valuechange reports.
    Previously, --cumulative with --gain or --valuechange would produce an
    empty report. This fixes this issue to produce a reasonable report.
    (Stephen Morgan)

  • bal: budget goal amounts now respect -c styles (fixes #1907)

  • bal: budget goals now respect -H (#1879)

  • bal: budget goals were ignoring rule-specified start date

  • cf/bs/is: Fixed non-display of child accounts when there is an
    intervening account of another type.
    (#1921) (Stephen Morgan)

  • roi: make sure empty cashflows are skipped when determining first cashflow (Charlotte Van Petegem)
    Empty cashflows are added when the begin date of the report is before the first
    transaction.

Scripts/addons

  • https://hledger.org/scripts.html - an overview of scripts and addons in bin/.

  • paypaljson, paypaljson2csv - download txns from paypal API

  • hledger-check-postable.hs - check that no postings are made to accounts with a postable:(n|no) tag

  • hledger-addon-example.hs - script template

hledger-ui 1.27

Improvements

  • At --debug=2 and up, log debug output to ./debug.log.

  • Use/require brick 1.0+. (#1889)

  • Use hledger 1.27

hledger-web 1.27

Improvements

  • Improve the add form's layout and space usage.

  • Pre-fill the add form's date field.

  • Highlight today in the add form's date picker.

  • Focus the add form's description field by default.

  • Allow an empty description in the add form.

  • Use hledger 1.27

Fixes

  • Respect the add form's file selector again.
    (Simon Michael, Kerstin, #1229)

project changes 1.27

Docs

  • https://hledger.org/ERRORS.html - an overview of hledger's error messages.

  • Rewrite/consolidate cost and conversion docs.

  • New template for github releases, with improved install instructions for binaries.

  • Add modern windows binary install instructions. (Lazar Lazarov, Simon Michael)

  • Fix tables of contents in developer documentation. (Alex Hirzel)

  • Update ACHIEVEMENTS. (Alex Hirzel)

  • Corrected the extension for the CREDITS file. (Pranesh Prakash)

  • Fix broken link in bin/README.md. (David D Lowe)

Examples

  • Add example for capital one credit cards CSV. (max thomas)

Process

  • Revive github projects, set up http://projects.hledger.org shortcut url

  • Many cleanups and improvements to the CI test and binary-generating
    github actions. The CI tests for master now also include
    hledger-lib's doctests.

  • All packages now disallow name shadowing in their code.

  • make scc gives a modern report of code line counts.

  • make ghci-unit-test loads hledger-lib unit tests in GHCI.

credits 1.27

Simon Michael,
Stephen Morgan,
Alex Hirzel,
Pranesh Prakash,
David D Lowe,
Charlotte Van Petegem,
Max Thomas,
Andrew Lelechenko.

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.27:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.27

Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.

Here are platform-specific instructions for the release binaries.
(You can copy & paste each block of commands as a unit to save time.):

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.27/hledger-linux-x64.zip   # can rerun if interrupted
unzip hledger-linux-x64.zip; tar xvf hledger-linux-x64.tar; rm hledger-linux-x64.{zip,tar}        # github workaround, preserves permissions
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.27/hledger-mac-x64.zip
unzip hledger-mac-x64.zip; tar xvf hledger-mac-x64.tar; rm hledger-mac-x64.{zip,tar}              # github workaround, preserves permissions
open .
# for the hledger, hledger-ui, hledger-web icons: right-click, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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)

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.27/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • 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

hledger - 1.26.1

Published by simonmichael over 2 years ago

Release notes (https://hledger.org/release-notes.html#hledger-1-26-1)

hledger 1.26.1

  • require safe 0.3.19+ to avoid deprecation warning

hledger-ui 1.26.1

  • support doclayout 0.4, brick 0.72+

  • require safe 0.3.19+ to avoid deprecation warning

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.26.1:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.26.1

Or, if there are release binaries below suitable for your OS and hardware, you can use those.
Note: release binaries have been updated:

  • 2022-07-31: binaries have been generated with commit b0822c9b9, slightly newer than the 1.26.1 tag
    to avoid a GHC bug. #1900

Here are some approximate per-platform instructions. (You can copy & paste each block of commands as a unit, to save time.)

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.26.1/hledger-linux-x64.zip   # can rerun this if interrupted
unzip hledger-linux-x64.zip
chmod +x hledger hledger-ui hledger-web
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.26.1/hledger-mac-x64.zip
unzip hledger-mac-x64.zip
chmod +x hledger hledger-ui hledger-web
open .
# for the hledger, hledger-ui, hledger-web icons: right-click the executable, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::User)+";"+$HOME+"\bin", [EnvironmentVariableTarget]::User)
$ENV:PATH += ";"+$HOME+"\bin"

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.26.1/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Next steps

Once installed, you could try these quick starts / tutorials:

hledger - 1.26

Published by simonmichael over 2 years ago

Release notes (https://hledger.org/release-notes.html#hledger-1-26)

2022-06-04 hledger-1.26

Miscellaneous improvements.

hledger 1.26

Improvements

  • register and aregister have been made faster, by

    • considering only the first 1000 items for choosing column
      widths. You can restore the old behaviour (guaranteed alignment
      across all items) with the new --align-all flag.
      (#1839, Stephen Morgan)

    • discarding cost data more aggressively, giving big speedups for
      large journals with many costs.
      (#1828, Stephen Morgan)

  • Most error messages from the journal reader and the check command now use
    a consistent layout, with an "Error:" prefix, line and column numbers,
    and an excerpt highlighting the problem. Work in progress.
    (#1436) (Simon Michael, Stephen Morgan)

  • hledger check ordereddates now always checks all transactions
    (previously it could be restricted by query arguments).

  • The --pivot options now supports a status argument, to pivot on transaction status.

  • Update bash completions (Jakob Schöttl)

Fixes

  • Value reports with --date2 and a report interval (like hledger bal -VM --date2)
    were failing with a "expected all spans to have an end date" error since 1.22;
    this is now fixed.
    (#1851, Stephen Morgan)

  • In CSV rules, interpolation of a non-existent field like %999 or %nosuchfield
    is now ignored (previously it inserted that literal text).
    Note this means such an error will not be reported;
    Simon chose this as the more convenient behaviour when converting CSV.
    Experimental.
    (#1803, #1814) (Stephen Morgan)

  • --infer-market-price was inferring a negative price when selling.
    (#1813, Stephen Morgan)

  • Allow an escaped forward slash in regular expression account aliases.
    (#982, Stephen Morgan)

  • The tags command now also lists tags from unused account declarations.
    It also has improved command-line help layout.
    (#1857)

  • hledger accounts now shows its debug output at a more appropriate level (4).

hledger-ui 1.26

  • Uses hledger 1.26.

hledger-web 1.26

Fixes

  • Don't add link URLs when printing.

Improvements

  • Now builds with GHC 9.2.

  • Uses hledger 1.26.

project changes 1.26

Scripts/addons

  • renamed hledger-number.sh to hledger-simplebal

  • added hledger-git, hledger-pijul

  • fin (and bin) scripts show available scripts and their help

  • renamed aliases.sh to bashrc

  • Get hledger-print-location working. (Stephen Morgan)

Docs

  • README cleanup, inspired by feedback from README reviewer Lars Wirzenius.

  • Clearer sponsoring info and more complete sponsor lists on website and README.

  • The new https://github.com/simonmichael/hledger_finance repo
    keeps track of our public finances (on Open Collective, Liberapay etc.)

Examples

  • invoice: calculate dates accurately on last days of month

Process

  • Stackage nightly and GHC 9.2 are now the default for dev builds.

  • CI workflows:

    • Workflows and binaries have more consistent naming, mentioning platform and architecture.
    • The main test workflow is now linux-x64-test, replacing push and pull.
      It runs for both pushes and pull requests, and generates binaries on every run.
    • Pushes/merges to master, including Simon's, are required to have passed
      linux-x64-test on another github branch first.
    • Mac and Windows binaries are now stripped also (if applicable).
  • make buildtimes, make buildtimes-cabal show GHC codegen times.

credits 1.26

Simon Michael,
Stephen Morgan,
Jakob Schöttl,
Patrik Keller.

Installing

At https://hledger.org/install, binary packages should be available for this release within a few days (look for green badges).

Or, you can build from source as described there, after cloning at tag 1.26:
git clone https://github.com/simonmichael/hledger --depth 1 -b 1.26

Or, if there are release binaries below suitable for your OS and hardware, you can use those.
(Release binaries have been updated:

  • 2022-06-05: linux-x64 binaries updated to run at normal speed. #1867
  • 2022-06-08: windows-x64 binaries fixed. #1869)

Here are some approximate per-platform instructions. (You can copy & paste each block of commands as a unit, to save time.)

GNU/Linux on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.26/hledger-linux-x64.zip   # can rerun this if interrupted
unzip hledger-linux-x64.zip
chmod +x hledger hledger-ui hledger-web
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Mac on 64-bit Intel

cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/1.26/hledger-mac-x64.zip
unzip hledger-mac-x64.zip
chmod +x hledger hledger-ui hledger-web
open .
# for the hledger, hledger-ui, hledger-web icons: right-click the executable, Open, confirm it's ok to run
cd -
hledger --version  # should show the new version
touch $HOME/.hledger.journal   # ensure a default journal file exists

Windows on 64-bit Intel

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

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
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::User)+";"+$HOME+"\bin", [EnvironmentVariableTarget]::User)
$ENV:PATH += ";"+$HOME+"\bin"

Download and install the release binaries:

cd $HOME\bin
curl https://github.com/simonmichael/hledger/releases/download/1.26/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
Expand-Archive hledger-windows-x64.zip -DestinationPath .
rm hledger-windows-x64.zip
cd $HOME
hledger --version           # should show the new version

And ensure a default journal file exists:

out-file -append -encoding ascii $HOME/.hledger.journal

Problems:

  • Starting hledger/hledger-web by double-clicking their icon won't work; run them from a cmd or powershell window instead.

Windows 7 on 64-bit Intel, using Firefox

  • 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 should show the new version
  • echo # >> .hledger.journal to ensure a default journal file exists

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 because Explorer's command window is too small;
    configure that to be larger, or run hledger-web from a command window.
  • hledger or hledger-web may fail to run if there is not enough memory available.

Next steps

Once installed, you could try these quick starts / tutorials:

hledger - 1.25

Published by simonmichael over 2 years ago

Release notes (https://hledger.org/release-notes.html#hledger-1-25)

2022-03-04 hledger 1.25

Account type and tag querying, infer equity postings from @ notation, easily-consumed "tidy" CSV output.

hledger 1.25

Breaking changes

  • Journal format's account NAME TYPECODE syntax, deprecated in 1.13, has been dropped.
    Please use account NAME ; type:TYPECODE instead.
    (Stephen Morgan)

  • The rule for auto-detecting "cash" (liquid asset) accounts from account names
    for the cashflow report has been simplified.
    If you have been using the cashflow report, without explicitly declaring Cash accounts,
    you might notice a change, and might need to declare your Cash accounts explicitly
    (by adding type:C tags to top-level cash account directives).

Features

  • The new type:TYPECODES query matches accounts by their accounting type.
    Account types are declared with a type: tag in account directives,
    or inferred from common english account names, or inherited from parent accounts,
    as described at [Declaring accounts > Account types].
    This generalises the account type detection of balancesheet, incomestatement etc.,
    so you can now select accounts by type without needing fragile account name regexps.
    Also, the accounts command has a new --types flag to show account types.
    Eg:

    hledger bal type:AL  # balance report showing assets and liabilities
    hledger reg type:x   # register of all expenses
    hledger acc --types  # list accounts and their types
    

    (#1820,
    #1822)
    (Simon Michael, Stephen Morgan)

  • The tag: query can now also match account tags, as defined in account directives.
    Subaccounts inherit tags from their parents.
    Accounts, postings and transactions can be filtered by account tag.
    (#1817)

  • The new --infer-equity flag replaces the @/@@ price notation in commodity
    conversion transactions with more correct equity postings (when not using -B/--cost).
    This makes these transactions fully balanced, and preserves the accounting equation.
    For example:

    2000-01-01
      a             1 AAA @@ 2 BBB
      b            -2 BBB
    
    $ hledger print --infer-equity
    2000-01-01
      a                               1 AAA
      equity:conversion:AAA-BBB:AAA  -1 AAA
      equity:conversion:AAA-BBB:BBB   2 BBB
      b                              -2 BBB
    

    equity:conversion is the account used by default. To use a different account,
    declare it with an account directive and the new V (Conversion) account type.
    Eg:

    account Equity:Trading    ; type:V
    

    (#1554) (Stephen Morgan, Simon Michael)

  • Normalised, easy-to-process "tidy" CSV data can now be generated with --layout tidy -O csv.
    In tidy data, every variable is a column and each row represents a single data point
    (cf https://vita.had.co.nz/papers/tidy-data.html).
    (#1768,
    #1773,
    #1775)
    (Stephen Morgan)

Improvements

  • Strict mode (-s/--strict) now also checks periodic transactions (--forecast)
    and auto postings (--auto).
    (#1810) (Stephen Morgan)

  • hledger check commodities now always accepts zero amounts which have no commodity symbol.
    (#1767) (Stephen Morgan)

  • Relative smart dates may now specify an arbitrary number of some period into the future or past).
    Some examples:

    • in 5 days
    • in -6 months
    • 5 weeks ahead
    • 2 quarters ago

    (Stephen Morgan)

  • CSV output now always disables digit group marks (eg, thousands separators),
    making it more machine readable by default.
    (#1771) (Stephen Morgan)

  • Unicode may now be used in field names/references in CSV rules files.
    (#1809) (Stephen Morgan)

  • Error messages improved:

    • Balance assignments
    • aregister
    • Command line parsing (less "user error")

Fixes

  • --layout=bare no longer shows a commodity symbol for zero amounts.
    (#1789) (Stephen Morgan)

  • balance --budget no longer elides boring parents of unbudgeted accounts
    if they have a budget.
    (#1800) (Stephen Morgan)

  • roi now reports TWR correctly

    • when there are several PnL changes occurring on a single day
    • and also when investment is fully sold/withdrawn/discounted at the end of a particular reporting period.

    (#1791) (Dmitry Astapov)

Documentation

  • There is a new CONVERSION & COST section, replacing COSTING.
    (#1554)

  • Some problematic interactions of account aliases with other features have been noted.
    (#1788)

[Declaring accounts > Account types]: (https://hledger.org/hledger.html#account-types

hledger-ui 1.25

  • Uses hledger 1.25.

hledger-web 1.25

  • Uses hledger 1.25.

project changes 1.25

Scripts/addons

  • hledger-install.sh now also installs Pavan Rikhi's hledger-stockquotes tool.

  • The bin/hledger-number addon was added.

  • The bin/hledger-check-fancyassertions addon now shows docs in --help.

  • A new invoice-making script was added: examples/invoicing/invoice-script/invoice

Process/tools

  • The RELEASING doc and release process has been updated,
    and a new helper script added: tools/releaseprep.
    make hackageupload now only works from a branch named
    VERSION-branch or VERSION-release. Ie, making releases from master
    is no longer allowed, a release branch is always required,

  • CI: The commitlint check is more robust, and now runs only in
    the push to master and pull request workflows, and not eg when
    building release binaries. linux-x64 binaries are now built
    with ghc 9.0, not 8.10. Workflow, branch, and binary names
    have been improved.

  • make ghci-ui/make ghcid-ui now use older ghc 8.10 to avoid
    ghc 9.0-triggered failures.

  • hls support: The hie.yaml added to help hls work on mac m1
    has been moved out of the way, since it probably makes things worse
    on other architectures.

credits 1.25

Simon Michael,
Stephen Morgan,
Dmitry Astapov,
Patrik Keller.

How to install

You can build this release from tag 1.25, or try the binaries below, or see https://hledger.org/install for other install methods.

About these binaries:
Download and unzip the appropriate zip file. Unix and mac users will need to chmod +x the binaries to make them executable. Mac users will need to mark them as trusted, eg right-click the file in Finder and option-click Open. Windows users will need to do something similar. There is no hledger-ui binary for Windows.

hledger - 1.24.99.2 (1.25 preview 2)

Published by simonmichael over 2 years ago

This is an early preview of the WIP hledger 1.25, with binaries for easy installation by testers and early adopters. Your testing and feedback is appreciated and will make the final release better.

You can build this prerelease from tag 1.24.99.2, or try the CI binaries below. Download and unzip the appropriate zip file. Unix and mac users will need to chmod +x the binaries to make them executable. Mac users will need to mark them as trusted, eg right-click the file in Finder and option-click Open. WIndows users will need to do something similar. There is no hledger-ui binary for Windows.

Changes since 1.24

hledger 1.24.99.2 2022-02-05

Breaking changes

  • Journal format's account NAME TYPECODE syntax, deprecated in 1.13, has been dropped.
    Please use account NAME ; type:TYPECODE instead.
    (Stephen Morgan)

  • The rule for auto-detecting "cash" (liquid asset) accounts from account names
    for the cashflow report has been simplified.
    If you have been using the cashflow report, without explicitly declaring Cash accounts,
    you might notice a change, and might need to declare your Cash accounts explicitly
    (by adding type:C tags to top-level cash account directives).

Features

  • The new type:TYPECODES query matches accounts by their accounting type.
    Account types are declared with a type: tag in account directives,
    or inferred from common english account names, or inherited from parent accounts,
    as described at [Declaring accounts > Account types].
    This generalises the account type detection of balancesheet, incomestatement etc.,
    so you can now select accounts by type without needing fragile account name regexps.
    Also, the accounts command has a new --types flag to show account types.
    Eg:

    hledger bal type:AL  # balance report showing assets and liabilities
    hledger reg type:x   # register of all expenses
    hledger acc --types  # list accounts and their types
    

    (#1820, #1822) (Simon Michael, Stephen Morgan)

  • The tag: query can now also match account tags, as defined in account directives.
    Subaccounts inherit tags from their parents.
    Accounts, postings and transactions can be filtered by account tag.
    (#1817)

  • The new --infer-equity flag replaces the @/@@ price notation in commodity
    conversion transactions with more correct equity postings (when not using -B/--cost).
    This makes these transactions fully balanced, and preserves the accounting equation.
    For example:

    2000-01-01
      a             1 AAA @@ 2 BBB
      b            -2 BBB
    
    $ hledger print --infer-equity
    2000-01-01
      a                               1 AAA
      equity:conversion:AAA-BBB:AAA  -1 AAA
      equity:conversion:AAA-BBB:BBB   2 BBB
      b                              -2 BBB
    

    equity:conversion is the account used by default. To use a different account,
    declare it with an account directive and the new V (Conversion) account type.
    Eg:

    account Equity:Trading    ; type:V
    

    (#1554) (Stephen Morgan, Simon Michael)

  • Normalised, easy-to-process "tidy" CSV data can now be generated with --layout tidy -O csv.
    In tidy data, every variable is a column and each row represents a single data point
    (cf https://vita.had.co.nz/papers/tidy-data.html).
    (#1768, #1773, #1775) (Stephen Morgan)

Improvements

  • Strict mode (-s/--strict) now also checks periodic transactions (--forecast)
    and auto postings (--auto).
    (#1810) (Stephen Morgan)

  • hledger check commodities now always accepts zero amounts which have no commodity symbol.
    (#1767) (Stephen Morgan)

  • Relative smart dates may now specify an arbitrary number of some period into the future or past).
    Some examples:

    • in 5 days
    • in -6 months
    • 5 weeks ahead
    • 2 quarters ago

    (Stephen Morgan)

  • CSV output now always disables digit group marks (eg, thousands separators),
    making it more machine readable by default.
    (#1771) (Stephen Morgan)

  • Error messages improved:

    • Balance assignments
    • aregister
    • Command line parsing (less "user error")

Fixes

  • --layout=bare no longer shows a commodity symbol for zero amounts.
    (#1789) (Stephen Morgan)

  • balance --budget no longer elides boring parents of unbudgeted accounts
    if they have a budget.
    (#1800) (Stephen Morgan)

  • roi now reports TWR correctly

    • when there are several PnL changes occurring on a single day
    • and also when investment is fully sold/withdrawn/discounted at the end of a particular reporting period.

    (#1791) (Dmitry Astapov)

Documentation

  • There is a new CONVERSION & COST section, replacing COSTING. (#1554)

  • Some problematic interactions of account aliases with other features have been noted. (#1788)

[Declaring accounts > Account types]: (https://hledger.org/hledger.html#account-types

hledger-ui 1.24.99.2 2022-02-05

  • Use hledger 1.24.99.2

hledger-web 1.24.99.2 2022-02-05

  • Use hledger 1.24.99.2

hledger-lib 1.24.99.2 2022-02-05

  • hledger-lib now builds with GHC 9.2 and latest deps. (#1774)

  • Journal has a new jaccounttypes map.
    The journalAccountType lookup function makes it easy to check an account's type.
    The journalTags and journalInheritedTags functions look up an account's tags.
    Functions like journalFilterPostings and journalFilterTransactions,
    and new matching functions matchesAccountExtra, matchesPostingExtra
    and matchesTransactionExtra, use these to allow more powerful matching
    that is aware of account types and tags.

  • Journal has a new jdeclaredaccounttags field
    for easy lookup of account tags.
    Query.matchesTaggedAccount is a tag-aware version of matchesAccount.

  • Renamed: CommodityLayout to Layout.

hledger - 1.24.99.1 (1.25 preview 1)

Published by simonmichael almost 3 years ago

This is not a full hledger release, just an early preview of the 1.25 release for testers and early adopters. Your testing and feedback will help make the final release better! Preview releases are new in 2022, RELEASING has more details.

Changelog

hledger 1.24.99.1 2022-01-06

Features

  • The new --infer-equity flag replaces @/@@ prices in commodity
    conversion transactions with equity postings, making them fully
    balanced and preserving the accounting equation. (When not doing
    cost reporting; --cost/-B overrides and disables --infer-equity.)
    For example, hledger print --infer-equity will show:

    2000-01-01
      a   1 AAA @@ 2 BBB
      b  -2 BBB
    

    as:

    2000-01-01
      a                               1 AAA
      equity:conversion:AAA-BBB:AAA  -1 AAA
      equity:conversion:AAA-BBB:BBB   2 BBB
      b                              -2 BBB
    

    The equity:conversion account name is used by default. You can use
    another account by declaring it with the new Conversion/V
    account type (a subtype of Equity/E), eg:

    account Equity:Currency Conversions   ; type: V
    
  • Normalised, easy-to-process "tidy" CSV data can now be generated with --layout tidy -O csv.
    In tidy data, every variable is a column and each row represents a single data point
    (cf https://vita.had.co.nz/papers/tidy-data.html).
    (#1768, #1773, #1775) (Stephen Morgan)

Improvements

  • CSV output now always disables digit group marks (eg, thousands separators),
    making it more machine readable by default.
    (#1771) (Stephen Morgan)

Fixes

  • ;roi: fixes #1791 (fix TWR when investment=0, several pnls per day) (Dmitry Astapov)

Documentation

  • Account aliases' ability to cause malformed account names is noted. (#1788)

  • There is a new CONVERSION & COST section, replacing COSTING. (#1554)

hledger-ui 1.24.99.1 2022-01-06

  • Use hledger 1.24.99.1

hledger-web 1.24.99.1 2022-01-06

  • Use hledger 1.24.99.1

hledger-lib 1.24.99.1 2022-01-06

Improvements

  • Costing has been changed to ConversionOp with three options:
    NoConversionOp, ToCost, and InferEquity.
    The first correspond to the previous NoCost and Cost options, while the
    third corresponds to the --infer-equity flag. This converts transactions with costs
    (one or more transaction prices) to transactions with equity:conversion postings.
    It is in ConversionOp because converting to cost with -B/--cost and inferring conversion
    equity postings with --infer-equity are mutually exclusive.
    The cost_ record of ReportOpts has been changed to conversionop_.

  • hledger-lib now builds with GHC 9.2 and newer libs (#1774).

  • Renamed: CommodityLayout to Layout.
    (Stephen Morgan)

Installing

You can build this prerelease from source (tag 1.24.99.1).
Or, you can try the CI binaries below. Download the appropriate "hledger-PLATFORM.zip" file and unzip it to get 2 or 3 hledger binaries in the current directory. On GNU/Linux, you will need to chmod +x these files to make them executable. They should run on most GNU/Linux machines with x64 or (when provided) arm32v7 architecture. On mac machines, you will need to chmod +x them and then mark them as trusted: in Finder, right-click the file then option-click Open. On windows machines you'll need to do something similar. There is no hledger-ui binary for Windows.

hledger - 1.24.1

Published by simonmichael almost 3 years ago

https://hledger.org/release-notes.html#hledger-1-24-1

hledger 1.24.1

Fixes

  • balance --declared is now filtered correctly by a not:ACCT query.
    (#1783)
  • More reliable --version output, with commit date and without patch level.

hledger-ui 1.24.1

Fixes

  • An extra "root" account is no longer shown (a regression in 1.24).
    (#1782)
  • Declared accounts are now filtered correctly by a not:ACCT query.
    (#1783)
  • More reliable --version output, with commit date and without patch level.

hledger-web 1.24.1

Fixes

  • More reliable --version output, with commit date and without patch level.

Installing

This release may be packaged for your system: check https://hledger.org/install.
Or, you can try the CI binaries below. Download the appropriate "hledger-PLATFORM.zip" file below. Unzip it to get 2 or 3 hledger binaries in the current directory. On GNU/Linux, you will need to chmod +x these files to make them executable. They should run on most GNU/Linux machines with x64 or (when provided) arm32v7 architecture. On mac machines, you will need to chmod +x them and then mark them as trusted: in Finder, right-click the file then option-click Open. On windows machines you'll need to do something similar. There is no hledger-ui binary for Windows.

hledger - 1.24

Published by simonmichael almost 3 years ago

Installing

This release may be packaged for your system: check https://hledger.org/download.html#binary-packages. Or, you can try the binaries built by our github CI setup, below. Notes:

  • Download and unzip the appropriate "hledger-PLATFORM.zip" file below. This will unpack 2 or 3 hledger binaries into the current directory. On mac and unix machines, you will need to chmod +x these files to make them executable.

  • Windows binaries are built on Windows Server 2019. There is no hledger-ui binary for Windows.

  • Mac binaries are built on macos 10.15 catalina. You will need to mark them as trusted before you can run them: run open . to view the current folder in Finder; control-click hledger; option-click "Open"; allow running it.

  • Linux binaries are static and should run on most GNU/Linux machines with x64 or (when provided) arm32v7 architecture.

Release notes

New report layout options with less eliding, hledger-ui mouse support, misc fixes and improvements.
https://hledger.org/release-notes.html#hledger-1-24

hledger - 1.23

Published by simonmichael about 3 years ago

Capital gains report,
separate symbol/number display,
command line commodity styling,
budget selection,
weekday/weekend recurrence,
10% speedup,
fixes.

Release notes: https://hledger.org/release-notes.html#hledger-1-23

This release may be packaged for your system: check https://hledger.org/download.html#binary-packages. Or, you can try the binaries built by our github CI setup, below. Notes:

  • Download and unzip the appropriate "hledger-PLATFORM.zip" file below. This will unpack 2 or 3 hledger binaries into the current directory. On mac and unix machines, you will need to chmod +x these files to make them executable.

  • Windows binaries are built on Windows Server 2019. There is no hledger-ui binary for Windows.

  • Mac binaries are built on macos 10.15 catalina. You will need to mark them as trusted before you can run them: run open . to view the current folder in Finder; control-click hledger; option-click "Open"; allow running it.

  • Linux binaries are static and should run on most GNU/Linux machines with x64 or (when provided) arm32v7 architecture.