ANN: hledger 1.34 released

hledger 1.34

Breaking changes

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

Features

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

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

Improvements

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

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

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

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

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

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

Fixes

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

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

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

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

Docs

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

Scripts/addons

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

hledger-ui 1.34

Features

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

Improvements

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

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

hledger-web 1.34

Features

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

Improvements

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

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

Docs

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

project changes 1.34

Docs

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

Scripts/addons

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

Infrastructure/misc

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

credits 1.34

Simon Michael (@simonmichael)

1 Like

I understand secondary posting dates are also deprecated. You propose to use posting dates instead of secondary ones, however I feel that posting dates have similar problems.

Thanks to secondary posting dates, when I need, I can have accrual accounting dates instead of cash accounting dates. In my workflow, I have secondary posting dates only for expense and revenue posts never for asset, liability or net-worth posts. Why expense and revenue posts?

  • Because my bank records my expenses days later (primary date or cash accounting date) but records also the date when the expense really happened (my secondary date or accrual accounting date).
  • Sometimes I have one revenue delayed, for example, my salary of the month. The real date (primary date or cash accounting date) is not he date I should have received it (secondary date or accrual accounting date).

So,

  • Under normal operation, default date, all my book is balanced with cash accounting.
  • But when I want to know the real income report of the month, I run the income statement (only revenues and expenses accounts) with --date2.

Perhaps, this could be done without secondary dates...