Changelog for hledger-0.25.1
User-visible changes in hledger and hledger-lib.
0.25.1 (2015/4/29)
- timelog: support the description field (#247)
0.25 (2015/4/7)
- GHC 7.10 compatibility (#239)
- build with terminfo support on POSIX systems by default
On non-windows systems, we now build with terminfo support by
default, useful for detecting terminal width and other things.
This requires the C curses dev libaries, which makes POSIX
installation slightly harder; if it causes problems you can
disable terminfo support with the new `curses` cabal flag, eg:
cabal install -f-curses ... (or cabal might try this
automatically, I'm not sure).
- register: use the full terminal width, respect COLUMNS, allow column width adjustment
On POSIX systems, register now uses the full terminal width by
default. Specifically, the output width is set from:
1. a --width option
2. or a COLUMNS environment variable (NB: not the same as a bash shell var)
3. or on POSIX (non-windows) systems, the current terminal width
4. or the default, 80 characters.
Also, register's --width option now accepts an optional
description column width following the overall width (--width
WIDTH[,DESCWIDTH]). This also sets the account column width, since
the available space (WIDTH-41) is divided up between these two
columns. Here's a diagram:
<--------------------------------- width (W) ---------------------------------->
date (10) description (D) account (W-41-D) amount (12) balance (12)
DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
Examples:
$ hledger reg # use terminal width on posix
$ hledger reg -w 100 # width 100, equal description/account widths
$ hledger reg -w 100,40 # width 100, wider description
$ hledger reg -w $COLUMNS,100 # terminal width and set description width
- balance: new -T/--row-total and -A/--average options
In multicolumn balance reports, -T/--row-total now shows a row totals
column and -A/--average shows a row averages column.
This helps eg to see monthly average expenses (hledger bal ^expenses -MA).
NB our use of -T deviates from Ledger's UI, where -T sets a custom
final total expression.
- balance: -N is now short for --no-total
- balance: fix partially-visible totals row with --no-total
A periodic (not using --cumulative or --historical) balance report
with --no-total now hides the totals row properly.
- journal, csv: comment lines can also start with *
As in Ledger. This means you can embed emacs org/outline-mode nodes in
your journal file and manipulate it like an outline.
0.24.1 (2015/3/15)
- journal: fix balance accumulation across assertions (#195)
A sequence of balance assertions asserting first one commodity, then
another, then the first again, was not working.
- timelog: show hours with two decimal places instead of one (#237)
- in weekly reports, simplify week 52's heading like the others
- disallow trailing garbage in a number of parsers
Trailing garbage is no longer ignored when parsing the following:
balance --format option, register --width option, hledger-rewrite
options, hledger add's inputs, CSV amounts, posting amounts,
posting dates in tags.
- allow utf8-string-1 (fpco/stackage/#426)
0.24 (2014/12/25)
General:
- fix redundant compilation when cabal installing the hledger packages
- switch to Decimal for representing amounts (#118)
- report interval headings (eg in balance, register reports) are shown
compactly when possible
- general speedups
Journal format:
- detect decimal point and digit groups more robustly (#196)
- check that transaction dates are followed by whitespace or newline
- check that dates use a consistent separator character
- balance assertions now are specific to a single commodity, like
Ledger (#195)
- support multi-line comments using "comment", "end comment"
directives, like Ledger
CSV format:
- reading CSV data from stdin now works better
- the rules file include directive is now relative to the current
file's directory (#198)
- the original order of same-day transactions is now usually preserved
(if the records appear to be in reverse date order, we reverse them
before finally sorting by transaction date)
- CSV output is now built in to the balance, print, and register
commands, controlled by -O/--output-format (and -o/--output-file,
see below)
CLI:
- the --width and --debug options now require their argument (#149)
- when an option is repeated, the last value takes precedence (#219).
This is helpful eg for customising your reporting command aliases on
the fly.
- smart dates (used in -p/-b/-e/date:/date2:) now must use a
consistent separator character, and must be parseable to the end
- output destination and format selection is now built in to the
balance, print and register commands, controlled by -o/--output-file
and -O/--output-format options. Notes:
- -o - means stdout
- an output file name suffix matching a supported format will also
set the output format, unless overridden by --output-format
- commands' supported output formats are listed in their
command-line help. Two formats are currently available:
txt (the default) and csv.
- balance assertions can be disabled with --ignore-assertions
Account aliases:
- all matching account aliases are now applied, not just one directive
and one option
- account aliases now match by case insensitive regular expressions
matching anywhere in the account name
- account aliases can replace multiple occurrences of the pattern
within an account name
- an account alias replacement pattern can reference matched groups
with \N
Queries:
- date:/date2: with a malformed date now reports an error instead of
being ignored
- amt: now supports >= or <=
- clarify status: docs and behaviour; "*" is no longer a synonym for
"1" (fixes #227)
balance:
- fix: in tree mode, --drop is ignored instead of showing empty account names
- a depth limit of 0 now shows summary items with account name "...",
instead of an empty report (#206)
- in multicolumn balance reports, -E now also shows posting-less
accounts with a non-zero balance during the period (in addition to
showing leading & trailing empty columns)
- in multicolumn reports, multi-commodity amounts are rendered on one
line for better layout (#186)
- multicolumn reports' title now includes the report span
register:
- runs faster with large output
- supports date2:, and date:/date2: combined with --date2, better (fixes
#201, #221, #222)
- a depth limit of 0 now shows summary items (see balance)
- -A/--average now implies -E/--empty
- postings with multi-commodity amounts are now top-aligned, like
Ledger
Extra commands:
- hledger-equity: fix end date in title; print closing entry too
- hledger-check-dates: added
0.23.3 (2014/9/12)
- allow text 1.2+ (#207)
0.23.2 (2014/5/8)
- register: also fix date sorting of postings (#184)
0.23.1 (2014/5/7)
- register: fix a refactoring-related regression that the tests
missed: if transactions were not ordered by date in the journal,
register could include postings before the report start date in the
output. (#184)
- add: don't apply a default commodity to amounts on entry (#138)
- cli: options before the add-on command name are now also passed to it (#182)
- csv: allow the first name in a fields list to be empty (#178)
- csv: don't validate fields count in skipped lines (#177)
0.23 (2014/5/1)
Journal format:
- A # (hash) in column 0 is now also supported for starting a top-level journal comment, like Ledger.
- The "too many missing amounts" error now reminds about the 2-space rule.
- Fix: . (period) is no longer parsed as a valid amount.
- Fix: default commodity directives no longer limit the maximum display precision (#169).
- Fix: + before an amount is no longer parsed as part of the commodity (#181).
CLI:
- Command-line help cleanups, layout improvements.
- Descriptions are shown for known add-ons in the command list.
- Command aliases have been simplified.
- Add-ons can now have any of these file extensions:
none, hs, lhs, pl, py, rb, rkt, sh, bat, com, exe.
- Add-ons are displayed without their file extensions when possible.
- Add-ons with the same name as a built-in command or alias are ignored.
- Fix: add-on detection and invocation now works on windows.
- Fix: add-ons with digits in the name are now found.
- Fix: add-on arguments containing a single quote now work.
- Fix: when -- is used to hide add-on options from the main program,
it is no longer passed through as an add-on argument.
Queries:
- The currency/commodity query prefix (sym:) has been renamed to cur:.
- Currency/commodity queries are applied more strongly in register and
balance reports, filtering out unwanted currencies entirely. Eg
hledger balance cur:'\$' now reports only the dollar amounts even if
there are multi-currency transactions or postings.
- Amount queries like amt:N, amt:<N and amt:>N, where N is not 0, now do an unsigned
comparison of the amount and N. That is, they compare the absolute magnitude.
To do a signed comparison instead, write N with its sign (eg amt:+N, amt:<+N, amt:>-N).
- Fix: amount queries no longer give false positives on multi-commodity amounts.
accounts:
- An accounts command has been added, similar to Ledger's, for listing account names
in flat or hierarchical mode.
add:
- Tab completion now works at all prompts, and will insert the default if the input area is empty.
- Account and amount defaults are more robust and useful.
- Transactions may also be completed by the enter key, when there are no more default postings.
- Input prompts are displayed in a different colour when supported.
balance:
- Balance reports in flat mode now always show exclusive (subaccount-excluding) balances.
- Balance reports in flat mode with --depth now aggregate deeper accounts at the depth limit instead of excluding them.
- Multicolumn reports in flat mode now support --drop.
- Multicolumn balance reports can now show the account hierarchy with --tree.
- Multicolumn report start/end dates are adjusted to encompass the displayed
report periods, so the first and last periods are "full" and comparable to the others.
- Fix: zero-balance leaf accounts below a non-zero-balance parent are no longer always shown (#170).
- Fix: multicolumn reports now support --date2 (cf #174).
balancesheet, cashflow, incomestatement:
- These commands now support --flat and --drop.
print:
- Tag queries (tag:) will now match a transaction if any of its postings match.
register:
- The --display option has been dropped. To see an accurate running total which
includes the prior starting balance, use --historical/-H (like balance).
- With a report interval, report start/end dates are adjusted to encompass the displayed
periods, so the first and last periods are "full" and comparable to the others.
- Fix: --date2 now works with report intervals (fixes #174).
Miscellaneous:
- Default report dates now derive from the secondary dates when --date2 is in effect.
- Default report dates now notice any posting dates outside the transaction dates' span.
- Debug output improvements.
- New add-on example: extra/hledger-rewrite.hs, adds postings to matched entries.
- Compatible with GHC 7.2 (#155) - GHC 7.8, shakespeare 2
0.22.2 (2014/4/16)
- display years before 1000 with four digits, not three
- avoid pretty-show to build with GHC < 7.4
- allow text 1.1, drop data-pprint to build with GHC 7.8.x
0.22.1 (2014/1/6) and older: see http://hledger.org/release-notes or doc/CHANGES.md.