Skip to content

Releases: ledger/ledger


30 Mar 07:44
@tbm tbm
Choose a tag to compare
  • Fix divide by zero (bugs #777 and #2207)

  • Increase string size limit in src/unistring.h assert (bug #2174)

  • Require tzdata for Nix flake build (bug #2213)


03 Mar 10:51
@tbm tbm
Choose a tag to compare
  • Fix regression leading to incorrect error about format directives (bug #2205)

  • Add information about compile features to --version

  • Fix compiler warnings by minimizing the use of deprecated APIs

  • Update flake.nix to match nixpkgs ledger/default.nix

  • Remove unused Python server related code

  • Various documentation improvements


08 Feb 07:29
@tbm tbm
Choose a tag to compare
  • Use $PAGER when environment variable is set (bug #1674)

  • Make --depth correctly fold postings to accounts of greater depth into the parent at the specified level (bug #987)

  • When using wild-cards in the include directive, include matched files in sorted order (bug #1659)

  • Ensure absolute path for include (bug #2075)

  • Try to use $XDG_HOME_CONFIG/ledger/ledgerrc or ~/.config/ledger/ledgerrc first

  • Improve Python 3 support and drop support for Python 2

  • Add support for automatically reading files encrypted with GPG (bug #1949)

  • Add support for a "debit" column in the convert command (bug #1120)

  • Fix parsing of files without end of line (bug #516)

  • Fix incorrect parsing of expressions containing a - without spaces (bug #2001)

  • Fix payee metadata on postings not being validated and payee aliases not being honored (bug #556 & bug #1892)

  • Fix ledger interpreting a posting with 0 difference as a null-posting, which leads to it auto-balancing the posting (bug #1942)

  • Correctly escape all string values in lisp report (bug #2034)

  • Fix a regression where empty commodities were shown (bug #1969)

  • Fix a regression where using multiple commodities in one transaction triggers an assertion (bug #1998)

  • Fix --time-colon for negative time amounts

  • Use correct int return type for stream input operations (bug #2058)

  • Use amount_width for balance report

  • Remove some UTF-8 code that was having no effect (bug #2061)

  • Fix unrounding for equity

  • Fix SIGABRT when python subcommand raises an exception

  • Improve XML reports

  • Support building on older versions of CMAKE (less than 3.7)

  • Fix compilation with Boost 1.76 (bug #2030)

  • Fix Msys2 MinGW build (bug #1905)

  • Fix unicode problems on Windows (bug #1986)

  • Fix the issue that with Boost >= 1.77 include directive cannot find the file to include for stdin (-f -). Also for -f - when include cannot find the file it reports the error with full path now. (bug #2057 & bug #2092)

  • Fix Nix build

  • Rename quoted_rfc4180 to quoted_rfc, as numbers used in function names confuses the parser (#2007).

  • Numbers are no longer permitted in value expression function names.

  • Various documentation improvements


18 May 05:46
@tbm tbm
Choose a tag to compare
  • Fix regression with expression evaluation by reverting commit Correction to the way parens are parsed in query expressions (bug #1894)
  • Fix --invert breakage by reverting commit Change --invert to invert displayed amounts and totals, not amounts (bug #1895)
  • Fix performance regression by reverting commit Compare price annotations using their textual rendering (bug #1907)
  • Fix library path issue (bug #1885)
  • Allow specifying the Python version (bug #1893)
  • Some documentation fixes


01 May 08:43
@tbm tbm
Choose a tag to compare
  • Port Python support to Python 3

  • Entities are no longer regarded as defined due to being part of a
    cleared transaction. --explicit is effectively enabled by default
    and is now a no-op (PR #1819)

  • Add --average-lot-prices to show the average of lot prices

  • Add support for %F date format specifier (bug #1775)

  • Add commodity_price(NAME, DATE) function

  • Add set_commodity_price(NAME, DATE) function

  • Fix buffer overflow when evaluating date

  • Fix balance assertions on accounts with virtual posts (bug #543)

  • Fix segfault with ledger print (bug #1850)

  • Ensure that apply directives (like apply account) have the
    required argument (bug #553)

  • Format annotations using a date format that can be parsed

  • Change --invert to invert displayed amounts and totals, not amounts
    (bug #1803)

  • Correct the way parens are parsed in query expressions

  • Compare price annotations using their textual rendering

  • Fix build failure with utfcpp 3.0 (bug #1816)

  • Fix build failure due to ambiguous type (bug #1833)


31 Mar 04:05
@tbm tbm
Choose a tag to compare
  • Properly reject postings with a comment right after the flag (bug #1753)

  • Make sorting order of lot information deterministic (bug #1747)

  • Fix bug in tag value parsing (bug #1702)

  • Remove the org command, which was always a hack to begin with (bug #1706)

  • Provide Docker information in README

  • Various small documentation improvements


06 Feb 00:38
@tbm tbm
Choose a tag to compare
  • Increase maximum length for regex from 255 to 4095 (bug #981)

  • Initialize periods from from/since clause rather than earliest transaction date (bug #1159)

  • Check balance assertions against the amount after the posting (bug #1147)

  • Allow balance assertions with multiple posts to same account (bug #1187)

  • Fix period duration of "every X days" and similar statements (bug #370)

  • Make option --force-color not require --color anymore (bug #1109)

  • Add quoted_rfc4180 to allow CVS output with RFC 4180 compliant quoting.

  • Add support for --prepend-format in accounts command

  • Fix handling of edge cases in trim function (bug #520)

  • Fix auto xact posts not getting applied to account total during journal parse (bug #552)

  • Transfer null_post flags to generated postings

  • Fix segfault when using --market with --group-by

  • Use amount_width variable for budget report

  • Keep pending items in budgets until the last day they apply

  • Fix bug where .total used in value expressions breaks totals

  • Make automated transactions work with assertions (bug #1127)

  • Improve parsing of date tokens (bug #1626)

  • Don't attempt to invert a value if it's already zero (bug #1703)

  • Do not parse user-specified init-file twice

  • Fix parsing issue of effective dates (bug #1722, TALOS-2017-0303, CVE-2017-2807)

  • Fix use-after-free issue with deferred postings (bug #1723, TALOS-2017-0304, CVE-2017-2808)

  • Fix possible stack overflow in option parsing routine (bug #1222, CVE-2017-12481)

  • Fix possible stack overflow in date parsing routine (bug #1224, CVE-2017-12482)

  • Fix use-after-free when using --gain (bug #541)

  • Python: Removed double quotes from Unicode values.

  • Python: Ensure that parse errors produce useful RuntimeErrors

  • Python: Expose journal expand_aliases

  • Python: Expose journal_t::register_account

  • Improve bash completion

  • Emacs Lisp files have been moved to

  • Fix build under MSYS (32-bit).

  • Fix build under Cygwin.

  • Various documentation improvements


11 Jan 16:02
@afh afh
Choose a tag to compare
  • Added a --no-revalued option
  • Improved Embedded Python Support
  • Use ./.ledgerrc if ~/.ledgerrc doesn't exist
  • Fixed parsing of transactions with single-character payees and comments
  • Fixed crash when using -M option with empty result
  • Fixed sorting for option --auto-match
  • Fixed treatment of year 2015 and Y2014 directives
  • Fixed crash when using --trace 10 or above
  • Build fix for boost 1.58, 1.59, 1.60
  • Build fix for Cygwin
  • Fixed Util and Math tests on Mac OS X
  • Various documentation improvements
  • Examples in the documentation are tested just like unit tests
  • Add continuous integration using Travis CI


10 Jan 10:03
@afh afh
Choose a tag to compare
  • Changed the definition of cost basis to preserve the original cost basis
    when a gain or loss is made (if you bought 1 AAA for $10 and then sold
    it for $12, ledger would previously take $12 as the cost; the original
    cost of $10 is preserved as the cost basis now, which addresses strange
    behaviour with -B after a capital gain or loss is made).
  • Incorrect automatic Equity:Capital Gains and Equity:Capital Loss entries
    are no longer generated when a commodity is sold for loss or profit.
  • Support for virtual posting costs.
  • The option--permissive now quiets balance assertions
  • Removed SHA1 files due to license issues and use boost instead.
  • Added option --no-pager to disable the pager.
  • Added option --no-aliases to completely disable alias expansion
  • Added option --recursive-aliases to expand aliases recursively
  • Support payee uuid directive.
  • Bug fix: when a status flag (! or *) is explicitly specified for an
    individual posting, it always has a priority over entire transaction
  • Bug fix: don't lose commodity when cost is not separated by whitespace
  • Improved backwards compatibility with ledger 2.x
  • Build fix for GCC 4.9
  • Build fix for boost 1.56
  • Many improvements to ledger-mode, including fontification
  • More test cases and unit tests
  • Contrib: Added script to generate commodities from ISO 4217
To build Ledger from source download the and install it into the Ledger source tree, e.g.: unzip -d ledger-3.1/


10 Jan 10:36
@afh afh
Choose a tag to compare
To build Ledger from source download the and install it into the Ledger source tree, e.g.: unzip -d ledger-3.0.3/