[Haskell-cafe] ANN: hledger 0.20

Simon Michael simon at joyful.com
Thu May 2 03:34:48 CEST 2013


I'm pleased to announce hledger and hledger-web 0.20!

hledger is a command-line tool and haskell library for tracking
financial transactions, which are stored in a human-readable plain
text format. In addition to reporting, it can also help you record new
transactions, or convert CSV data from your bank. Add-on packages
include hledger-web (providing a web interface), hledger-irr and hledger-interest.

hledger is inspired by and compatible with John Wiegley's Ledger. For
more, see http://hledger.org .

Install it:

# cabal update; cabal install hledger-web

For more installation help, see http://hledger.org/MANUAL.html#installing .
Or, sponsor a ready-to-run binary for your platform: http://hledger.org/DOWNLOAD.html .

Release notes (http://hledger.org/NEWS.html#hledger-0.20):

**Bugs fixed:**

 * balance: a 0.19 regression which showed wrong total balance with `--flat` has been fixed (#94)
 * register: when `--date2` is used, the register is now sorted by the secondary date
 * web: some missing static & template files have been added to the package, fixing cabal-dev and hackage builds (#97, #98)
 * web: some hardcoded static urls have been fixed
 * Dependencies and code have been updated to support the latest
   libraries and GHC versions.  For now, hledger requires GHC 7.2+
   and hledger-web requires GHC 7.4+.

**Journal reading:**

 - DOS-style line-endings are now also supported in journal and rules files.
 - `!` is now accepted in the status field as well as `*`, like ledger
 - The *actual date* and *effective date* terminology has changed to *primary date* and *secondary date*.
   Use `--date2` to select the secondary date for reports. (`--aux-date` or `--effective` are also accepted
   for ledger and backwards compatibility).
 - Per-posting dates are supported, using hledger tags or ledger's posting date syntax
 - Comment and tag handling has been improved

**CSV reading:**

 - CSV conversion rules have a simpler, more flexible [syntax](MANUAL.html#csv-files).
   Existing rules files will need to be updated manually:
   - the filename is now `FILE.csv.rules` instead of `FILE.rules`
   - `FIELD-field N` is now `FIELD %N+1` (or set them all at once with a `fields` rule)
   - `base-currency` is now `currency`
   - `base-account` is now `account1`
   - account-assigning rules:
     add `if` before the list of regexps,
     add indented `account2 ` before the account name
 - parenthesised amounts are parsed as negative

**Querying:**

 - Use `code:` to match the transaction code (check number) field
 - Use `amt:` followed by `<`, `=` or `>` and a number N to match
   amounts by magnitude. Eg `amt:<0` or `amt:=100`. This works only
   with single-commodity amounts (multi-commodity amounts are
   always matched).
 - `tag:` can now match (exact, case sensitive) tag values. Eg `tag:TAG=REGEXP`.

**add comand:**

 - Transaction codes and comments (which may contain tags) can now be entered, following a date or amount respectively. (#45)
 - The current entry may be restarted by entering `<` at any prompt. (#47)
 - Entries are displayed and confirmed before they are written to the journal.
 - Default values may be specified for the first entry by providing them as command line arguments.
 - Miscellaneous UI cleanups

**register command:**

 - The `--related`/`-r` flag shows the other postings in each transaction, like ledger.
 - The `--width`/`-w` option increases or sets the output width.

**web command:**

 - The web command now also starts a browser, and auto-exits when unused, by default ("local ui mode").
   With `--server`, it keeps running and logs requests to the console ("server mode").
 - Bootstrap is now used for styling and layout
 - A favicon is served
 - The search field is wider
 - yesod devel is now supported; it uses `$LEDGER_FILE` or `~/.hledger.journal`
 - the `blaze_html_0_5` build flag has been reversed and renamed to `blaze_html_0_4`

**Add-ons:**

 - The hledger-interest and hledger-irr commands have been released/updated.
 - hledger-chart and hledger-vty remain unmaintained and deprecated.

**Documentation and infrastructure:**

 - The hledger docs and website have been reorganised and updated
 - Manuals for past releases are provided as well as the latest dev version
 - hledger has moved from darcs and darcs hub to git and github (!)
 - The bug tracker has moved from google code to github
 - Feature requests and project planning are now managed on trello
 - A build bot builds against multiple GHC versions on each commit

Release contributors:

- Sascha Welter commissioned register enhancements (--related and --width)
- David Patrick contributed a bounty for add enhancements
- Joachim Breitner added support for ! in status field
- Xinruo Sun provided hledger-web build fixes
- Peter Simons provided hledger-web build fixes, and a build bot
- Marko Kocić provided hledger-web fixes




More information about the Haskell-Cafe mailing list