mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-28 21:02:04 +03:00
3209 lines
124 KiB
Markdown
3209 lines
124 KiB
Markdown
<!-- Web release notes. Content since 1.0 comes from doc/release-notes.org. -->
|
|
<!-- Putting the dates last is preferred for readability, but they are first in the headings below since that nicely keeps them out of the anchor urls. -->
|
|
<style>
|
|
#toc > ol > li { padding-top:0; }
|
|
h4 { margin-top:2em; }
|
|
</style>
|
|
<nav id="toc">
|
|
<p>Major releases:</p>
|
|
<ol>
|
|
<li><a href="#hledger-1.5">hledger 1.5 (2017/12/31)</a>
|
|
<li><a href="#hledger-1.4">hledger 1.4 (2017/9/30)</a>
|
|
<li><a href="#hledger-1.3">hledger 1.3 (2017/6/30)</a>
|
|
<li><a href="#hledger-1.2">hledger 1.2 (2017/3/31)</a>
|
|
<li><a href="#hledger-1.1">hledger 1.1 (2016/12/31)</a>
|
|
<li><a href="#hledger-1.0">hledger 1.0 (2016/10/26)</a>
|
|
<li><a href="#hledger-0.27">hledger 0.27 (2015/10/30)</a>
|
|
<li><a href="#hledger-0.26">hledger 0.26 (2015/7/12)</a>
|
|
<li><a href="#hledger-0.25">hledger 0.25 (2015/4/7)</a>
|
|
<li><a href="#hledger-0.24">hledger 0.24 (2014/12/25)</a>
|
|
<li><a href="#hledger-0.23">hledger 0.23 (2014/5/1)</a>
|
|
<li><a href="#hledger-0.22">hledger 0.22 (2013/12/13)</a>
|
|
<li><a href="#hledger-0.21">hledger 0.21 (2013/6/1)</a>
|
|
<li><a href="#hledger-0.20">hledger 0.20 (2013/5/1)</a>
|
|
<li><a href="#hledger-0.19">hledger 0.19 (2012/10/21)</a>
|
|
<li><a href="#hledger-0.18">hledger 0.18 (2012/5/29)</a>
|
|
<li><a href="#hledger-0.17">hledger 0.17 (2012/2/1)</a>
|
|
<li><a href="#hledger-0.16">hledger 0.16 (2011/10/1)</a>
|
|
<li><a href="#hledger-0.15">hledger 0.15 (2011/9/1)</a>
|
|
<li><a href="#hledger-0.14">hledger 0.14 (2011/4/22)</a>
|
|
<li><a href="#hledger-0.13">hledger 0.13 (2010/12/6)</a>
|
|
<li><a href="#hledger-0.12">hledger 0.12 (2010/9/5)</a>
|
|
<li><a href="#hledger-0.11">hledger 0.11 (2010/07/17)</a>
|
|
<li><a href="#hledger-0.10">hledger 0.10 (2010/05/23)</a>
|
|
<li><a href="#hledger-0.9">hledger 0.9 (2010/04/10)</a>
|
|
<li><a href="#hledger-0.8">hledger 0.8 (2010/02/11)</a>
|
|
<li><a href="#hledger-0.7">hledger 0.7 (2009/12/11)</a>
|
|
<li><a href="#hledger-0.6">hledger 0.6 (2009/06/13)</a>
|
|
<li><a href="#hledger-0.5">hledger 0.5 (2009/05/23)</a>
|
|
<li><a href="#hledger-0.4">hledger 0.4 (2009/04/03)</a>
|
|
<li><a href="#hledger-0.3">hledger 0.3 (2009/01/17)</a>
|
|
<li><a href="#hledger-0.2">hledger 0.2 (2008/11/23)</a>
|
|
<li><a href="#hledger-0.1">hledger 0.1 (2008/10/15)</a>
|
|
</ol>
|
|
</nav>
|
|
|
|
# Release notes
|
|
|
|
|
|
## 2017/12/31 hledger 1.5
|
|
|
|
***
|
|
***
|
|
|
|
([announcement](https://groups.google.com/forum/#!topic/hledger/CyNifndzZxk))
|
|
|
|
Release contributors:
|
|
Dmitry Astapov,
|
|
Mykola Orliuk,
|
|
Eli Flanagan,
|
|
Elijah Caine,
|
|
Sam Jeeves,
|
|
Matthias Kauer,
|
|
Hans-Peter Deifel,
|
|
Mick Dekkers,
|
|
Nadrieril,
|
|
Alvaro Fernando García.
|
|
|
|
[project](#project-wide-changes-for-1.5)
|
|
| [hledger-install](#hledger-install.sh-1.5)
|
|
| [hledger-lib](#hledger-lib-1.5)
|
|
| [hledger](#hledger-1.5-1)
|
|
| [hledger-ui](#hledger-ui-1.5)
|
|
| [hledger-web](#hledger-web-1.5)
|
|
| [hledger-api](#hledger-api-1.5)
|
|
|
|
### project-wide changes for 1.5
|
|
|
|
* remove upper bounds on all but hledger* and base (experimental)
|
|
It's rare that my deps break their api or that newer versions must
|
|
be avoided, and very common that they release new versions which I
|
|
must tediously and promptly test and release hackage revisions for
|
|
or risk falling out of stackage. Trying it this way for a bit.
|
|
|
|
### hledger-install.sh 1.5
|
|
|
|
### hledger-lib 1.5
|
|
|
|
* -V/--value uses today's market prices by default, not those of last transaction date. #683, #648)
|
|
|
|
* csv: allow balance assignment (balance assertion only, no amount) in csv records (Nadrieril)
|
|
|
|
* journal: allow space as digit group separator character, #330 (Mykola Orliuk)
|
|
|
|
* journal: balance assertion errors now show line of failed assertion posting, #481 (Sam Jeeves)
|
|
|
|
* journal: better errors for directives, #402 (Mykola Orliuk)
|
|
|
|
* journal: better errors for included files, #660 (Mykola Orliuk)
|
|
|
|
* journal: commodity directives in parent files are inherited by included files, #487 (Mykola Orliuk)
|
|
|
|
* journal: commodity directives limits precision even after -B, #509 (Mykola Orliuk)
|
|
|
|
* journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. #399, #487 (Mykola Orliuk)
|
|
|
|
* journal: numbers are parsed more strictly (Mykola Orliuk)
|
|
|
|
* journal: support Ledger-style automated postings, enabled with --auto flag (Dmitry Astapov)
|
|
|
|
* journal: support Ledger-style periodic transactions, enabled with --forecast flag (Dmitry Astapov)
|
|
|
|
* period expressions: fix "nth day of {week,month}", which could generate wrong intervals (Dmitry Astapov)
|
|
|
|
* period expressions: month names are now case-insensitive (Dmitry Astapov)
|
|
|
|
* period expressions: stricter checking for invalid expressions (Mykola Orliuk)
|
|
|
|
* period expressions: support "every 11th Nov" (Dmitry Astapov)
|
|
|
|
* period expressions: support "every 2nd Thursday of month" (Dmitry Astapov)
|
|
|
|
* period expressions: support "every Tuesday", short for "every <n>th day of week" (Dmitry Astapov)
|
|
|
|
### hledger 1.5
|
|
|
|
* --auto adds Ledger-style automated postings to transactions (Dmitry Astapov, Mykola Orliuk)
|
|
|
|
* --forecast generates Ledger-style periodic transactions in the future (Dmitry Astapov, Mykola Orliuk)
|
|
|
|
* -V/--value uses today's market prices by default, not those of last transaction date. #683, #648
|
|
|
|
* add: suggest implied (parent) and declared (by account directives) account names also
|
|
|
|
* bal: --budget shows performance compared to budget goals defined
|
|
with periodic transactions. Accounts with budget goals are
|
|
displayed folded (depth-clipped) at a depth matching the budget
|
|
specification. Unbudgeted accounts are hidden, or with
|
|
--show-unbudgeted, shown at their usual depth. (Dmitry Astapov)
|
|
|
|
* import: the output of --dry-run is now valid journal format
|
|
|
|
* print: -B shows converted amounts again, as in 1.1, even without
|
|
-x. #551 (Mykola Orliuk, Simon Michael)
|
|
|
|
* tag: the first argument now filters tag names, additional arguments
|
|
filter transactions (#261)
|
|
|
|
### hledger-ui 1.5
|
|
|
|
* fix help -> view manual (on posix platforms) #623
|
|
|
|
* support -V/--value, --forecast, --auto
|
|
|
|
### hledger-web 1.5
|
|
|
|
* add form account fields now suggest implied and declared account names also
|
|
|
|
* add form date field now uses a datepicker (Eli Flanagan)
|
|
|
|
* don't write a session file at startup, don't require a writable working directory
|
|
|
|
* support -V/--value, --forecast, --auto
|
|
|
|
### hledger-api 1.5
|
|
|
|
|
|
## 2017/9/30 hledger 1.4
|
|
|
|
***easy install script,
|
|
simpler help commands,
|
|
experimental addon commands now built in,
|
|
new balancesheetequity/tags commands,
|
|
new import command for easy CSV merging,
|
|
print can detect new transactions,
|
|
balance reports can sort by amount,
|
|
cli conveniences
|
|
***
|
|
|
|
([announcement](https://groups.google.com/forum/#!topic/hledger/tdtkhchqg9k))
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Nicholas Niro,
|
|
Hans-Peter Deifel,
|
|
Jakub Zárybnický,
|
|
Felix Yan,
|
|
Mark Hansen,
|
|
Christian G. Warden,
|
|
Nissar Chababy,
|
|
Peter Simons.
|
|
|
|
[project](#project-wide-changes-for-1.4)
|
|
| [hledger-install](#hledger-install.sh-1.4)
|
|
| [hledger-lib](#hledger-lib-1.4)
|
|
| [hledger](#hledger-1.4-1)
|
|
| [hledger-ui](#hledger-ui-1.4)
|
|
| [hledger-web](#hledger-web-1.4)
|
|
| [hledger-api](#hledger-api-1.4)
|
|
|
|
### project-wide changes for 1.4
|
|
|
|
* update stack configs for the last three GHC versions, add "make
|
|
test-stackage" for finding stackage build problems, switch to GHC
|
|
8.2.1 as default for developer builds
|
|
|
|
* streamline docs page
|
|
|
|
* improve changelog/release notes process
|
|
|
|
* improve makefile help and speed
|
|
|
|
### hledger-install.sh 1.4
|
|
|
|
Added a new installer script for the hledger tools, which aims to
|
|
dodge common pitfalls and just work. Based on the stack install
|
|
script, this bash script is cross platform, uses cabal or stack,
|
|
installs stack and GHC if needed, and installs the latest release of
|
|
all major hledger packages. See http://hledger.org/download for details.
|
|
|
|
### hledger-lib 1.4
|
|
|
|
* add readJournalFile[s]WithOpts, with simpler arguments and support
|
|
for detecting new transactions since the last read.
|
|
|
|
* query: add payee: and note: query terms, improve description/payee/note docs (Jakub Zárybnický, Simon Michael, #598, #608)
|
|
|
|
* journal, cli: make trailing whitespace significant in regex account aliases
|
|
Trailing whitespace in the replacement part of a regular expression
|
|
account alias is now significant. Eg, converting a parent account to
|
|
just an account name prefix: --alias '/:acct:/=:acct '
|
|
|
|
* timedot: allow a quantity of seconds, minutes, days, weeks, months
|
|
or years to be logged as Ns, Nm, Nd, Nw, Nmo, Ny
|
|
|
|
* csv: switch the order of generated postings, so account1 is first.
|
|
This simplifies things and facilitates future improvements.
|
|
|
|
* csv: show the "creating/using rules file" message only with --debug
|
|
|
|
* csv: fix multiple includes in one rules file
|
|
|
|
* csv: add "newest-first" rule for more robust same-day ordering
|
|
|
|
* deps: allow ansi-terminal 0.7
|
|
|
|
* deps: add missing parsec lower bound, possibly related to #596, fpco/stackage#2835
|
|
|
|
* deps: drop oldtime flag, require time 1.5+
|
|
|
|
* deps: remove ghc < 7.6 support, remove obsolete CPP conditionals
|
|
|
|
* deps: fix test suite with ghc 8.2
|
|
|
|
<!-- 1.3.1 (2017/8/25) -->
|
|
|
|
* Fix a bug with -H showing nothing for empty periods (#583, Nicholas Niro)
|
|
This patch fixes a bug that happened when using the -H option on
|
|
a period without any transaction. Previously, the behavior was no
|
|
output at all even though it should have shown the previous ending balances
|
|
of past transactions. (This is similar to previously using -H with -E,
|
|
but with the extra advantage of not showing empty accounts)
|
|
|
|
* allow megaparsec 6 (#594)
|
|
|
|
* allow megaparsec-6.1 (Hans-Peter Deifel)
|
|
|
|
* fix test suite with Cabal 2 (#596)
|
|
|
|
### hledger 1.4
|
|
|
|
* cli: a @FILE argument reads flags & args from FILE, one per line
|
|
|
|
* cli: reorganized commands list, added some new command aliases:
|
|
accounts: a
|
|
balance: b
|
|
print: p, txns
|
|
register: r
|
|
|
|
* cli: accept -NUM as a shortcut for --depth=NUM (eg: -2)
|
|
|
|
* cli: improve command-line help for --date2 (#604)
|
|
|
|
* cli: make --help and -h the same, drop --man and --info for now (#579)
|
|
|
|
* help: offers multiple formats, accepts topic substrings.
|
|
The separate info/man commands have been dropped. help now
|
|
chooses an appropriate documentation format as follows:
|
|
- it uses info if available,
|
|
- otherwise man if available,
|
|
- otherwise $PAGER if defined,
|
|
- otherwise less if available,
|
|
- otherwise it prints on stdout
|
|
- (and it always prints on stdout when piped).
|
|
You can override this with the `--info`/`--man`/`--pager`/`--cat` flags.
|
|
(#579)
|
|
|
|
* bal/bs/cf/is: --sort-amount/-S sorts by largest amount instead of
|
|
account name
|
|
|
|
* bs/cf/is: support --output-file and --output-format=txt|csv
|
|
The CSV output should be reasonably ok for dragging into a
|
|
spreadsheet and reformatting.
|
|
|
|
* bal/bs/cf/is: consistent double space between columns, consistent
|
|
single final blank line. Previously, amounts wider than the column
|
|
headings would be separated by only a single space.
|
|
|
|
* bs/is: don't let an empty subreport disable the grand totals (fixes #588)
|
|
|
|
* cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, #584)
|
|
|
|
* new balancesheetequity command: like balancesheet but also shows
|
|
equity accounts (Nicholas Niro)
|
|
|
|
* new import command: adds new transactions seen in one or more input
|
|
files to the main journal file
|
|
|
|
* print: --new shows only transactions added since last time
|
|
(saves state in .latest.JOURNALFILE file)
|
|
|
|
* new tags command: lists tags in matched transactions
|
|
|
|
* most addons formerly shipped in bin/ are now builtin commands. These
|
|
include: check-dates, check-dupes, equity, prices, print-unique,
|
|
register-match, rewrite.
|
|
|
|
* refactor: new Commands module and subdirectory.
|
|
Builtin commands are now gathered more tightly in a single module,
|
|
Hledger.Cli.Commands, facilitating change. The legacy "convert"
|
|
command has been dropped.
|
|
|
|
* refactor: BalanceView -> CompoundBalanceCommand
|
|
|
|
* deps: drop support for directory < 1.2
|
|
|
|
* deps: allow ansi-terminal 0.7
|
|
|
|
* deps: drop oldtime flag, require time 1.5+
|
|
|
|
* deps: simplify shakespeare bounds
|
|
|
|
* deps: remove ghc < 7.6 support
|
|
|
|
<!-- 1.3.1 (2017/8/25) -->
|
|
|
|
* bs/is: don't let an empty subreport disable the grand totals (#588)
|
|
|
|
* allow megaparsec 6 (#594)
|
|
|
|
* allow megaparsec-6.1 (Hans-Peter Deifel)
|
|
|
|
* restore upper bounds on hledger packages
|
|
|
|
### hledger-ui 1.4
|
|
|
|
* a @FILE argument reads flags & args from FILE, one per line
|
|
|
|
* enable --pivot and --anon options, like hledger CLI (#474) (Jakub Zárybnický)
|
|
|
|
* accept -NUM as a shortcut for --depth NUM
|
|
|
|
* deps: allow ansi-terminal 0.7
|
|
|
|
* deps: drop oldtime flag, require time 1.5+
|
|
|
|
<!-- # 1.3.1 (2017/8/25) -->
|
|
|
|
* allow megaparsec 6 (#594, Simon Michael, Hans-Peter Deifel)
|
|
|
|
* allow megaparsec-6.1 (Hans-Peter Deifel)
|
|
|
|
* allow vty 5.17 (Felix Yan)
|
|
|
|
* allow brick 0.24
|
|
|
|
* restore upper bounds on hledger packages
|
|
|
|
### hledger-web 1.4
|
|
|
|
* a @FILE argument reads flags & args from FILE, one per line
|
|
|
|
* enable --pivot and --anon options, like hledger CLI (#474) (Jakub Zárybnický)
|
|
|
|
* web: Make "Add transaction" button tabbable (#430) (Jakub Zárybnický)
|
|
|
|
* accept -NUM as a shortcut for --depth NUM
|
|
|
|
* deps: drop oldtime flag, require time 1.5+, remove ghc < 7.6 support
|
|
|
|
<!-- # 1.3.2 (2017/8/25) -->
|
|
|
|
* remove unnecessary bound to satisfy hackage server
|
|
|
|
<!-- # 1.3.1 (2017/8/25) -->
|
|
|
|
* allow megaparsec 6 (#594, Simon Michael, Hans-Peter Deifel)
|
|
|
|
* allow megaparsec-6.1 (Hans-Peter Deifel)
|
|
|
|
* restore upper bounds on hledger packages
|
|
|
|
### hledger-api 1.4
|
|
|
|
* api: add support for swagger2 2.1.5+ (fixes #612)
|
|
|
|
<!-- # 1.3.1 (2017/8/25) -->
|
|
|
|
* require servant-server 0.10+ to fix compilation warning
|
|
|
|
* restore upper bounds on hledger packages
|
|
|
|
|
|
## 2017/6/30 hledger 1.3
|
|
|
|
***terminology/UI improvements for the status field,
|
|
selection/scrolling/movement improvements in hledger-ui,
|
|
negative amounts shown in red,
|
|
bugfixes.***
|
|
|
|
([announcement](https://groups.google.com/d/msg/hledger/X4iR1wpaq0E/_v5BLQIXAgAJ))
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Mykola Orliuk,
|
|
Christian G. Warden,
|
|
Dmitry Astapov,
|
|
Justin Le,
|
|
Joe Horsnell,
|
|
Nicolas Wavrant,
|
|
afarrow,
|
|
Carel Fellinger,
|
|
flip111,
|
|
David Reaver,
|
|
Felix Yan,
|
|
Nissar Chababy,
|
|
Jan Zerebecki.
|
|
|
|
[project](#project-wide-changes-for-1.3)
|
|
| [hledger-lib](#hledger-lib-1.3)
|
|
| [hledger](#hledger-1.3-1)
|
|
| [hledger-ui](#hledger-ui-1.3)
|
|
| [hledger-web](#hledger-web-1.3)
|
|
| [hledger-api](#hledger-api-1.3)
|
|
|
|
### project-wide changes for 1.3
|
|
|
|
<!-- #### Packaging -->
|
|
|
|
<!-- #### Finance -->
|
|
|
|
<!-- #### Documentation and website -->
|
|
|
|
<!-- #### Examples -->
|
|
|
|
#### Tools
|
|
|
|
make ghci-prof starts GHCI in profiling mode, enabling stack traces with traceStack
|
|
|
|
make ghci-web now also creates required symlinks
|
|
|
|
make site-reload opens an auto-reloading browser on the latest site html
|
|
|
|
make changelog-draft shows the commits since last tag as org nodes
|
|
|
|
### hledger-lib 1.3
|
|
|
|
#### journal format
|
|
|
|
The "uncleared" transaction/posting status (and associated UI flags
|
|
and keys) has been renamed to "unmarked" to remove ambiguity and
|
|
confusion. See the issue and linked mail list discussion for more
|
|
background. (#564)
|
|
|
|
#### csv format
|
|
|
|
In CSV conversion rules, assigning to the "balance" field name
|
|
creates balance assertions (#537, Dmitry Astapov).
|
|
|
|
Doubled minus signs are handled more robustly (fixes #524, Nicolas
|
|
Wavrant, Simon Michael)
|
|
|
|
#### Misc
|
|
|
|
Multiple status: query terms are now OR'd together. (#564)
|
|
|
|
Deps: allow megaparsec 5.3.
|
|
|
|
### hledger 1.3
|
|
|
|
#### CLI
|
|
|
|
The "uncleared" transaction/posting status, and associated UI flags
|
|
and keys, have been renamed to "unmarked" to remove ambiguity and
|
|
confusion. This means that we have dropped the `--uncleared` flag,
|
|
and our `-U` flag now matches only unmarked things and not pending
|
|
ones. See the issue and linked mail list discussion for more
|
|
background. (#564)
|
|
|
|
Also the -P short flag has been added for --pending, and the -U/-P/-C
|
|
flags can be combined.
|
|
|
|
bs/is: fix "Ratio has zero denominator" error (#535)
|
|
|
|
bs/is/cf: fix --flat (#552) (Justin Le, Simon Michael)
|
|
|
|
bal/bs/is/cf: show negative amounts in red (Simon Michael, Justin Le).
|
|
These commands now show negative amounts in red, when hledger detects
|
|
that ANSI codes are supported, (ie when TERM is not "dumb" and stdout
|
|
is not being redirected or piped).
|
|
|
|
print: show pending mark on postings (fixes #563).
|
|
A pending mark on postings is now displayed, just like a cleared mark.
|
|
Also there will now be a space between the mark and account name.
|
|
|
|
print: amounts are now better aligned, eg when there are posting
|
|
status marks or virtual postings.
|
|
|
|
#### Addons
|
|
|
|
prices: add --inverted-costs flag, sort output, increase precision
|
|
(Mykola Orliuk)
|
|
|
|
rewrite: add support for rewriting multipler postings into different
|
|
commodities. For example, postings in hours can be used to generate
|
|
postings in USD. (#557) (Christian G. Warden)
|
|
|
|
`make addons` compiles the experimental add-ons.
|
|
|
|
### hledger-ui 1.3
|
|
|
|
The register screen now shows transaction status marks.
|
|
|
|
The "uncleared" status, and associated UI flags and keys, have been
|
|
renamed to "unmarked" to remove ambiguity and confusion. This means
|
|
that we have dropped the `--uncleared` flag, and our `-U` flag now
|
|
matches only unmarked things and not pending ones. See the issue and
|
|
linked mail list discussion for more background. (#564)
|
|
|
|
The P key toggles pending mode, consistent with U (unmarked) and C
|
|
(cleared). There is also a temporary --status-toggles flag for testing
|
|
other toggle styles; see `hledger-ui -h`. (#564)
|
|
|
|
There is now less "warping" of selection when lists change:
|
|
|
|
- When the selected account disappears, eg when toggling zero
|
|
accounts, the selection moves to the alphabetically preceding item,
|
|
instead of the first one.
|
|
|
|
- When the selected transaction disappears, eg when toggling status
|
|
filters, the selection moves to the nearest transaction by date (and
|
|
if several have the same date, by journal order), instead of the
|
|
last one.
|
|
|
|
In the accounts and register screens, you can now scroll down further
|
|
so that the last item need not always be shown at the bottom of the
|
|
screen. And we now try to show the selected item centered in the
|
|
following situations:
|
|
|
|
- after moving to the end with Page down/End
|
|
- after toggling filters/display modes (status, real, historical..)
|
|
- on pressing the control-l key (this forces a screen redraw, also)
|
|
- on entering the register screen from the accounts screen
|
|
(except the first time, a known problem).
|
|
|
|
Items near the top won't be centered because we don't scroll above the
|
|
top of the list.
|
|
|
|
Emacs movement keys are now supported, as well as VI keys.
|
|
`CTRL-b/CTRL-f/CTRL-n/CTRL-p` and `hjkl` should work wherever unmodified arrow keys work.
|
|
|
|
In the transaction screen, amounts are now better aligned, eg when
|
|
there are posting status marks or virtual postings.
|
|
|
|
Deps: allow brick 0.19 (#575, Felix Yan, Simon Michael)
|
|
|
|
### hledger-web 1.3
|
|
|
|
Depends on hledger 1.3.
|
|
|
|
### hledger-api 1.3
|
|
|
|
Depends on hledger 1.3.
|
|
|
|
|
|
|
|
## 2017/3/31 hledger 1.2
|
|
|
|
***new commands list,
|
|
more powerful balancesheet/incomestatement/cashflow commands,
|
|
more parseable print output,
|
|
better --pivot,
|
|
basic automated postings and periodic transactions support,
|
|
more and easier addons,
|
|
bugfixes
|
|
***
|
|
|
|
<!-- ([announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1267)) -->
|
|
<!-- ([announcement](https://groups.google.com/d/topic/hledger/WgdTy3-a6sc/discussion)) -->
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Mykola Orliuk,
|
|
Justin Le,
|
|
Peter Simons,
|
|
Stefano Rodighiero,
|
|
Moritz Kiefer,
|
|
Pia Mancini,
|
|
Bryan Richter,
|
|
Steven R. Baker,
|
|
Hans-Peter Deifel,
|
|
Joshua Chia,
|
|
Joshua Kehn,
|
|
Michael Walker.
|
|
|
|
[project](#project-wide-changes-for-1.2)
|
|
| [hledger-lib](#hledger-lib-1.2)
|
|
| [hledger](#hledger-1.2-1)
|
|
| [hledger-ui](#hledger-ui-1.2)
|
|
| [hledger-web](#hledger-web-1.2)
|
|
| [hledger-api](#hledger-api-1.2)
|
|
|
|
### project-wide changes for 1.2
|
|
|
|
#### Packaging
|
|
|
|
bump stack config to latest lts,
|
|
bump brick to 0.15.2 to allow hledger-iadd install in hledger dir,
|
|
update cabal files to latest hpack 0.17.0/stack 1.4 format (#512),
|
|
use more accurate license tag in Cabal file (Peter Simons).
|
|
|
|
#### Finance
|
|
|
|
set up a hledger open collective (http://opencollective.com/hledger),
|
|
more devguide links to issues with bounties,
|
|
codefund link,
|
|
start tracking and publishing project finances (dogfooding!).
|
|
|
|
#### Documentation and website
|
|
|
|
docs page & manual cleanups,
|
|
begin organising a cookbook,
|
|
update addons list,
|
|
move detailed addon docs out of hledger manual,
|
|
document addons installation,
|
|
explain print's CSV output,
|
|
note an issue with balance assertions & multiple -f options,
|
|
clarify tags,
|
|
add github stars widget to home and devguide,
|
|
improve market price docs,
|
|
ui & web screenshots layout fixes,
|
|
fix extra whitespace after synopsis in hledger-web text manuals,
|
|
update accounts directive/budget/rewrite/read-related mockups,
|
|
drop old org notes.
|
|
|
|
#### Examples
|
|
|
|
consolidate extra/ and data/ in examples/,
|
|
tarsnap csv rules & reporting example,
|
|
xpensetracker csv rules.
|
|
|
|
#### Tools
|
|
|
|
Travis CI now checks functional tests/build warnings/addons,
|
|
temporary workaround for Appveyor CI failures,
|
|
remove accidentally committed pandoc executables,
|
|
some pandoc filter fixes,
|
|
mailmap file to clean up git log authors,
|
|
bench.hs cleanup,
|
|
fix gitignore of generated manuals,
|
|
avoid excessive rebuilding with make [func]test,
|
|
run functional tests more verbosely,
|
|
add alex/happy update step to cabal-install.sh.
|
|
|
|
### hledger-lib 1.2
|
|
|
|
#### journal format
|
|
|
|
A pipe character can optionally be used to delimit payee names in
|
|
transaction descriptions, for more accurate querying and pivoting by
|
|
payee. Eg, for a description like `payee name | additional notes`,
|
|
the two parts will be accessible as pseudo-fields/tags named `payee`
|
|
and `note`.
|
|
<!-- (When descriptions do not contain a pipe character, `payee` and `note` are synonyms for `description`.) -->
|
|
|
|
Some journal parse errors now show the range of lines involved, not just the first.
|
|
|
|
#### ledger format
|
|
|
|
The experimental `ledger:` reader based on the WIP ledger4 project has
|
|
been disabled, reducing build dependencies.
|
|
|
|
#### Misc
|
|
|
|
Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% (#483) (Mykola Orliuk)
|
|
|
|
Fix a few spaceleaks (#413) (Moritz Kiefer)
|
|
|
|
Add Ledger.Parse.Text to package.yaml, fixing a potential build failure.
|
|
|
|
Allow megaparsec 5.2 (#503)
|
|
|
|
Rename optserror -> usageError, consolidate with other error functions
|
|
|
|
### hledger 1.2
|
|
|
|
#### CLI
|
|
|
|
"hledger" and "hledger -h" now print a better organised commands list
|
|
and general usage message respectively (#297).
|
|
|
|
The common reporting flags can now be used anywhere on the command line.
|
|
|
|
Fixed deduplication of addons in commands list.
|
|
|
|
Fixed ugly stack traces in command line parse error messages.
|
|
|
|
The -V/--value flag is now a global report flag, so it works with
|
|
balance, print, register, balancesheet, incomestatement, cashflow,
|
|
etc. (Justin Le)
|
|
|
|
The `--pivot` global reporting option replaces all account names with
|
|
the value of some other field or tag. It has been improved, eg:
|
|
|
|
- we don't add the field/tag name name as a prefix
|
|
- when pivoting on a tag, if the tag is missing we show a blank
|
|
(rather than showing mixed tag values and account names)
|
|
- a pipe character delimiter may be used in descriptions to get a more accurate
|
|
and useful payee report (`hledger balance --pivot payee`)
|
|
|
|
options cleanups
|
|
|
|
#### Addons
|
|
|
|
Easier installation:
|
|
move add-ons and example scripts to bin/,
|
|
convert to stack scripts,
|
|
add a build script to install all deps,
|
|
add some functional tests,
|
|
test add-ons with Travis CI,
|
|
add installation docs to download page.
|
|
|
|
Improved docs:
|
|
all addons now contain their own documentation. Most of them (all but
|
|
hledger-budget) use a new reduced-boilerplate declaration format
|
|
and can show short (-h) and long (--help) command line help.
|
|
(Long help is declared with pre and postambles to the generated
|
|
options help, short help is that truncated at the start of the hledger
|
|
common flags.)
|
|
|
|
`hledger` now shows a cleaner list of addon commands, showing only the
|
|
compiled version of an addon when both source and compiled versions
|
|
are in $PATH. (Addons with .exe extension or no extension are
|
|
considered compiled. Modification time is not checked, ie, an old
|
|
compiled addon will override a newer source version. If there are
|
|
three or more versions of an addon, all are shown. )
|
|
|
|
New addons added/included:
|
|
|
|
- autosync - example symlink to ledger-autosync
|
|
- budget - experimental budget reporting command supporting Ledger-like periodic transactions and automated transactions (Mykola Orliuk)
|
|
- chart - pie-chart-generating prototype, a repackaging of the old hledger-chart tool
|
|
- check - more powerful balance assertions (Michael Walker)
|
|
- check-dupes - find accounts sharing the same leaf name (Stefano Rodighiero)
|
|
- prices - show all market price records (Mykola Orliuk)
|
|
- register-match - a helper for ledger-autosync's deduplication, finds best match for a transaction description
|
|
|
|
The equity command now always generates a valid journal transaction,
|
|
handles prices better, and adds balance assertions (Mykola Orliuk).
|
|
|
|
The rewrite command is more robust and powerful (Mykola Orliuk):
|
|
|
|
- in addition to command-line rewrite options, it understands rewrite rules
|
|
defined in the journal, similar to Ledger's automated transactions (#99).
|
|
Eg:
|
|
```journal
|
|
= ^income
|
|
(liabilities:tax) *.33
|
|
|
|
= expenses:gifts
|
|
budget:gifts *-1
|
|
assets:budget *1
|
|
```
|
|
|
|
- it can generate diff output, allowing easier review of the proposed
|
|
changes, and safe modification of original journal files (preserving
|
|
file-level comments and directives). Eg:
|
|
```
|
|
hledger-rewrite --diff Agency --add-posting 'Expenses:Taxes *0.17' | patch
|
|
```
|
|
|
|
- rewrites can affect multiple postings in a transaction, not just one.
|
|
|
|
- posting-specific dates are handled better
|
|
|
|
#### balance
|
|
|
|
A new --pretty-tables option uses unicode characters for rendering
|
|
table borders in multicolumn reports (#522) (Moritz Kiefer)
|
|
|
|
#### balancesheet/cashflow/incomestatement
|
|
|
|
These commands are now more powerful, able to show multicolumn reports
|
|
and generally having the same features as the balance command. (Justin Le)
|
|
|
|
balancesheet has always ignored a begin date specified with a `-b` or
|
|
`-p` option; now it also ignores a begin date specified with a `date:`
|
|
query. (Related discussion at #531)
|
|
|
|
#### print
|
|
|
|
The output of print is now always a valid journal (fixes #465) (Mykola Orliuk).
|
|
|
|
print now tries to preserves the format of implicit/explicit balancing
|
|
amounts and prices, by default. To print with all amounts explicit,
|
|
use the new `--explicit/-x` flag (fixes #442). (Mykola Orliuk)
|
|
|
|
Don't lose the commodity of zero amounts/zero balance assertions (fixes #475) (Mykola Orliuk)
|
|
|
|
#### Misc
|
|
|
|
Fix a regression in the readability of option parsing errors (#478) (Hans-Peter Deifel)
|
|
|
|
Fix an example in Cli/Main.hs (Steven R. Baker)
|
|
|
|
Allow megaparsec 5.2 (#503)
|
|
|
|
### hledger-ui 1.2
|
|
|
|
Fix a pattern match failure when pressing E on the transaction screen (fixes #508)
|
|
|
|
Accounts with ? in name had empty registers (fixes #498) (Bryan Richter)
|
|
|
|
Allow brick 0.16 (Joshua Chia) and brick 0.17/vty 0.15 (Peter Simons)
|
|
|
|
Allow megaparsec 5.2 (fixes #503)
|
|
|
|
Allow text-zipper 0.10
|
|
|
|
### hledger-web 1.2
|
|
|
|
Accounts with ? in name had empty registers (fixes #498) (Bryan Richter)
|
|
|
|
Allow megaparsec 5.2 (fixes #503)
|
|
|
|
<!-- ### hledger-api 1.2 -->
|
|
|
|
|
|
|
|
## 2016/12/31 hledger 1.1
|
|
|
|
***more robust file format detection,
|
|
integration of WIP ledger4 parser,
|
|
balance assignments,
|
|
hledger-ui --watch,
|
|
hledger-iadd integration,
|
|
bugfixes
|
|
***
|
|
|
|
<!-- ([announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1267)) -->
|
|
<!-- ([announcement](https://groups.google.com/d/topic/hledger/WgdTy3-a6sc/discussion)) -->
|
|
|
|
Release contributors:
|
|
Simon Michael, Johannes Gerer, Mykola Orliuk, Shubham Lagwankar.
|
|
|
|
[project-wide](#project-wide-changes-for-1.1)
|
|
| [hledger-lib](#hledger-lib-1.1)
|
|
| [hledger](#hledger-1.1-1)
|
|
| [hledger-ui](#hledger-ui-1.1)
|
|
| [hledger-web](#hledger-web-1.1)
|
|
| [hledger-api](#hledger-api-1.1)
|
|
|
|
### project-wide changes for 1.1
|
|
|
|
#### misc
|
|
|
|
- don't show stack trace details in errors
|
|
|
|
- more predictable [file format detection](/hledger.html#input-files)
|
|
|
|
When we don't recognise a file's extension, instead of choosing a subset of
|
|
readers to try based on content sniffing, now we just try them all.
|
|
Also, this can be overridden by prepending the reader name and a
|
|
colon to the file path (eg timedot:file.dat, csv:-).
|
|
|
|
- avoid creating junk CSV rules files when trying alternate readers.
|
|
We now create it only after successfully reading a file as CSV.
|
|
|
|
- improvements to [-B](/journal.html#transaction-prices) and [-V](/hledger.html#market-value) docs: clearer descriptions, more linkage ([#403](http://bugs.hledger.org/403))
|
|
|
|
### hledger-lib 1.1
|
|
|
|
#### journal format
|
|
|
|
- [balance assignments](/journal.html#balance-assignments) are now supported ([#438](http://bugs.hledger.org/438), [#129](http://bugs.hledger.org/129), [#157](http://bugs.hledger.org/157), [#288](http://bugs.hledger.org/288))
|
|
|
|
This feature also brings a slight performance drop (~5%);
|
|
optimisations welcome.
|
|
|
|
- also recognise `*.hledger` files as hledger journal format
|
|
|
|
#### ledger format
|
|
|
|
- use ledger-parse from the ledger4 project as an alternate reader for C++ Ledger journals
|
|
|
|
The idea is that some day we might get better compatibility with Ledger files this way.
|
|
Right now this reader is not very useful and will be used only if you explicitly select it with a `ledger:` prefix.
|
|
It parses transaction dates, descriptions, accounts and amounts, and ignores everything else.
|
|
Amount parsing is delegated to hledger's journal parser, and malformed amounts might be silently ignored.
|
|
|
|
This adds at least some of the following as new dependencies for hledger-lib:
|
|
parsers, parsec, attoparsec, trifecta.
|
|
|
|
#### misc
|
|
|
|
- update base lower bound to enforce GHC 7.10+
|
|
|
|
hledger-lib had a valid install plan with GHC 7.8, but currently requires GHC 7.10 to compile.
|
|
Now we require base 4.8+ everywhere to ensure the right GHC version at the start.
|
|
|
|
- Hledger.Read api cleanups
|
|
|
|
- rename dbgIO to dbg0IO, consistent with dbg0, and document a bug in dbg*IO
|
|
|
|
- make readJournalFiles [f] equivalent to readJournalFile f ([#437](http://bugs.hledger.org/437))
|
|
|
|
- more general parser types enabling reuse outside of IO ([#439](http://bugs.hledger.org/439))
|
|
|
|
### hledger 1.1
|
|
|
|
#### balance
|
|
|
|
- with -V, don't ignore market prices in the future ([#453](http://bugs.hledger.org/453), [#403](http://bugs.hledger.org/403))
|
|
|
|
- with -V and multiple same-date market prices, use the last parsed not the highest price ([#403](http://bugs.hledger.org/403))
|
|
|
|
#### misc
|
|
|
|
- fix non-existent "oldtime" dependency ([#431](http://bugs.hledger.org/431))
|
|
|
|
- [hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs) now generates valid journal format when there are multiple commodities
|
|
|
|
### hledger-ui 1.1
|
|
|
|
- with [--watch](/hledger-ui.html#options), the display updates automatically to show file or date changes
|
|
|
|
hledger-ui --watch will reload data when the journal file (or any included file) changes.
|
|
Also, when viewing a current standard period (ie this day/week/month/quarter/year),
|
|
the period will move as needed to track the current system date.
|
|
|
|
- the [--change](/hledger-ui.html#options) flag shows period changes at startup instead of historical ending balances
|
|
|
|
- the A key runs the hledger-iadd tool, if installed
|
|
|
|
- always reload when g is pressed
|
|
|
|
Previously it would check the modification time and reload only if
|
|
it looked newer than the last reload.
|
|
|
|
- mark hledger-ui as "stable"
|
|
|
|
- allow brick 0.15, vty 5.14, text-zipper 0.9
|
|
|
|
### hledger-web 1.1
|
|
|
|
- add [--host](/hledger-web.html#options) option ([#429](http://bugs.hledger.org/429))
|
|
|
|
This came up in the context of Docker, but it seems it wasn't
|
|
possible for hledger-web to serve remote clients directly (without
|
|
a proxy) because of 127.0.0.1 being hardcoded. That can now be
|
|
changed with --host=IPADDR. Also, the default base url uses this
|
|
address rather than a hard-coded "localhost".
|
|
|
|
- rename --server to --serve
|
|
|
|
The --server flag sounded too close in meaning to --host so
|
|
I've renamed it to --serve. The old spelling is still accepted,
|
|
but deprecated and will be removed in the next release.
|
|
|
|
### hledger-api 1.1
|
|
|
|
- serves on 127.0.0.1 by default, [--host](/hledger-api.html#options) option added ([#432](http://bugs.hledger.org/432))
|
|
|
|
Consistent with hledger-web: serves only local requests by default,
|
|
use --host=IPADDR to change this.
|
|
|
|
- fixed the version string in command-line help and swagger info
|
|
|
|
|
|
|
|
## 2016/10/26 hledger 1.0
|
|
|
|
***More hledger-ui features,
|
|
better hledger-web layout,
|
|
new hledger-api server,
|
|
new timedot format,
|
|
--pivot & --anon,
|
|
reorganized multi-format docs,
|
|
built-in help.
|
|
***
|
|
<!-- ([announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1267)) -->
|
|
([announcement](https://groups.google.com/d/topic/hledger/WgdTy3-a6sc/discussion))
|
|
|
|
Release contributors:
|
|
Simon Michael, Dominik Süß, Thomas R. Koll, Moritz Kiefer,
|
|
jungle-boogie, Sergei Trofimovich, Malte Brandy, Sam Doshi,
|
|
Mitchell Rosen, Hans-Peter Deifel, Brian Scott, and Andrew Jones.
|
|
|
|
[project-wide](#project-wide-changes-for-1.0)
|
|
| [hledger-lib](#hledger-lib-1.0)
|
|
| [hledger](#hledger-1.0-1)
|
|
| [hledger-ui](#hledger-ui-1.0)
|
|
| [hledger-web](#hledger-web-1.0)
|
|
| [hledger-api](#hledger-api-1.0)
|
|
|
|
### project-wide changes for 1.0
|
|
|
|
#### misc
|
|
|
|
- added GHC 8 support, dropped GHC 7.6 and 7.8 support.
|
|
|
|
GHC 7.8 support could be restored with small code changes and a maintainer.
|
|
|
|
- a cabal.project file has been added (Moritz Kiefer)
|
|
|
|
- use hpack for maintaining cabal files ([#371](http://bugs.hledger.org/371)).
|
|
|
|
Instead of editing cabal files directly, we now edit the less
|
|
verbose and less redundant package.yaml files and let stack (or
|
|
hpack) update the cabal files. We commit both the .yaml and
|
|
.cabal files.
|
|
|
|
- clean up some old cabal flags
|
|
|
|
- tools/simplebench has been spun off as the [quickbench](http://hackage.haskell.org/package/quickbench) package.
|
|
|
|
- add Appveyor CI builds, provide [more up-to-date Windows binaries](http://hledger.org/contributing.html#quick-links)
|
|
|
|
- extra: add a bunch of CSV rules examples
|
|
|
|
#### docs
|
|
|
|
- the website is simpler, clearer, and more mobile-friendly.
|
|
|
|
Docs are now collected on a single page and organised by type: getting started, reference, more.
|
|
|
|
- reference docs have been split into one manual for each executable and file format.
|
|
|
|
This helps with maintenance and packaging and also should make it
|
|
easier to see what's available and to read just what you need.
|
|
|
|
- manuals are now provided in html, plain text, man and info formats
|
|
|
|
generated from the same source by a new Shake-based docs build system. ([#292](http://bugs.hledger.org/292))
|
|
|
|
- versioned manuals are provided on the website, covering recent releases and the latest dev version ([#385](http://bugs.hledger.org/385), [#387](http://bugs.hledger.org/387))
|
|
|
|
- manuals are built in to the hledger executables, allowing easy offline reading on all platforms.
|
|
|
|
PROG -h shows PROG's command-line usage
|
|
PROG --help shows PROG's manual (fixed width)
|
|
PROG --man shows PROG's manual with man (formatted/paged)
|
|
PROG --info shows PROG's manual with info (hypertext)
|
|
hledger help [TOPIC] shows any manual
|
|
hledger man [TOPIC] shows any manual with man
|
|
hledger info [TOPIC] shows any manual with info
|
|
|
|
- the general and reporting options are now listed in all executable manuals.
|
|
|
|
We assume any of them which are unsupported are harmlessly ignored.
|
|
|
|
- demo.hledger.org is using beancount's example journal.
|
|
|
|
This is the somewhat realistic example journal from the beancount
|
|
project, tweaked for hledger.
|
|
|
|
- minor copyedits (jungle-boogie)
|
|
|
|
#### cli
|
|
|
|
- parsing multiple input files is now robust.
|
|
|
|
When multiple -f options are provided, we now parse each file
|
|
individually rather than just concatenating them, so they can
|
|
have different formats ([#320](http://bugs.hledger.org/320)). Note this also means that
|
|
directives (like \`Y\` or \`alias\`) no longer carry over from one
|
|
file to the next.
|
|
|
|
- I has been added as the short flag for --ignore-assertions
|
|
|
|
(this is different from Ledger's CLI, but useful for hledger-ui).
|
|
|
|
- parsing an argument-less --debug option is more robust
|
|
|
|
### hledger-lib 1.0
|
|
|
|
#### timedot format
|
|
|
|
- new "timedot" format for retroactive/approximate time logging.
|
|
|
|
Timedot is a plain text format for logging dated, categorised
|
|
quantities (eg time), supported by hledger. It is convenient
|
|
for approximate and retroactive time logging, eg when the
|
|
real-time clock-in/out required with a timeclock file is too
|
|
precise or too interruptive. It can be formatted like a bar
|
|
chart, making clear at a glance where time was spent.
|
|
|
|
#### timeclock format
|
|
|
|
- renamed "timelog" format to "timeclock", matching the emacs package
|
|
|
|
- sessions can no longer span file boundaries (unclocked-out
|
|
|
|
sessions will be auto-closed at the end of the file).
|
|
|
|
- transaction ids now count up rather than down ([#394](http://bugs.hledger.org/394))
|
|
|
|
- timeclock files no longer support default year directives
|
|
|
|
- removed old code for appending timeclock transactions to journal transactions.
|
|
|
|
A holdover from the days when both were allowed in one file.
|
|
|
|
#### csv format
|
|
|
|
- fix empty field assignment parsing, rule parse errors after megaparsec port ([#407](http://bugs.hledger.org/407)) (Hans-Peter Deifel)
|
|
|
|
#### journal format
|
|
|
|
- journal files can now include timeclock or timedot files ([#320](http://bugs.hledger.org/320))
|
|
|
|
(but not yet CSV files).
|
|
|
|
- fixed an issue with ordering of same-date transactions included from other files
|
|
|
|
- the "commodity" directive and "format" subdirective are now supported, allowing
|
|
|
|
full control of commodity style ([#295](http://bugs.hledger.org/295)) The commodity directive's
|
|
format subdirective can now be used to override the inferred
|
|
style for a commodity, eg to increase or decrease the
|
|
precision. This is at least a good workaround for [#295](http://bugs.hledger.org/295).
|
|
|
|
- Ledger-style "apply account"/"end apply account" directives are now used to set a default parent account.
|
|
|
|
- the Ledger-style "account" directive is now accepted (and ignored).
|
|
|
|
- bracketed posting dates are more robust ([#304](http://bugs.hledger.org/304))
|
|
|
|
Bracketed posting dates were fragile; they worked only if you
|
|
wrote full 10-character dates. Also some semantics were a bit
|
|
unclear. Now they should be robust, and have been documented
|
|
more clearly. This is a legacy undocumented Ledger syntax, but
|
|
it improves compatibility and might be preferable to the more
|
|
verbose "date:" tags if you write posting dates often (as I do).
|
|
Internally, bracketed posting dates are no longer considered to
|
|
be tags. Journal comment, tag, and posting date parsers have
|
|
been reworked, all with doctests.
|
|
|
|
- balance assertion failure messages are clearer
|
|
|
|
- with --debug=2, more detail about balance assertions is shown.
|
|
|
|
#### misc
|
|
|
|
- file parsers have been ported from Parsec to Megaparsec \o/ ([#289](http://bugs.hledger.org/289), [#366](http://bugs.hledger.org/366)) (Alexey Shmalko, Moritz Kiefer)
|
|
|
|
- most hledger types have been converted from String to Text, reducing memory usage by 30%+ on large files
|
|
|
|
- file parsers have been simplified for easier troubleshooting ([#275](http://bugs.hledger.org/275)).
|
|
|
|
The journal/timeclock/timedot parsers, instead of constructing
|
|
opaque journal update functions which are later applied to build
|
|
the journal, now construct the journal directly by modifying the
|
|
parser state. This is easier to understand and debug. It also
|
|
rules out the possibility of journal updates being a space
|
|
leak. (They weren't, in fact this change increased memory usage
|
|
slightly, but that has been addressed in other ways). The
|
|
ParsedJournal type alias has been added to distinguish
|
|
"being-parsed" journals and "finalised" journals.
|
|
|
|
- file format detection is more robust.
|
|
|
|
The Journal, Timelog and Timedot readers' detectors now check
|
|
each line in the sample data, not just the first one. I think the
|
|
sample data is only about 30 chars right now, but even so this
|
|
fixed a format detection issue I was seeing.
|
|
Also, we now always try parsing stdin as journal format (not just sometimes).
|
|
|
|
- all file formats now produce transaction ids, not just journal ([#394](http://bugs.hledger.org/394))
|
|
|
|
- git clone of the hledger repo on windows now works ([#345](http://bugs.hledger.org/345))
|
|
|
|
- added missing benchmark file ([#342](http://bugs.hledger.org/342))
|
|
|
|
- our stack.yaml files are more compatible across stack versions ([#300](http://bugs.hledger.org/300))
|
|
|
|
- use [newer file-embed](https://github.com/snoyberg/file-embed/issues/18) to fix ghci working directory dependence
|
|
|
|
- report more accurate dates in account transaction report when postings have their own dates
|
|
|
|
(affects hledger-ui and hledger-web registers).
|
|
The newly-named "transaction register date" is the date to be
|
|
displayed for that transaction in a transaction register, for
|
|
some current account and filter query. It is either the
|
|
transaction date from the journal ("transaction general date"),
|
|
or if postings to the current account and matched by the
|
|
register's filter query have their own dates, the earliest of
|
|
those posting dates.
|
|
|
|
- simplify account transactions report's running total.
|
|
|
|
The account transactions report used for hledger-ui and -web
|
|
registers now gives either the "period total" or "historical
|
|
total", depending strictly on the --historical flag. It doesn't
|
|
try to indicate whether the historical total is the accurate
|
|
historical balance (which depends on the user's report query).
|
|
|
|
- reloading a file now preserves the effect of options, query arguments etc.
|
|
|
|
- reloading a journal should now reload all included files as well.
|
|
|
|
- the Hledger.Read.\* modules have been reorganised for better reuse.
|
|
|
|
Hledger.Read.Utils has been renamed Hledger.Read.Common
|
|
and holds low-level parsers & utilities; high-level read
|
|
utilities are now in Hledger.Read.
|
|
|
|
- clarify amount display style canonicalisation code and terminology a bit.
|
|
|
|
Individual amounts still have styles; from these we derive
|
|
the standard "commodity styles". In user docs, we might call
|
|
these "commodity formats" since they can be controlled by the
|
|
"format" subdirective in journal files.
|
|
|
|
- Journal is now a monoid
|
|
|
|
- expandPath now throws a proper IO error
|
|
|
|
- more unit tests, start using doctest
|
|
|
|
### hledger 1.0
|
|
|
|
#### add
|
|
|
|
- suggest only one commodity at a time as default amount ([#383](http://bugs.hledger.org/383))
|
|
|
|
(since we currently can't input more than one at a time)
|
|
|
|
#### balance
|
|
|
|
- added --change flag for consistency
|
|
|
|
- H/--historical now also affects single-column balance reports with a start date ([#392](http://bugs.hledger.org/392)).
|
|
|
|
This has the same effect as just omitting the start date, but adds consistency.
|
|
|
|
- in CSV output, render amounts in one-line format ([#336](http://bugs.hledger.org/336))
|
|
|
|
#### balancesheet
|
|
|
|
- fix an infinite loop ([#393](http://bugs.hledger.org/393))
|
|
|
|
#### print
|
|
|
|
- in CSV output, fix and rename the transaction id field
|
|
|
|
#### register
|
|
|
|
- fix a sorting regression with --date2 ([#326](http://bugs.hledger.org/326))
|
|
|
|
- --average/-A is now affected by --historical/-H
|
|
|
|
- added --cumulative flag for consistency
|
|
|
|
- in CSV output, include the transaction id and rename the total field ([#391](http://bugs.hledger.org/391))
|
|
|
|
#### stats
|
|
|
|
- fixed an issue with ordering of include files
|
|
|
|
#### misc
|
|
|
|
- --pivot option added, groups postings by tag instead of account ([#323](http://bugs.hledger.org/323)) (Malte Brandy)
|
|
|
|
- --anon option added, obfuscates account names and descriptions ([#265](http://bugs.hledger.org/265)) (Brian Scott)
|
|
|
|
(Only affects the hledger tool, for now.)
|
|
|
|
- try to clarify balance/register's various report modes,
|
|
|
|
kinds of "balance" displayed, and related options and language.
|
|
|
|
- with multiple --change/--cumulative/--historical flags, use the last one instead of complaining
|
|
|
|
- don't add the "d" suffix when displaying day periods
|
|
|
|
- stack-ify extra/hledger-rewrite.hs
|
|
|
|
### hledger-ui 1.0
|
|
|
|
#### accounts screen
|
|
|
|
- at depth 0, show accounts on one "All" line and show all transactions in the register
|
|
|
|
- 0 now sets depth limit to 0 instead of clearing it
|
|
|
|
- always use --no-elide for a more regular accounts tree
|
|
|
|
#### register screen
|
|
|
|
- registers can now include/exclude subaccount transactions.
|
|
|
|
The register screen now includes subaccounts' transactions if the
|
|
accounts screen was in tree mode, or when showing an account
|
|
which was at the depth limit. Ie, it always shows the
|
|
transactions contributing to the balance displayed on the
|
|
accounts screen. As on the accounts screen, F toggles between
|
|
tree mode/subaccount txns included by default and flat
|
|
mode/subaccount txns excluded by default. (At least, it does when
|
|
it would make a difference.)
|
|
|
|
- register transactions are filtered by realness and status ([#354](http://bugs.hledger.org/354)).
|
|
|
|
Two fixes for the account transactions report when --real/--cleared/real:/status:
|
|
are in effect, affecting hledger-ui and hledger-web:
|
|
|
|
1. exclude transactions which affect the current account via an excluded posting type.
|
|
Eg when --real is in effect, a transaction posting to the current account with only
|
|
virtual postings will not appear in the report.
|
|
|
|
2. when showing historical balances, don't count excluded posting types in the
|
|
starting balance. Eg with --real, the starting balance will be the sum of only the
|
|
non-virtual prior postings.
|
|
|
|
This is complicated and there might be some ways to confuse it still, causing
|
|
wrongly included/excluded transactions or wrong historical balances/running totals
|
|
(transactions with both real and virtual postings to the current account, perhaps ?)
|
|
|
|
- show more accurate dates when postings have their own dates.
|
|
|
|
If postings to the register account matched by the register's
|
|
filter query have their own dates, we show the earliest of these
|
|
as the transaction date.
|
|
|
|
#### misc
|
|
|
|
- H toggles between showing "historical" or "period" balances ([#392](http://bugs.hledger.org/392)).
|
|
|
|
By default hledger-ui now shows historical balances, which
|
|
include transactions before the report start date (like hledger
|
|
balance --historical). Use the H key to toggle to "period" mode,
|
|
where balances start from 0 on the report start date.
|
|
|
|
- shift arrow keys allow quick period browsing
|
|
|
|
- shift-down narrows to the next smaller standard period
|
|
(year/quarter/month/week/day), shift-up does the reverse
|
|
- when narrowed to a standard period, shift-right/left moves to
|
|
the next/previous period
|
|
- \`t\` sets the period to today.
|
|
|
|
- a runs the add command
|
|
|
|
- E runs $HLEDGER<sub>UI</sub><sub>EDITOR</sub> or $EDITOR or a default editor (vi) on the journal file.
|
|
|
|
When using emacs or vi, if a transaction is selected the cursor will be positioned at its journal entry.
|
|
|
|
- / key sets the filter query; BACKSPACE/DELETE clears it
|
|
|
|
- Z toggles display of zero items (like --empty), and they are shown by default.
|
|
|
|
-E/--empty is now the default for hledger-ui, so accounts with 0 balance
|
|
and transactions posting 0 change are shown by default. The Z key
|
|
toggles this, entering "nonzero" mode which hides zero items.
|
|
|
|
- R toggles inclusion of only real (non-virtual) postings
|
|
|
|
- U toggles inclusion of only uncleared transactions/postings
|
|
|
|
- I toggles balance assertions checking, useful for troubleshooting
|
|
|
|
- vi-style movement keys are now supported (for help, you must now use ? not h) ([#357](http://bugs.hledger.org/357))
|
|
|
|
- ESC cancels minibuffer/help or clears the filter query and jumps to top screen
|
|
|
|
- ENTER has been reserved for later use
|
|
|
|
- reloading now preserves any options and modes in effect
|
|
|
|
- reloading on the error screen now updates the message rather than entering a new error screen
|
|
|
|
- the help dialog is more detailed, includes the hledger-ui manual, and uses the full terminal width if needed
|
|
|
|
- the header/footer content is more efficient; historical/period and tree/flat modes are now indicated in the footer
|
|
|
|
- date: query args on the command line now affect the report period.
|
|
|
|
A date2: arg or --date2 flag might also affect it (untested).
|
|
|
|
- hledger-ui now uses the quicker-building microlens
|
|
|
|
### hledger-web 1.0
|
|
|
|
#### ui
|
|
|
|
- use full width on large screens, hide sidebar on small screens, more standard bootstrap styling ([#418](http://bugs.hledger.org/418), [#422](http://bugs.hledger.org/422)) (Dominik Süß)
|
|
|
|
- show the sidebar by default ([#310](http://bugs.hledger.org/310))
|
|
|
|
- fix the add link's tooltip
|
|
|
|
- when the add form opens, focus the first field ([#338](http://bugs.hledger.org/338))
|
|
|
|
- leave the add form's date field blank, avoiding a problem with tab clearing it ([#322](http://bugs.hledger.org/322))
|
|
|
|
- use transaction id instead of date in transaction urls ([#308](http://bugs.hledger.org/308)) (Thomas R. Koll)
|
|
|
|
- after following a link to a transaction, highlight it (Thomas R. Koll)
|
|
|
|
- misc. HTML/CSS/file cleanups/fixes (Thomas R. Koll)
|
|
|
|
#### misc
|
|
|
|
- startup is more robust ([#226](http://bugs.hledger.org/226)).
|
|
|
|
Now we exit if something is already using the specified port,
|
|
and we don't open a browser page before the app is ready.
|
|
|
|
- termination is more robust, avoiding stray background threads.
|
|
|
|
We terminate the server thread more carefully on exit, eg on control-C in GHCI.
|
|
|
|
- more robust register dates and filtering in some situations (see hledger-ui notes)
|
|
|
|
- reloading the journal preserves options, arguments in effect ([#314](http://bugs.hledger.org/314)).
|
|
|
|
The initial query specified by command line arguments is now preserved
|
|
when the journal is reloaded. This does not appear in the web UI, it's
|
|
like an invisible extra filter.
|
|
|
|
- show a proper not found page on 404
|
|
|
|
- document the special \`inacct:\` query ([#390](http://bugs.hledger.org/390))
|
|
|
|
### hledger-api 1.0
|
|
|
|
#### misc
|
|
|
|
- new hledger-api tool: a simple web API server with example clients ([#316](http://bugs.hledger.org/316))
|
|
|
|
- start an Angular-based API example client ([#316](http://bugs.hledger.org/316)) (Thomas R. Koll)
|
|
|
|
|
|
|
|
## 2015/10/30 hledger 0.27
|
|
|
|
***New curses-style interface, market value reporting, wide characters, fast regex aliases, man pages***
|
|
([announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1267))
|
|
<!-- [announcement](https://groups.google.com/forum/#!topic/hledger/3w7G0H9e7aE) -->
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Carlos Lopez-Camey.
|
|
|
|
**hledger 0.27:**
|
|
|
|
Account aliases:
|
|
|
|
- Regular expression account aliases are now fast enough that you can
|
|
use lots of them without slowing things down. They now take
|
|
O(aliases x accounts) time, instead of O(aliases x transactions);
|
|
also, regular expressions are no longer recompiled unnecessarily.
|
|
|
|
Documentation:
|
|
|
|
- The hledger packages now have man pages, based on the current user
|
|
manual, thanks to the mighty pandoc ([#282](http://bugs.hledger.org/282)).
|
|
|
|
Journal format:
|
|
|
|
- Dates must now begin with a digit (not /, eg).
|
|
|
|
- The comment directive longer requires an end comment, and will
|
|
extend to the end of the file(s) without it.
|
|
|
|
Command-line interface:
|
|
|
|
- Output (balance reports, register reports, print output etc.)
|
|
containing wide characters, eg chinese/japanese/korean characters,
|
|
should now align correctly, when viewed in apps and fonts that show
|
|
wide characters as double width ([#242](http://bugs.hledger.org/242)).
|
|
|
|
- The argument for --depth or depth: must now be positive.
|
|
|
|
add:
|
|
|
|
- Journal entries are now saved with all amounts explicit, to avoid
|
|
losing price info ([#283](http://bugs.hledger.org/283)).
|
|
|
|
- Fixed a bug which sometimes (when the same letter pair was repeated)
|
|
caused it not to pick the most similar past transaction for defaults.
|
|
|
|
balance:
|
|
|
|
- There is now a -V/--value flag to report current market value (as in Ledger).
|
|
It converts all reported amounts using their "default market price".
|
|
"Market price" is the new name for "historical prices", defined with the P directive.
|
|
The default market price for a commodity is the most recent one found in the journal on or before the report end date.
|
|
|
|
Unlike Ledger, hledger's -V uses only the market prices recorded
|
|
with P directives; it does not use the transaction prices
|
|
recorded as part of posting amounts.
|
|
Using both -B and -V at the same time is possible.
|
|
|
|
- Fixed a bug in amount normalization which caused amount styles
|
|
(commodity symbol placement, decimal point character, etc.) to be
|
|
lost in certain cases ([#230](http://bugs.hledger.org/230), [#276](http://bugs.hledger.org/276)).
|
|
|
|
- The balance command's --format option can now adjust the rendering
|
|
style of multi-commodity amounts, if you begin the format string
|
|
with one of:
|
|
|
|
%_ - renders amounts on multiple lines, bottom-aligned (the default)
|
|
%^ - renders amounts on multiple lines, top-aligned
|
|
%, - renders amounts on one line, comma-separated
|
|
|
|
- The balance report's final total (and the line above it) now adapt
|
|
themselves to a custom --format.
|
|
|
|
print:
|
|
|
|
- The --match option prints the journal entry that best matches a
|
|
description (ie whose description field is most similar to the value
|
|
given, and if there are several equally similar, the most recent).
|
|
This was originally an add-on I used to guess account names for
|
|
ledger-autosync. It's nice for quickly looking up a recent
|
|
transaction from a guessed or partial description.
|
|
|
|
- print now always right-aligns the amounts in an entry, even when
|
|
they are wider than 12 characters. (If there is a price, it's
|
|
considered part of the amount for right-alignment.)
|
|
|
|
register:
|
|
|
|
- Amount columns now resize automatically, using more space if it's
|
|
needed and available.
|
|
|
|
**hledger-ui 0.27:**
|
|
|
|
- [hledger-ui](manual#ui) is a new curses-style UI, intended to be a standard part
|
|
of the hledger toolset for all users (except on native MS Windows,
|
|
where the vty lib is not [yet](https://github.com/coreyoconnor/vty/pull/1) supported).
|
|
|
|
The UI is quite simple, allowing just browsing of accounts and
|
|
transactions, but it has a number of improvements over the old
|
|
hledger-vty, which it replaces:
|
|
|
|
- adapts to screen size
|
|
- handles wide characters
|
|
- shows multi-commodity amounts on one line
|
|
- manages cursor and scroll position better
|
|
- allows depth adjustment
|
|
- allows --flat toggle
|
|
- allows --cleared toggle
|
|
- allows journal reloading
|
|
- shows a more useful transaction register, like hledger-web
|
|
- offers multiple color themes
|
|
- includes some built-in help
|
|
|
|
hledger-ui is built with brick, a new higher-level UI library based
|
|
on vty, making it relatively easy to grow and maintain.
|
|
|
|
**hledger-web 0.27:**
|
|
|
|
- Fix keyboard shortcut for adding a transaction (Carlos Lopez-Camey)
|
|
|
|
- Clear the form when clicking 'Add a transaction' (just like the shortcut) (Carlos Lopez-Camey)
|
|
|
|
- Disallow -f- (reading from standard input) which currently doesn't work ([#202](http://bugs.hledger.org/202))
|
|
|
|
- Fix broken links when using --base-url ([#235](http://bugs.hledger.org/235))
|
|
|
|
- Fix the --file-url option ([#285](http://bugs.hledger.org/285))
|
|
|
|
- Show fewer "other accounts" in the account register: to reduce
|
|
clutter in the "other accounts" field, if there are both real and
|
|
virtual postings to other accounts, show only the accounts posted to
|
|
by real postings.
|
|
|
|
|
|
## 2015/7/12 hledger 0.26
|
|
|
|
<!-- [announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/N) -->
|
|
<!-- [announcement](https://groups.google.com/forum/#!topic/hledger/k2Y_NYZGGJw) -->
|
|
***Website & doc updates, account aliases, misc. bugfixes & cleanups, performance.***
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Imuli,
|
|
Carlos Lopez-Camey,
|
|
Kyle Marek-Spartz,
|
|
Rick Lupton,
|
|
Simon Hengel.
|
|
|
|
**Changes to hledger.org & docs:**
|
|
|
|
- examples everywhere, screenshots, content & style updates
|
|
- manual: reorganise topics, add some undocumented things, clarify some things
|
|
- dev guide: more links, put how-tos first, copy diagram from old wiki, update the setup docs
|
|
|
|
|
|
**User-visible changes in hledger since 0.25.1:**
|
|
|
|
Account aliases:
|
|
|
|
- Account aliases are once again non-regular-expression-based, by default. (#252)
|
|
|
|
The regex account aliases added in 0.24 tend to trip up people
|
|
switching between hledger and Ledger. (Also they are currently
|
|
slow). We now use the old non-regular-expression aliases again,
|
|
by default; these are unsurprising, useful, and pretty close in
|
|
functionality to Ledger's aliases.
|
|
|
|
The new regex aliases are still available, but they must now be
|
|
enclosed in forward slashes. (Ledger effectively ignores these.)
|
|
|
|
Journal format:
|
|
|
|
- We now parse, and also print, journal entries with no postings, as
|
|
proposed on the mail lists. These are not well-formed General
|
|
Journal entries/transactions, but on the other hand:
|
|
Ledger and beancount parse them;
|
|
if they are parsed, they should be printed;
|
|
they provide a convenient way to record (and report) non-transaction events;
|
|
and they permit more gradual introduction and learning of the concepts
|
|
(so eg a beginner can keep a simple journal before learning about accounts and postings).
|
|
|
|
- Trailing whitespace after a `comment` directive is now ignored.
|
|
|
|
Command-line interface:
|
|
|
|
- The -f/file option may now be used multiple times.
|
|
This is equivalent to concatenating the input files before running hledger.
|
|
The add command adds entries to the first file specified.
|
|
|
|
Queries:
|
|
|
|
- real: (no argument) is now a synonym for real:1
|
|
|
|
- tag: now matches tag names with a regular expression, like most other queries
|
|
|
|
- empty: is no longer supported, as it overlaps a bit confusingly with
|
|
amt:0. The --empty flag is still available.
|
|
|
|
- You can now match on pending status (#250)
|
|
|
|
A transaction/posting status of ! (pending) was effectively equivalent
|
|
to * (cleared). Now it's a separate state, not matched by --cleared.
|
|
The new Ledger-compatible --pending flag matches it, and so does
|
|
--uncleared.
|
|
|
|
The relevant search query terms are now status:*, status:! and
|
|
status: (the old status:1 and status:0 spellings are deprecated).
|
|
|
|
Since we interpret --uncleared and status: as "any state except cleared",
|
|
it's not currently possible to match things which are neither cleared
|
|
nor pending.
|
|
|
|
activity:
|
|
|
|
- activity no longer excludes 0-amount postings by default.
|
|
|
|
add:
|
|
|
|
- Don't show quotes around the journal file path in the "Creating..."
|
|
message, for consistency with the subsequent "Adding..." message.
|
|
|
|
balancesheet:
|
|
|
|
- Accounts beginning with "debt" or now also recognised as liabilities.
|
|
|
|
print:
|
|
|
|
- We now limit the display precision of inferred prices. (#262)
|
|
|
|
When a transaction posts to two commodities without specifying the
|
|
conversion price, we generate a price which makes it balance (cf
|
|
http://hledger.org/manual.html#prices). The print command showed
|
|
this with full precision (so that manual calculations with the
|
|
displayed numbers would look right), but this sometimes meant we
|
|
showed 255 digits (when there are multiple postings in the
|
|
commodity being priced, and the averaged unit price is an
|
|
irrational number). In this case we now set the price's display
|
|
precision to the sum of the (max) display precisions of the
|
|
commodities involved. An example:
|
|
```
|
|
hledger -f- print
|
|
<<<
|
|
1/1
|
|
c C 10.00
|
|
c C 11.00
|
|
d D -320.00
|
|
>>>
|
|
2015/01/01
|
|
c C 10.00 @ D 15.2381
|
|
c C 11.00 @ D 15.2381
|
|
d D -320.00
|
|
|
|
>>>=0
|
|
```
|
|
There might still be cases where this will show more price decimal
|
|
places than necessary.
|
|
|
|
- We now show inferred unit prices with at least 2 decimal places.
|
|
|
|
When inferring prices, if the commodities involved have low
|
|
display precisions, we don't do a good job of rendering
|
|
accurate-looking unit prices. Eg if the journal doesn't use any
|
|
decimal places, any inferred unit prices are also displayed with
|
|
no decimal places, which makes them look wrong to the user. Now,
|
|
we always give inferred unit prices a minimum display precision of
|
|
2, which helps a bit.
|
|
|
|
register:
|
|
|
|
- Postings with no amounts could give a runtime error in some obscure case, now fixed.
|
|
|
|
stats:
|
|
|
|
- stats now supports -o/--outputfile, like register/balance/print.
|
|
- An O(n^2) performance slowdown has been fixed, it's now much faster on large journals.
|
|
```
|
|
+--------------------------------------++--------+--------+
|
|
| || 0.25 | 0.26 |
|
|
+======================================++========+========+
|
|
| -f data/100x100x10.journal stats || 0.10 | 0.16 |
|
|
| -f data/1000x1000x10.journal stats || 0.45 | 0.21 |
|
|
| -f data/10000x1000x10.journal stats || 58.92 | 2.16 |
|
|
+--------------------------------------++--------+--------+
|
|
```
|
|
|
|
Miscellaneous:
|
|
|
|
- The June 30 day span was not being rendered correctly; fixed. (#272)
|
|
- The deprecated shakespeare-text dependency has been removed more thoroughly.
|
|
- The bench script invoked by "cabal bench" or "stack bench" now runs
|
|
some simple benchmarks.
|
|
You can get more accurate benchmark times by running with --criterion.
|
|
This will usually give much the same numbers and takes much longer.
|
|
Or with --simplebench, it benchmarks whatever commands are
|
|
configured in bench/default.bench. This mode uses the first
|
|
"hledger" executable in $PATH.
|
|
|
|
**User-visible changes in hledger-web since 0.25.1:**
|
|
|
|
- make the j keybinding respect --base-url (fixes #271)
|
|
- respect command line options (fixes #225)
|
|
- include the unminified jquery source again (#161)
|
|
- fix build breakage from #165 (fixes #268)
|
|
- fix a js error breaking add form in browsers other than firefox (fixes #251)
|
|
- drop deprecated network-conduit dependency
|
|
|
|
#### 2015/4/29 hledger-web 0.25.1
|
|
|
|
- support/require base-compat >0.8 (#245)
|
|
|
|
#### 2015/4/29 hledger 0.25.1
|
|
|
|
- timelog: support the description field (#247)
|
|
|
|
#### 2015/4/29 hledger-lib 0.25.1
|
|
|
|
- support/require base-compat >0.8 (#245)
|
|
|
|
## 2015/4/7 hledger 0.25
|
|
|
|
<!-- [announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/N) -->
|
|
[announcement](https://groups.google.com/forum/#!topic/hledger/k2Y_NYZGGJw)
|
|
***GHC 7.10 compatibility, terminal width awareness, useful averages and totals columns, and a more robust hledger-web add form.***
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Julien Moutinho.
|
|
|
|
**User-visible changes in hledger since 0.24.1:**
|
|
|
|
- GHC 7.10 compatibility ([#239](http://bugs.hledger.org/239))
|
|
|
|
- On POSIX systems, the register command 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.
|
|
|
|
This feature requires the C curses dev libraries, making installation slightly harder.
|
|
If that's a problem you can disable curses support with a cabal flag:
|
|
`cabal install -f-curses ...`.
|
|
|
|
- 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:
|
|
<br clear="all">
|
|
```
|
|
<--------------------------------- 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 totals
|
|
column and -A/--average shows an 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.
|
|
|
|
**User-visible changes in hledger-web since 0.24.1:**
|
|
|
|
- GHC 7.10 compatibility ([#239](http://bugs.hledger.org/239))
|
|
|
|
- fix the add form when there are included files ([#234](http://bugs.hledger.org/234))
|
|
|
|
NB to make this work, the add form now shows the full file path of
|
|
the main and included journal files.
|
|
|
|
- improve add form validation ([#223](http://bugs.hledger.org/223), [#234](http://bugs.hledger.org/234))
|
|
|
|
All add form errors are displayed as form errors, not internal
|
|
server errors, and when there are errors the add form is redisplayed
|
|
(form inputs are not preserved, currently).
|
|
|
|
- keep the add button right-aligned when pressing ctrl - on the add form
|
|
|
|
#### 2015/3/15 hledger 0.24.1
|
|
|
|
- timelog: show hours with 2 decimal places, not 1 ([#237](http://bugs.hledger.org/237))
|
|
- fix balance accumulation through assertions in several commodities ([#195](http://bugs.hledger.org/195))
|
|
- fix rendering of week 52 heading in weekly reports
|
|
- allow utf8-string-1 ([fpco/stackage/#426](https://github.com/fpco/stackage/issues/426))
|
|
|
|
#### 2015/3/15 hledger-lib 0.24.1
|
|
|
|
- fix JournalReader "ctx" compilation warning
|
|
- add some type signatures in Utils to help make ghci-web
|
|
|
|
#### 2015/1/10 hledger-web 0.24.1
|
|
|
|
- add missing modules to fix cabal tests ([#232](http://bugs.hledger.org/232))
|
|
|
|
|
|
## 2014/12/25 hledger 0.24
|
|
|
|
Release contributors:
|
|
Simon Michael,
|
|
Julien Moutinho,
|
|
Ryan Desfosses,
|
|
Gergely Risko,
|
|
Gwern Branwen.
|
|
|
|
<!-- [announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/N) -->
|
|
***CSV export,
|
|
a non-floating point number representation,
|
|
more powerful account aliases,
|
|
speedups,
|
|
and
|
|
a streamlined web UI.***
|
|
|
|
**User-visible changes in hledger since 0.23.3:**
|
|
|
|
General:
|
|
|
|
- fix redundant compilation when cabal installing the hledger packages
|
|
- switch to Decimal for representing amounts ([#118](http://bugs.hledger.org/118))
|
|
- report interval headings (eg in balance, register reports) are shown
|
|
compactly when possible
|
|
- general speedups.
|
|
```
|
|
+--------------------------------------------++----------------+--------------+--------+
|
|
| || hledger-0.23.3 | hledger-0.24 | ledger |
|
|
+============================================++================+==============+========+
|
|
| -f data/100x100x10.journal balance || 0.05 | 0.03 | 0.01 |
|
|
| -f data/1000x1000x10.journal balance || 0.34 | 0.21 | 0.04 |
|
|
| -f data/10000x1000x10.journal balance || 2.72 | 1.48 | 0.19 |
|
|
| -f data/10000x1000x10.journal balance aa || 3.16 | 1.55 | 0.14 |
|
|
| -f data/100x100x10.journal register || 0.09 | 0.05 | 0.04 |
|
|
| -f data/1000x1000x10.journal register || 0.66 | 0.32 | 0.30 |
|
|
| -f data/10000x1000x10.journal register || 6.27 | 2.77 | 2.80 |
|
|
| -f data/10000x1000x10.journal register aa || 3.30 | 1.62 | 0.21 |
|
|
| -f data/100x100x10.journal print || 0.06 | 0.05 | 0.01 |
|
|
| -f data/1000x1000x10.journal print || 0.42 | 0.25 | 0.04 |
|
|
| -f data/10000x1000x10.journal print || 3.95 | 2.57 | 0.38 |
|
|
| -f data/10000x1000x10.journal print aa || 3.23 | 1.56 | 0.14 |
|
|
| -f data/100x100x10.journal stat || 0.04 | 0.03 | 0.01 |
|
|
| -f data/1000x1000x10.journal stat || 0.35 | 0.24 | 0.03 |
|
|
| -f data/10000x1000x10.journal stat || 14.84 | 13.29 | 0.20 |
|
|
| -f data/10000x1000x10.journal stat aa || 12.08 | 10.16 | 0.17 |
|
|
+--------------------------------------------++----------------+--------------+--------+
|
|
```
|
|
|
|
Journal format:
|
|
|
|
- detect decimal point and digit groups more robustly ([#196](http://bugs.hledger.org/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](http://bugs.hledger.org/195))
|
|
- support multi-line comments using "comment", "end comment"
|
|
directives, like Ledger
|
|
|
|
CSV format:
|
|
|
|
- fix: reading CSV data from stdin now works better
|
|
- 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)
|
|
- the rules file include directive is now relative to the current
|
|
file's directory ([#198](http://bugs.hledger.org/198))
|
|
- CSV output is now built in to the balance, print, and register
|
|
commands, controlled by -O/--output-format (and -o/--output-file,
|
|
see below). This means that hledger data can be easily exported,
|
|
eg for spreadsheet reporting or to migrate to a different tool.
|
|
|
|
CLI:
|
|
|
|
- the --width and --debug options now require their argument ([#149](http://bugs.hledger.org/149))
|
|
- when an option is repeated, the last value takes precedence ([#219](http://bugs.hledger.org/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](http://bugs.hledger.org/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](http://bugs.hledger.org/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](http://bugs.hledger.org/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](http://bugs.hledger.org/201), [#221](http://bugs.hledger.org/221), [#222](http://bugs.hledger.org/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
|
|
|
|
|
|
**User-visible changes in hledger-web since 0.23.3:**
|
|
|
|
General:
|
|
|
|
- fix: add missing hs/js files to package
|
|
- the web UI has been streamlined, dropping the raw and entries views and
|
|
the edit form
|
|
- the help dialog has been improved
|
|
- keyboard shortcuts are now available
|
|
- the sidebar can be toggled open or closed (press s)
|
|
|
|
Journal view:
|
|
|
|
- layout tweaks for less truncation of descriptions and account names
|
|
|
|
Register view:
|
|
|
|
- fix: don't show all zero amounts when searching by account within an
|
|
account register view
|
|
- chart improvements: show zero balances with correct commodity; show
|
|
accurate balance at all dates; show transaction events & tooltips;
|
|
show zero/today lines & background colors
|
|
|
|
Add form:
|
|
|
|
- parses data more strictly and gives better errors (eg [#194](http://bugs.hledger.org/194))
|
|
- allows any number of postings, not just two
|
|
- after adding a transaction, goes back to the journal
|
|
- keyboard shortcut (a) allows quick access
|
|
|
|
Dependencies:
|
|
|
|
- allow warp 3\*, wai-handler-launch 3\*
|
|
- require yesod 1.4* (fixes [#212](http://bugs.hledger.org/212))
|
|
- js updated (jquery, bootstrap, flot), added (typeahead, cookie, hotkeys),
|
|
removed (select2)
|
|
|
|
|
|
**API-ish changes in hledger-lib since 0.23.3:**
|
|
|
|
- fix combineJournalUpdates folding order
|
|
- fix a regexReplaceCI bug
|
|
- fix a splitAtElement bug with adjacent separators
|
|
- mostly replace slow regexpr with regex-tdfa (fixes [#189](http://bugs.hledger.org/189))
|
|
- use the modern Text.Parsec API
|
|
- allow transformers 0.4*
|
|
- regexReplace now supports backreferences
|
|
- Transactions now remember their parse location in the journal file
|
|
- export Regexp types, disambiguate CsvReader's similarly-named type
|
|
- export failIfInvalidMonth/Day (closes [#216](http://bugs.hledger.org/216))
|
|
- track the commodity of zero amounts when possible
|
|
(useful eg for hledger-web's multi-commodity charts)
|
|
- show posting dates in debug output
|
|
- more debug helpers
|
|
|
|
|
|
#### 2014/9/12 hledger-web 0.23.3
|
|
|
|
- remove warp, wai-handler-launch upper bounds (fixes [#205](http://bugs.hledger.org/205))
|
|
|
|
#### 2014/9/12 hledger 0.23.3
|
|
|
|
- allow text 1.2+ (fixes [#207](http://bugs.hledger.org/207))
|
|
|
|
#### 2014/5/8 hledger 0.23.2
|
|
|
|
- register: also fix date sorting of postings ([#184](http://bugs.hledger.org/184))
|
|
|
|
#### 2014/5/7 hledger 0.23.1
|
|
|
|
- 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](http://bugs.hledger.org/184))
|
|
- add: don't apply a default commodity to amounts on entry ([#138](http://bugs.hledger.org/138))
|
|
- cli: options before the add-on command name are now also passed to it ([#182](http://bugs.hledger.org/182))
|
|
- csv: allow the first name in a fields list to be empty ([#178](http://bugs.hledger.org/178))
|
|
- csv: don't validate fields count in skipped lines ([#177](http://bugs.hledger.org/177))
|
|
|
|
|
|
## 2014/5/1 hledger 0.23
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1028)
|
|
***command-line fixes and polish, a new accounts
|
|
command, and a number of changes to the balance command relating
|
|
to --depth, --flat, and multicolumn mode, which I find has made it much
|
|
more useful.***
|
|
|
|
Changes since 0.22.2:
|
|
|
|
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](http://bugs.hledger.org/169)).
|
|
- Fix: + before an amount is no longer parsed as part of the commodity ([#181](http://bugs.hledger.org/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.
|
|
|
|
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](http://bugs.hledger.org/170)).
|
|
- Fix: multicolumn reports now support --date2 (cf [#174](http://bugs.hledger.org/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](http://bugs.hledger.org/174)).
|
|
|
|
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.
|
|
|
|
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](http://bugs.hledger.org/155)) - GHC 7.8, shakespeare 2
|
|
|
|
|
|
## 2014/5/1 hledger-web 0.23
|
|
|
|
Changes since 0.22.8:
|
|
|
|
- The --static-root flag has been renamed to --file-url.
|
|
- hledger-web now builds with Cabal's default -O, not -O2,
|
|
so may be a little quicker/less memory-hungry to install.
|
|
|
|
|
|
#### 2014/4/29 hledger-web 0.22.8
|
|
|
|
- allow shakespeare 2.* ([#179](http://bugs.hledger.org/179))
|
|
|
|
#### 2014/4/17 hledger-web 0.22.7
|
|
|
|
- add Peter Simons' patch fixing Data.Conduit.Network HostIPv4 error ([#171](http://bugs.hledger.org/171))
|
|
|
|
#### 2014/4/16 hledger-web 0.22.6
|
|
|
|
- depend on hledger[-lib] 0.22.2
|
|
|
|
#### 2014/4/16 hledger 0.22.2
|
|
|
|
- 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
|
|
|
|
#### 2014/4/15 hledger-web 0.22.5
|
|
|
|
- allow http-client 0.3.*, fixing cabal install again with GHC <= 7.6 (not yet 7.8)
|
|
- use pretty-show only with GHC 7.4+, fixing GHC 7.2 (fixes [#155](http://bugs.hledger.org/155))
|
|
- allow warp 2.1, fixing cabal install
|
|
|
|
#### 2014/2/10 hledger-web 0.22.4
|
|
|
|
* web: include the right unminified version of jquery.url.js (1.1) to avoid js breakage
|
|
|
|
#### 2014/2/10 hledger-web 0.22.3
|
|
|
|
* web: fix version number reported by --version
|
|
|
|
#### 2014/2/10 hledger-web 0.22.2
|
|
|
|
New:
|
|
|
|
* web: new option `--static-root` to set the base url for static files
|
|
|
|
Improved:
|
|
|
|
* web: include unminified source of all javascript to help packagers (fixes [#161](http://bugs.hledger.org/161))
|
|
* web: work around clang-related build failures with OS X mavericks/XCode 5
|
|
* web: allow blaze-html 0.7 (closes [#159](http://bugs.hledger.org/159))
|
|
|
|
|
|
#### 2014/1/6 hledger 0.22.1
|
|
|
|
- require the latest pretty-show so hledger installation no longer
|
|
needs an upgraded version of happy, and the docs build on hackage
|
|
|
|
- require regex-tdfa directly instead of regex-compat-tdfa,
|
|
simplifying Debian packaging
|
|
|
|
## 2013/12/13 hledger 0.22
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/5333)
|
|
|
|
New:
|
|
|
|
- balance: with a reporting interval (monthly, yearly etc.), the
|
|
[balance command](manual.html#balance) will now show a multi-column report, showing either
|
|
the per-period changes in balance (by default),
|
|
the period ending balances starting from zero (`--cumulative`),
|
|
or the actual period ending balances (`--historical`).
|
|
A more detailed specification of the balance command's behaviour
|
|
has been added to [Hledger.Cli.Balance](http://hackage.haskell.org/package/hledger/docs/Hledger-Cli-Balance.html).
|
|
|
|
- csv: rules files can now include other rules files, useful for factoring out common rules
|
|
|
|
- queries: `sym:REGEXP` matches commodity symbols
|
|
|
|
- register: `--average/-A` shows a running average, like ledger
|
|
|
|
- in period expressions, `-` (hyphen) can be used as a more compact
|
|
synonym for `from` and `to`. Eg: `-p 2012/12/1-2013/2/1` or `date:aug-`.
|
|
|
|
- the add-on script examples in extra/ have been updated; get the
|
|
hledger source and add .../hledger/extra/ to your PATH to make them
|
|
available. They include:
|
|
|
|
- `hledger-accountnames.hs` - print account names
|
|
- `hledger-balance-csv.hs` - print a balance report as CSV
|
|
- `hledger-equity.hs` - print an entry matching all account balances (like ledger)
|
|
- `hledger-print-unique.hs` - print only journal entries unique descriptions
|
|
- `hledger-register-csv.hs` - print a register report as CSV
|
|
|
|
Improved:
|
|
|
|
- balancesheet: now shows just assets and liabilities, not equity
|
|
|
|
- print: comment positions (same line or next line) are now preserved
|
|
|
|
- queries: `amt` now uses the = operator by default, eg `amt:50` is
|
|
equivalent to `amt:=50`
|
|
|
|
- command line processing has been overhauled and made more
|
|
consistent, and now has tests and debug output. More flags now work
|
|
both before and after COMMAND: `-f`, `--rule-file`, `--alias`,
|
|
`--help`, `--debug`, `--version`. Command line help, command
|
|
aliases, API docs and code have been improved.
|
|
|
|
- `--debug` now takes an optional numeric argument to set the debug level
|
|
higher than 1, for more verbose debug output in a few cases.
|
|
|
|
Fixed:
|
|
|
|
- csv: CSV data containing non-ascii characters is now supported
|
|
|
|
- build with latest versions of dependencies (text, warp, http-conduit etc.)
|
|
|
|
Release contributors:
|
|
|
|
Marko Kocić, Max Bolingbroke, and a big welcome to first-time committer John Wiegley! :)
|
|
|
|
#### 2013/7/10 hledger-web 0.21.3
|
|
|
|
- drop yesod-platform dependency, it is not worthwhile. The other
|
|
yesod dependencies are currently without version ranges, so cabal
|
|
install might require --constraint to restrict them in some cases.
|
|
|
|
#### 2013/6/23 hledger 0.21.3
|
|
|
|
- csv: fix wrong application of multiple assignments in a conditional block
|
|
|
|
#### 2013/6/4 hledger 0.21.2
|
|
|
|
- web: fix a build failure
|
|
|
|
#### 2013/6/3 hledger 0.21.1
|
|
|
|
- web: show proper Y-values in register chart (fixes [#122](http://bugs.hledger.org/122))
|
|
- web: avoid trailing commas in register chart values, in case of trouble with IE
|
|
|
|
## 2013/6/1 hledger 0.21
|
|
|
|
Bugs fixed:
|
|
|
|
- parsing: don't fail when a csv amount has trailing whitespace (fixes [#113](http://bugs.hledger.org/113))
|
|
- web: don't show prices in the accounts sidebar (fixes [#114](http://bugs.hledger.org/114))
|
|
- web: show one line per commodity in charts. Needs more polish, but fixes [#109](http://bugs.hledger.org/109).
|
|
- web: bump yesod-platform dependency to avoid a cabal install failure
|
|
|
|
Journal reading:
|
|
|
|
- balance assertions are now checked after reading a journal
|
|
|
|
web command:
|
|
|
|
- web: support/require yesod 1.2
|
|
- web: show zero-balance accounts in the sidebar (fixes [#106](http://bugs.hledger.org/106))
|
|
- web: use nicer select2 autocomplete widgets in the add form
|
|
|
|
Documentation and infrastructure:
|
|
|
|
- add basic cabal test suites for hledger-lib and hledger
|
|
|
|
#### 2013/5/4 hledger 0.20.0.1
|
|
|
|
* web: require at least version 1.1.7 of yesod-core to avoid a potential build error
|
|
* Update the bug tracker and source repository links on hackage
|
|
|
|
## 2013/5/1 hledger 0.20
|
|
|
|
Bugs fixed:
|
|
|
|
* balance: a 0.19 regression which showed wrong total balance with `--flat` has been fixed ([#94](http://bugs.hledger.org/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](http://bugs.hledger.org/97), [#98](http://bugs.hledger.org/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).
|
|
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](http://bugs.hledger.org/45))
|
|
- The current entry may be restarted by entering `<` at any prompt. ([#47](http://bugs.hledger.org/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
|
|
|
|
<!-- Days since last release: 109\ -->
|
|
<!-- Commits since last release: 105 -->
|
|
|
|
|
|
#### 2012/11/24 hledger-web 0.19.3
|
|
|
|
* web: fix "Prelude.read: no parse" errors with GHC >= 7.6
|
|
* web & lib refactoring
|
|
|
|
## 2012/11/16 hledger-web 0.19
|
|
|
|
* builds with yesod 1.1.3
|
|
* obeys command-line query options at startup again
|
|
* the autogenerated session file is now a dot file
|
|
(.hledger-web_client_session.aes)
|
|
|
|
#### 2012/11/16 hledger 0.19.1
|
|
|
|
* [87](http://bugs.hledger.org/87): fix an arithmetic and transaction balancing bug with multiple
|
|
total-priced amounts ( @@ PRICE )
|
|
* parsing: ignore ledger-style balance assertions ( = BAL ) and fixed
|
|
lot price declarations ( {= PRICE} )
|
|
|
|
|
|
## 2012/10/21 hledger 0.19
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/4190)
|
|
***a much faster balance command, and support for the latest GHC and libs.***
|
|
|
|
* hledger, hledger-lib: support GHC 7.6 and latest cmdargs, haskeline, split
|
|
* balance report no longer has an O(n^2) slowdown with large numbers of accounts,
|
|
and is generally more speedy. Benchmark on a 2010 macbook:
|
|
|
|
```
|
|
+-------------------------------------------++--------------+--------------+--------+
|
|
| || hledger-0.18 | hledger-0.19 | ledger |
|
|
+===========================================++==============+==============+========+
|
|
| -f data/100x100x10.journal balance || 0.21 | 0.07 | 0.09 |
|
|
| -f data/1000x1000x10.journal balance || 10.13 | 0.47 | 0.62 |
|
|
| -f data/1000x10000x10.journal balance || 40.67 | 0.67 | 1.01 |
|
|
| -f data/10000x1000x10.journal balance || 15.01 | 3.22 | 2.36 |
|
|
| -f data/10000x1000x10.journal balance aa || 4.77 | 4.40 | 2.33 |
|
|
+-------------------------------------------++--------------+--------------+--------+
|
|
```
|
|
|
|
* build version is set with CPP instead of cabal-file-th
|
|
|
|
#### 2012/7/7 hledger 0.18.2
|
|
|
|
* web: fix compilation error with -fblaze_html_0_5 flag
|
|
* bump base lower bound to 4.3 to enforce GHC 7 requirement
|
|
|
|
#### 2012/6/29 hledger 0.18.1
|
|
|
|
* register, print: fix reverse ordering of same-day transactions
|
|
* balance: respect all query terms, not just acct
|
|
* combine command-line flags like --depth properly with non-flag query patterns
|
|
* web: don't auto-create a missing journal file at startup
|
|
* stats: list included journal files
|
|
* support tilde (~) in journal and rules file paths
|
|
* expose more utilities from CsvReader
|
|
* remove ensureRulesFile debug trace
|
|
|
|
## 2012/5/29 hledger 0.18
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/3736)
|
|
|
|
* web: hledger-web is now based on yesod 1.0
|
|
* web: fix js error breaking second use of add form ([#72](http://bugs.hledger.org/72))
|
|
* web: make `yesod devel` work
|
|
* the command-line now supports a more powerful [query language](manual.html#queries), consistent with the web UI
|
|
* hledger now fully supports [tags](manual.html#tags) (aka metadata) on both transactions and postings, and querying by tag or tag value
|
|
* new [commands](manual.html#incomestatement) `incomestatement`, `balancesheet`, and `cashflow` provide basic financial statements under certain conditions
|
|
* format conversion is now done on demand, and the convert command has been dropped. So instead of
|
|
`hledger convert FILE.csv` just do `hledger -f FILE.csv print` or any other command.
|
|
You can also pipe any supported format into `hledger -f- CMD` and hledger will try to do the right thing.
|
|
* support for GHC 6.12 has been dropped; this release has been tested with GHC 7.0.4, 7.2.2, and 7.4.1
|
|
* unicode is now handled properly on all supported GHC versions
|
|
* API and internal cleanups
|
|
|
|
#### 2012/3/3 hledger-web 0.17.1
|
|
|
|
* set more upper bounds to fix cabal install issues with latest packages
|
|
|
|
## 2012/2/1 hledger 0.17
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/3149)
|
|
***fixes bugs and updates dependencies***
|
|
|
|
* support HP 2011.4.0.0
|
|
* support and require cmdargs 0.9
|
|
* allow non-threaded builds, supporting more debian architectures
|
|
* parsing: give a clearer error when journal file path contains ~
|
|
* parsing: -B/--cost now ignores P historical prices, like ledger
|
|
* parsing: inferred amounts now use the cost commodity if known, like ledger ([#69](http://bugs.hledger.org/69))
|
|
* balance: report differently-priced lots in an account as a single amount, like ledger
|
|
* web: support and require yesod >= 0.9.4
|
|
* web: use the main aeson package again
|
|
* web: fix a regression with dollar signs in hamlet templates
|
|
* web: add form allowed blank account names ([#81](http://bugs.hledger.org/81))
|
|
* chart, vty: hledger-chart and hledger-vty demoted to non-maintained extras for now
|
|
|
|
#### 2011/10/26 hledger-web 0.16.5
|
|
|
|
* web: fix a ghc 6.12 incompatibility in Settings.hs
|
|
|
|
#### 2011/10/24 hledger-web 0.16.4
|
|
|
|
* web: yet another cabal install fix, fix AppConfig name clash
|
|
|
|
#### 2011/10/4 hledger-web 0.16.3
|
|
|
|
* web: another cabal install fix, disable favicon.ico since it's not easily embeddable
|
|
|
|
#### 2011/10/4 hledger-web 0.16.2
|
|
|
|
* web: more cabal install fixes (remove bad path, add routes and models) ([#63](http://bugs.hledger.org/63))
|
|
|
|
#### 2011/10/4 hledger 0.16.1
|
|
|
|
* parsing: show correct line number for posting parse errors ([#67](http://bugs.hledger.org/67))
|
|
* web: declare static files as extra-source-files to fix cabal install ([#63](http://bugs.hledger.org/63))
|
|
* web: add a threaded flag for debian ([#68](http://bugs.hledger.org/68))
|
|
* web: fewer build warnings by default
|
|
|
|
## 2011/10/1 hledger 0.16
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/521)
|
|
***a stability/bugfix/polish release (which may become the pattern for
|
|
even-numbered releases in future.)***
|
|
|
|
* cli: strip the -- when calling add-on commands, so their options work ([#64](http://bugs.hledger.org/64))
|
|
* cli: hledger ADDON --version now shows add-on command's version
|
|
* cli: only the add and web commands auto-create the journal file
|
|
* cli: give a non-confusing error if LEDGER_FILE contains a literal tilde
|
|
* add: clearer prompts, more validation, use . to end also
|
|
* add: use unix line endings consistently, avoiding parse error on windows ([#51](http://bugs.hledger.org/51))
|
|
* add: avoid excess whitespace between transactions ([#46](http://bugs.hledger.org/46))
|
|
* balance: ledger compatibility fix: don't elide parent accounts with multiple displayed subaccounts
|
|
* convert: always order converted transactions by date
|
|
* convert: rename currency -> base-currency, in-field, out-field -> amount-in-field, amount-out-field
|
|
* convert: give an error, not a zero when date or amount-in-field/amount-out-field parsing fails
|
|
* register: show more useful range of intervals with --empty and a query pattern
|
|
* print, web: always show both dates, ignoring --effective ([#42](http://bugs.hledger.org/42))
|
|
* web: production builds (the default with cabal) have all web content embedded (dev builds use ./static/) ([#63](http://bugs.hledger.org/63))
|
|
* web: update to yesod 0.9
|
|
* web: obey at least some of the general reporting options, like --cost
|
|
* web: adjust the default base url when a custom port is specified
|
|
* web: prevent an infinite redirect when custom base url has a trailing slash
|
|
* web: fix "not:'multi word'" patterns
|
|
* web: hide old title and search form when adding/editing
|
|
* web: adjust --help to indicate command-line arguments are not expected
|
|
* web: don't bother running cli unit tests at startup
|
|
|
|
#### 2011/9/12 hledger 0.15.2, hledger-web 0.15.3
|
|
|
|
* handle multiple filter patterns on the command-line again
|
|
* don't pass an add-on command's name to it as an extra argument
|
|
* don't give a confusing error with -f and no command
|
|
* fix a regression balancing a transaction containing different prices
|
|
* web: fix journal edit form
|
|
* web: fix wrong transaction amount in account register with virtual postings
|
|
* web: fix some invalid html
|
|
|
|
#### 2011/9/2 hledger 0.15.1, hledger-web 0.15.2
|
|
|
|
* fix a parsec 2 incompatibility
|
|
* web: add missing Hledger.Web.Options to cabal file
|
|
* web: tighten up dependencies to reduce build problems
|
|
|
|
## 2011/9/1 hledger 0.15
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/2748)
|
|
|
|
* hledger's options are now modal, providing better help (using cmdargs)
|
|
* hledger now lists and runs any hledger-* add-ons found in the user's path
|
|
* case insensitivity of filter patterns has been fixed
|
|
* parsing: `alias`/`end aliases` directives, for renaming accounts, are supported, like ledger's but a bit more powerful; also an `--alias` option for renaming on the fly
|
|
* parsing: the `account` directive now preserves posting type (normal/virtual/balanced virtual)
|
|
* parsing: the `pop` directive is supported as an alias for `end tag`, like ledger
|
|
* parsing: `P` (historical price) directives can contain a (ignored) numeric time zone, like ledger
|
|
* parsing: the leading `!` in directives is now optional and deprecated, like ledger
|
|
* parsing: entries with a negative amount in the first posting now infer the correct balancing amount
|
|
* parsing: bad date checking is more accurate
|
|
* balance: collapsing of boring accounts to one line can be disabled with `--no-elide`
|
|
* balance: fix a wrong precision regression from last release
|
|
* convert: standard input can be converted
|
|
* convert: an alternate rules file can be specified with `--rules`
|
|
* convert: `account2-field` can be used when the CSV file specifies both accounts
|
|
* convert: `description-field` can have a custom format and combine multiple CSV fields
|
|
* convert: `in-field` and `out-field` support CSV files that use two amount columns
|
|
* convert: don't fail when there's no default journal file
|
|
* web: the web interface has been overhauled/cleaned up
|
|
* web: account register views are now transaction-based, like gnucash etc., and show accurate historical balances when possible
|
|
* web: simple balance charts are displayed (using flot)
|
|
* web: more expressive and consistent search patterns, using a new matching engine
|
|
* web: add form uses currently focussed account as default, redirects to itself, formats status messages better
|
|
* web: sidebar now shows empty/boring accounts too
|
|
* web: now uses warp and a newer yesod
|
|
* api simplifications
|
|
* importable Hledger, Hledger.Web, Hledger.Vty and Hledger.Chart modules
|
|
* the basic reports are now provided by hledger-lib for easier reuse
|
|
* new api use examples: `equity.hs`, `uniquify.hs`
|
|
* some old base 3 support has been dropped
|
|
* the old -s flag has been dropped
|
|
|
|
## 2011/4/22 hledger 0.14
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/383)
|
|
|
|
* remove the specific process dependency that caused too many cabal install problems
|
|
* treat arguments as possibly-encoded platform strings, do not assume UTF-8
|
|
* hledger now always reads and writes data as UTF-8, ignoring the system locale ([#34](http://bugs.hledger.org/34))
|
|
* look at the LEDGER_FILE env var for the journal path, otherwise LEDGER, like ledger
|
|
* handle a blank LEDGER_FILE or LEDGER value more gracefully (use the default file path)
|
|
* the default journal file path is now ~/.hledger.journal, to avoid breaking mac filevault ([#41](http://bugs.hledger.org/41))
|
|
* amounts with different prices are now aggregated, like ledger
|
|
* zero amounts now have no sign or commodity, like ledger
|
|
* parsing: assume current year when transaction dates have no year and there is no default year
|
|
* parsing: more careful validation of eg leap years in transaction dates
|
|
* parsing: better international number format support, allowing comma as decimal point and flexible digit groups ([#32](http://bugs.hledger.org/32))
|
|
* parsing: support @@ syntax specifying total price
|
|
* parsing: infer the conversion price in transactions involving two unpriced commodities
|
|
* parsing: support per-posting cleared status
|
|
* parsing: more reporting interval syntax: biweekly, bimonthly, every N days/weeks/months/quarters/years, every Nst/nd/rd/th day of month/week
|
|
* add: avoid offering account names for completion in inappropriate contexts
|
|
* add: remember default account even if user submits a different amount.
|
|
* convert: account-field directive specifies a field containing the base account name
|
|
* convert: effective-date-field directive specifies a field containing the effective date
|
|
* convert: date-format directive specifies custom date formats
|
|
* convert: allow amount fields containing "AMT @@ PRICE"
|
|
* histogram: honour the specified start or end dates
|
|
* print: don't show a trailing space when description is blank
|
|
* web: allow filter patterns with spaces if quoted, like command line
|
|
* web: make edit form more cross-browser compatible, fixing it in firefox ([#38](http://bugs.hledger.org/38))
|
|
* web: move hidden add/edit/import forms below main content to help text-mode browsers a bit ([#33](http://bugs.hledger.org/33))
|
|
|
|
Release contributors: Simon Michael, Dmitry Astapov, Eric Kow, Max Bolingbroke, Omari Norman.
|
|
Stats:
|
|
137 days, 113 commits, 11 end-user features and 15 end-user bugfixes since last release.
|
|
189 unit & functional tests and 59% unit test coverage (hledger, hledger-lib packages).
|
|
5540 lines of code (all packages).
|
|
|
|
## 2010/12/6 hledger 0.13
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/296)
|
|
***readline editing and tab completion
|
|
from Judah Jacobson, more ledger compatibility, a more robust and
|
|
installable web interface, bugfixes, and a much-deliberated package split.***
|
|
|
|
* move web, vty, chart commands into separate hledger-web, hledger-vty,
|
|
hledger-chart packages. This both simplifies (no more build flags) and
|
|
complicates (more room for dependency hassles), but I hope overall it
|
|
will be easier and more scalable.
|
|
* all packages but chart are now marked "beta", ie "not finished but
|
|
suitable for everyday use"
|
|
* parsing: ledger compatibility: support D default commodity directive
|
|
* parsing: ledger compatibility: ignore metadata tags on transactions and postings
|
|
* parsing: ledger compatibility: ignore cleared flags at the start of postings
|
|
* parsing: ledger compatibility: ignore C commodity conversion directives
|
|
* parsing: price precisions no longer affect commodities' display precisions
|
|
* add: readline-style editing
|
|
* add: tab-completion for account names
|
|
* add: add the default commodity, if any, to commodity-less amounts ([#26](http://bugs.hledger.org/26))
|
|
* add: misc. commodity/precision/defaults-related bugfixes
|
|
* chart: give a meaningful error message for empty journals
|
|
* chart: update for current Chart lib (0.14)
|
|
* web: support files now live in ./.hledger/web/ and will be auto-created at startup
|
|
* web: page layout is more robust with wide content
|
|
* web: allow editing of included files
|
|
* web: handle multiple filter patterns correctly
|
|
* web: allow single- or double-quoted filter patterns containing spaces
|
|
* web: update for current yesod lib (0.6.*)
|
|
* transaction balancing is now based on display precision ([#23](http://bugs.hledger.org/23))
|
|
* briefer, more informative usage error messages
|
|
|
|
#### 2010/9/6 hledger 0.12.1
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/272)
|
|
|
|
* web: fix account filtering breakage
|
|
* installing: tighten up utf8-string dependency
|
|
|
|
## 2010/9/5 hledger 0.12
|
|
|
|
* web: new, better web ui; accounts are now a permanent sidebar; add form uses auto-completing combo fields
|
|
* installing: fix a build error with parsec 3 ([#22](http://bugs.hledger.org/22))
|
|
* installing: require exactly matching hledger-lib version for more robust builds
|
|
* installing: explicit data-object dependency to ensure hledger and hledger-lib use the same time version
|
|
* installing: explicit hamlet dependency for more robust building
|
|
* installing: build threaded and with warnings
|
|
* installing: drop -fweb610 flag
|
|
* installing: add gtk2hs-buildtools dependency needed to build with -fchart
|
|
* installing: require cabal 1.6 or greater
|
|
* add -D/--daily flag
|
|
* register: with --depth, clip account names or aggregate postings rather than excluding them
|
|
* fix !include with deeply nested directories ([#21](http://bugs.hledger.org/21))
|
|
* fix obscured date parse errors with parsec 3
|
|
* handle unicode better in errors
|
|
* fix a ghc 6.12.3 error when running interpreted
|
|
|
|
Stats: 50 days and 90 commits since last release, now at 5741
|
|
lines of code with 136 tests and 41% unit test coverage.
|
|
|
|
#### 2010/07/17 hledger 0.11.1
|
|
|
|
* fix --version output
|
|
|
|
## 2010/07/17 hledger 0.11
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/253)
|
|
|
|
* split --help, adding --help-options and --help-all/-H, and make
|
|
it the default command
|
|
* use "journal" instead of "ledger file"; default suffix is
|
|
.journal, default file is \~/.journal
|
|
* auto-create missing journal files rather than giving an error
|
|
* new format-detecting file reader (mixed journal transactions
|
|
and timelog entries are no longer supported)
|
|
* work around for first real-world rounding issue (test zero to 8
|
|
decimal places instead of 10)
|
|
* when reporting a balancing error, convert the error amount to
|
|
cost
|
|
* parsing: support double-quoted commodity symbols, containing
|
|
anything but a newline or double quote
|
|
* parsing: allow minus sign before commodity symbol as well as
|
|
after (also fixes a convert bug)
|
|
* parsing: fix wrong parse error locations within postings
|
|
* parsing: don't let trailing whitespace in a timelog description
|
|
mess up account names
|
|
* add: allow blank descriptions
|
|
* balance: --flat provides a simple non-hierarchical format
|
|
* balance: --drop removes leading account name components from a
|
|
--flat report
|
|
* print, register, balance: fix layout issues with
|
|
mixed-commodity amounts
|
|
* print: display non-simple commodity names with double-quotes
|
|
* stats: layout tweaks, add payee/description count
|
|
* stats: don't break on an empty file
|
|
* stats: -p/--period support; a reporting interval generates
|
|
multiple reports
|
|
* test: drop verbose test runner and testpack dependency
|
|
* web: a new web ui based on yesod, requires ghc 6.12; old ghc
|
|
6.10-compatible version remains as -fweb610
|
|
* web: allow wiki-like journal editing
|
|
* web: warn and keep running if reloading the journal gives an
|
|
error
|
|
* web: --port and --base-url options set the webserver's tcp port
|
|
and base url
|
|
* web: slightly better browser opening on microsoft windows,
|
|
should find a standard firefox install now
|
|
* web: in a web-enabled build on microsoft windows, run the web
|
|
ui by default
|
|
|
|
Stats: 55 days and 136 commits since last release. Now at 5552
|
|
lines of code with 132 tests and 54% unit test coverage.
|
|
|
|
## 2010/05/23 hledger 0.10
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/242)
|
|
***installation and bug fixes and api improvements***
|
|
|
|
* fix too-loose testpack dependency, missing safe dependency
|
|
* fix ghc 6.12 compatibility with -fweb
|
|
* fix handling of non-ascii arguments with ghc 6.12
|
|
* fix "0.8" in --version output
|
|
* fix an occasional stack overflow error due to infinite
|
|
recursion in Posting/Transaction equality tests
|
|
* the -fwebhappstack build flag is gone for now, to avoid a cabal
|
|
problem
|
|
* parsing: if there is no description, don't require a space
|
|
after the transaction date
|
|
* parsing: balance balanced-virtual postings separately, allow
|
|
them to have an implicit amount
|
|
* parsing: timelog entries now generate balanced transactions,
|
|
using virtual postings
|
|
* parsing: simpler high-level parse error message
|
|
* parsing: clearer bad date errors
|
|
* add: fix wrongful program exit on bad dates
|
|
* print: negative account patterns now exclude transactions
|
|
containing any posting to a matched account
|
|
* vty: rename the ui command to vty for consistency
|
|
* vty: fix restricted account scope when backing up to top level
|
|
* web: fix non-ascii handling with ghc 6.12
|
|
* web: fix a bug possibly affecting reload-on-change
|
|
* consolidate module namespace under Hledger, api cleanups
|
|
|
|
Stats: 44 days, 81 commits since last release. Now at 4904 lines of
|
|
code including tests, 144 tests, 53% coverage.
|
|
|
|
## 2010/04/10 hledger 0.9
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/239)
|
|
***many bugfixes and small improvements, GHC 6.12 support, and a separate library package
|
|
to make building (h)ledger-compatible tools easier.***
|
|
|
|
* ghc 6.12 support
|
|
* split off hledger-lib package, containing core types & utils
|
|
* parsing: ignore D, C, N, tag, end tag directives; we should now
|
|
accept any ledger 2.6 file
|
|
* parsing: allow numbers in commodities if double-quoted, like
|
|
ledger
|
|
* parsing: allow transactions with empty descriptions
|
|
* parsing: show a better error for illegal month/day numbers in
|
|
dates
|
|
* parsing: don't ignore trailing junk in a smart date, eg in web
|
|
add form
|
|
* parsing: don't ignore unparsed text following an amount
|
|
* parsing: @ was being treated as a currency symbol
|
|
* add: fix precision handling in default amounts ([#19](http://bugs.hledger.org/19))
|
|
* add: elide last amount in added transactions
|
|
* convert: keep original description by default, allow
|
|
backreferences in replace pattern
|
|
* convert: basic csv file checking, warn instead of dying when it
|
|
looks wrong
|
|
* convert: allow blank/comment lines at end of rules file
|
|
* print: always show zero amounts as 0, hiding any
|
|
commodity/decimal places/price, like ledger
|
|
* register: fix bad layout with years < 1000
|
|
* register: fix a Prelude.head error with reporting interval,
|
|
--empty, and --depth
|
|
* register: fix a regression, register should not show posting
|
|
comments
|
|
* register: with --empty, intervals should continue to ends of
|
|
the specified period
|
|
* stats: better output when last transaction is in the future
|
|
* stats: show commodity symbols, account tree depth, reorder
|
|
slightly
|
|
* web: -fweb now builds with simpleserver; to get happstack, use
|
|
-fwebhappstack instead
|
|
* web: pre-fill the add form with today's date
|
|
* web: help links, better search form wording
|
|
* web: show a proper error for a bad date in add form ([#17](http://bugs.hledger.org/17))
|
|
* web: fix for unicode search form values
|
|
* web: fix stack overflow caused by regexpr, and handle requests
|
|
faster ([#14](http://bugs.hledger.org/14))
|
|
* web: look for more-generic browser executables
|
|
* web: more robust browser starting ([#6](http://bugs.hledger.org/6))
|
|
* error message cleanups
|
|
* more tests, refactoring, docs
|
|
|
|
Stats: 58 days, 2 contributors, 102 commits since last release. Now
|
|
at 3983 lines of non-test code, 139 tests, 53% coverage.
|
|
|
|
## 2010/02/11 hledger 0.8
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/210)
|
|
***Bug fixes, refactoring and Hi-Res Graphical Charts.***
|
|
|
|
* parsing: in date=date2, use first date's year as a default for
|
|
the second
|
|
* add: ctrl-d doesn't work on windows, suggest ctrl-c instead
|
|
* add: --no-new-accounts option disallows new accounts (Roman
|
|
Cheplyaka)
|
|
* add: re-use the previous transaction's date as default (Roman
|
|
Cheplyaka)
|
|
* add: a command-line argument now filters by account during
|
|
history matching (Roman Cheplyaka)
|
|
* chart: new command, generates balances pie chart (requires
|
|
-fchart flag, gtk2hs) (Roman Cheplyaka, Simon Michael)
|
|
* register: make reporting intervals honour a display expression
|
|
([#18](http://bugs.hledger.org/18))
|
|
* web: fix help link
|
|
* web: use today as default when adding with a blank date
|
|
* web: re-enable account/period fields, they seem to be fixed,
|
|
along with file re-reading ([#16](http://bugs.hledger.org/16))
|
|
* web: get static files from the cabal data dir, or the current
|
|
dir when using make ([#13](http://bugs.hledger.org/13))
|
|
* web: preserve encoding during add, assuming it's utf-8 ([#15](http://bugs.hledger.org/15))
|
|
* fix some non-utf8-aware file handling ([#15](http://bugs.hledger.org/15))
|
|
* filter ledger again for each command, not just once at program
|
|
start
|
|
* refactoring, clearer data types
|
|
|
|
Stats: 62 days, 2 contributors, 76 commits since last release. Now
|
|
at 3464 lines of non-test code, 97 tests, 53% test coverage.
|
|
|
|
## 2009/12/11 hledger 0.7
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/193)
|
|
|
|
* price history support (first cut): P directives now work,
|
|
though differently from ledger. Each posting amount takes its
|
|
fixed unit price from the price history (or
|
|
@) when available. This is simple and useful for things like
|
|
foreign currency expenses (but not investment tracking). Like
|
|
ledger, balance and register don't show amount prices any more, and
|
|
don't separate differently-priced amounts. Unlike ledger, print
|
|
shows all amount prices, and supports -B.
|
|
* --effective option, will use transactions' effective dates if
|
|
any
|
|
* convert: new rules file format, find/create rules file
|
|
automatically, more robust parsing, more useful --debug output
|
|
* print: always sort by date, fix long account name truncation,
|
|
align amounts, show end of line comments, show all amounts for
|
|
clarity (don't elide the final balancing amount)
|
|
* ui: use vty 4, fixes non-ascii and gnome terminal problems
|
|
(issues [#3](http://bugs.hledger.org/3), [#4](http://bugs.hledger.org/4))
|
|
* web: allow data entry, react to data file changes, better
|
|
layout, help links, remove histogram command and filter fields for
|
|
now, fix bad localhost redirect, filter form did not work in eg
|
|
firefox (issue [#7](http://bugs.hledger.org/7)), reset link did not work in all browsers
|
|
* parsing: require whitespace between date and status code, allow
|
|
(and ignore) a time in price records, better error messages,
|
|
non-zero exit code on parse failure
|
|
* display non-ascii error messages properly (issue [#5](http://bugs.hledger.org/5))
|
|
* fix an arithmetic bug that occasionally rejected valid
|
|
transactions
|
|
* fix a regex bug in showtree
|
|
* don't break if HOME is undefined
|
|
* --debug now implies --verbose
|
|
* add functional tests like ledger's, use test-framework for
|
|
speedy running, release shelltestrunner as a separate package
|
|
* many hlint cleanups (Marko Kocić)
|
|
* many site and documentation updates
|
|
|
|
Stats: 60 days, 1 contributor, 50 commits since last release. Now
|
|
at 3377 lines of non-test code, 97 tests, 53% test coverage.
|
|
|
|
#### 2009/06/22 hledger 0.6.1
|
|
|
|
* avoid use of exitSuccess which was breaking ghc 6.8/base 3
|
|
compatibility (issue [#2](http://bugs.hledger.org/2))
|
|
|
|
## 2009/06/13 hledger 0.6
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/1215)
|
|
***Some pre-built binaries are now available. cabal install works on gnu/linux, mac and windows. Hurrah!***
|
|
|
|
* now cabal-installable on unix, mac, and windows, with Haskell
|
|
Platform
|
|
* provide experimental platform binaries
|
|
* parsing: fix a silly failure to open ledger file paths
|
|
containing \~
|
|
* parsing: show better errors for unbalanced transaction and
|
|
missing default year
|
|
* parsing: allow parentheses and brackets inside account names,
|
|
as ledger does
|
|
* parsing: fail on empty account name components, don't just
|
|
ignore
|
|
* add: description passed as arguments now affects first
|
|
transaction only
|
|
* add: better handling of virtual postings and default amounts
|
|
* print, register: show virtual accounts bracketed/parenthesised
|
|
* web: improved web ui supporting full patterns & period
|
|
expressions
|
|
* new "stats" command reports some ledger statistics
|
|
* many dev/doc/deployment infrastructure improvements
|
|
* move website into darcs repo, update home page
|
|
* move issue tracker to google code
|
|
|
|
Release stats:
|
|
|
|
* Contributors: Simon Michael
|
|
* Days since last release: 21
|
|
* Commits: 94
|
|
* Lines of non-test code: 2865
|
|
* Tests: 82
|
|
* Test coverage: 53% expressions
|
|
* Known errors: 3 (inconsistent eliding, vty-related failures)
|
|
* Performance: similar
|
|
(http://hledger.org/profs/200906131120.bench)
|
|
|
|
#### 2009/05/23 hledger 0.5.1
|
|
|
|
* two fixes: really disable vty flag by default, and include
|
|
ConvertCommand in cabal file
|
|
|
|
## 2009/05/23 hledger 0.5
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/1181)
|
|
|
|
* the vty flag is disabled by default again, to ease installation
|
|
on windows
|
|
* use ledger 3 terminology: a ledger contains transactions which
|
|
contain postings
|
|
* new "add" command prompts for transactions interactively and
|
|
adds them to the ledger
|
|
* new "convert" command transforms bank CSV exports to ledger
|
|
format, with rule-based cleanup
|
|
* new "histogram" command shows transaction counts per day or
|
|
other reporting interval
|
|
* most commands now work properly with UTF8-encoded text (Sergey
|
|
Astanin)
|
|
* invoking as "hours" is now less different: it just uses your
|
|
timelog, not your ledger
|
|
* ..quarterly/-Q option summarises by quarter
|
|
* ..uncleared/-U option looks only at uncleared transactions
|
|
* be more accurate about checking balanced amounts, don't rely on
|
|
display precision
|
|
* enforce balancing for bracketed virtual postings
|
|
* fix bug in eliding of posting amounts
|
|
* don't show trailing spaces on amountless postings
|
|
* parse null input as an empty ledger
|
|
* don't treat comments as part of transaction descriptions
|
|
* require some postings in ledger transactions
|
|
* require a non-empty description in ledger transactions
|
|
* don't fail when matching an empty pattern, as in "not:"
|
|
* make the web server handle the null path
|
|
* code, api and documentation updates
|
|
* add a contributor agreement/list
|
|
|
|
Release stats:
|
|
|
|
* Contributors: Simon Michael, Sergey Astanin
|
|
* Days since last release: 51
|
|
* Commits: 101
|
|
* Lines of non-test code: 2795
|
|
* Tests: 76
|
|
* Known errors: 0
|
|
|
|
## 2009/04/03 hledger 0.4
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/1097)
|
|
***There is also a new website at hledger.org, with screenshots (textual!),
|
|
a demo (will it survive!?), and docs (not too many!) ...
|
|
I wrote it because I did not want to hack on c++ and because haskell seemed a good fit ...
|
|
new happstack-based web interface.***
|
|
|
|
* new "web" command serves reports in a web browser (install with
|
|
-f happs to build this)
|
|
* make the vty-based curses ui a cabal build option, which will
|
|
be ignored on MS windows
|
|
* drop the ..options-anywhere flag, that is now the default
|
|
* patterns now use not: and desc: prefixes instead of \^ and \^\^
|
|
* patterns are now case-insensitive, like ledger
|
|
* !include directives are now relative to the including file (Tim
|
|
Docker)
|
|
* "Y2009" default year directives are now supported, allowing m/d
|
|
dates in ledger
|
|
* individual transactions now have a cleared status
|
|
* unbalanced entries now cause a proper warning
|
|
* balance report now passes all ledger compatibility tests
|
|
* balance report now shows subtotals by default, like ledger 3
|
|
* balance report shows the final zero total when -E is used
|
|
* balance report hides the final total when ..no-total is used
|
|
* ..depth affects print and register reports (aggregating with a
|
|
reporting interval, filtering otherwise)
|
|
* register report sorts transactions by date
|
|
* register report shows zero-amount transactions when -E is used
|
|
* provide more convenient timelog querying when invoked as
|
|
"hours"
|
|
* multi-day timelog sessions are split at midnight
|
|
* unterminated timelog sessions are now counted. Accurate time
|
|
reports at last!
|
|
* the test command gives better ..verbose output
|
|
* ..version gives more detailed version numbers including
|
|
patchlevel for dev builds
|
|
* new make targets include: ghci, haddocktest, doctest, unittest,
|
|
view-api-docs
|
|
* a doctest-style framework for functional/shell tests has been
|
|
added
|
|
|
|
Release stats:
|
|
|
|
* Contributors: Simon Michael, Tim Docker; thanks to the HAppS,
|
|
happstack and testpack developers
|
|
* Days since release: 76
|
|
* Commits: 144
|
|
* Lines of non-test code: 2367
|
|
* Tests: 56
|
|
* Known errors: 0
|
|
|
|
## 2009/01/17 hledger 0.3
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/67)
|
|
|
|
* count timelog sessions on the day they end, like ledger, for
|
|
now
|
|
* when options are repeated, use the last instead of the first
|
|
* builds with ghc 6.10 as well as 6.8
|
|
* a simple ui for interactive report browsing: hledger ui
|
|
* accept smart dates everywhere (YYYYMMDD, Y/M/D, Y, M/D, D, jan,
|
|
today, last week etc.)
|
|
* ..period/-p flag accepting period expressions like "in 2008",
|
|
"weekly from last month"..
|
|
* -W/-M/-Y convenience flags to summarise register weekly,
|
|
monthly, yearly
|
|
* ..depth and -E flags also affect summarised register reports
|
|
(including depth=0)
|
|
* ..display/-d flag supporting date predicates (like "d<[DATE]",
|
|
"d\>=[DATE]")
|
|
* !include directive to include additional ledger files
|
|
* !account directive to set a default parent account
|
|
* Added support for reading historical prices from files
|
|
* timelog and ledger entries can be intermixed in one file
|
|
* modifier and periodic entries can appear anywhere (but are
|
|
still ignored)
|
|
* help and readme improvements
|
|
* runs much faster than 0.2
|
|
|
|
Release stats:
|
|
|
|
* Contributors: Simon Michael, Nick Ingolia, Tim Docker; thanks
|
|
to Corey O'Connor & the vty team
|
|
* Lines of non-test code: 2123
|
|
* Tests: 58
|
|
* Known errors: 1
|
|
|
|
## 2008/11/23 hledger 0.2
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/826)
|
|
|
|
* fix balance report totals when filtering by account
|
|
* fix balance report selection of accounts when filtering by
|
|
account
|
|
* fix a bug with account name eliding in balance report
|
|
* if we happen to be showing a not-yet-auto-balanced entry, hide
|
|
the AUTO marker
|
|
* fix print command filtering by account
|
|
* omit transactions with zero amount from register report
|
|
* Fix bug in parsing of timelogs
|
|
* rename ..showsubs to ..subtotal, like ledger
|
|
* drop ..usage flag
|
|
* don't require quickcheck
|
|
* priced amounts (eg "10h @ $50") and ..basis/..cost/-B flag to
|
|
show them with cost basis
|
|
* easy ..depth option, equivalent to ledger's -d 'l<=N'
|
|
* smarter y/m/d date parsing for -b and -e (any number of digits,
|
|
month and day default to 1, separator can be / - or .)
|
|
* -n flag for balance command
|
|
* ..empty/-E flag
|
|
* build a library, as well as the exe
|
|
* new home page url (http://joyful.com/hledger)
|
|
* publish html and pdf versions of README
|
|
* detect display preferences for each commodity like ledger
|
|
* support amounts with multiple currencies/commodities
|
|
* support ..real/-R flag
|
|
* support -C/..cleared flag to filter by entry status (not
|
|
transaction status)
|
|
* support virtual and balanced virtual transactions
|
|
* parse comment lines beginning with a space, as from M-; in
|
|
emacs ledger-mode
|
|
* allow any non-whitespace in account names, perhaps avoiding
|
|
misleading missing amounts errors
|
|
* clearer error message when we can't balance an entry
|
|
* when we fail because of more than one missing amount in an
|
|
entry, show the full entry
|
|
* document the built-in test runner in ..help
|
|
* add a ..verbose/-v flag, use it to show more test-running
|
|
detail
|
|
|
|
Release stats:
|
|
|
|
* Contributors: Simon Michael, Tim Docker
|
|
* Lines of non-test code: 1350
|
|
* Tests: 43
|
|
* Known errors: 0
|
|
|
|
## 2008/10/15 hledger 0.1
|
|
|
|
[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/775)
|
|
***I'm pleased to announce the first release of hledger, a command-line
|
|
accounting tool similar to John Wiegley's c++ ledger. hledger generates
|
|
simple ledger-compatible transaction & account balance reports from a
|
|
plain text ledger file. It's simple to use, at least for techies.
|
|
This has been my "learning Haskell" project, but I think it's also
|
|
useful. It is much less featureful than ledger, and not quite as fast,
|
|
but it has the virtue of being fun for haskellers to hack on. I am
|
|
documenting the code, the app is simple, and I'm not too far up the
|
|
haskell learning curve, so I think other people learning haskell might
|
|
enjoy a look. It is currently ~1100 lines of haskell excluding tests.
|
|
My thanks to John Wiegley for help with compatibility and for his very
|
|
useful ledger tool. I use it (and now, both of them) daily to track time
|
|
and money. This is of course a hot topic around our planet. I hope you
|
|
find it useful or intriguing.***
|
|
|
|
Release stats:
|
|
|
|
* Contributors: Simon Michael
|