github simonmichael/hledger 1.25

latest releases: 1.40, hledger-web-1.40, hledger-ui-1.40...
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)

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.

Don't miss a new hledger release

NewReleases is sending notifications on new releases.