3897 lines
		
	
	
		
			153 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			3897 lines
		
	
	
		
			153 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">
 | |
| <ol>
 | |
| <li><a href="#hledger-install">hledger-install</a>
 | |
| <!-- <li><a href="#latest-minor-release">Latest (2018/4/30)</a> -->
 | |
| <li><a href="#hledger-1.12">hledger 1.12 (2018/12/02)</a>
 | |
| <li><a href="#hledger-1.11">hledger 1.11 (2018/9/30)</a>
 | |
| <li><a href="#hledger-1.10">hledger 1.10 (2018/6/30)</a>
 | |
| <li><a href="#hledger-1.9">hledger 1.9 (2018/3/31)</a>
 | |
| <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
 | |
| 
 | |
| 
 | |
| ### hledger-install
 | |
| 
 | |
| The [hledger installer](download.html#b1.-with-hledger-install)
 | |
| is updated as needed; here are the
 | |
| [latest changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh).
 | |
| 
 | |
| 
 | |
| 
 | |
| <!--
 | |
| ## Latest minor release
 | |
| 
 | |
| <http://hackage.haskell.org/package/hledger-lib-1.11.1/changelog>  
 | |
| <http://hackage.haskell.org/package/hledger-1.11.1/changelog>  
 | |
| <http://hackage.haskell.org/package/hledger-ui-1.11.1/changelog>  
 | |
| <http://hackage.haskell.org/package/hledger-web-1.11.1/changelog>  
 | |
| <http://hackage.haskell.org/package/hledger-api-1.11.1/changelog>  
 | |
| -->
 | |
| 
 | |
| ## 2018/12/02 hledger 1.12
 | |
| 
 | |
| ***Account type declarations,
 | |
| complete balance assertions,
 | |
| GHC 8.6 support,
 | |
| hledger-ui usability updates,
 | |
| misc fixes
 | |
| ***
 | |
| ([announcement](https://groups.google.com/d/topic/hledger/H7NYdvo0FeQ/discussion))
 | |
| 
 | |
|   <!-- [project](#project-wide-changes-for-1.12) -->
 | |
|   [hledger](#hledger-1.12-1)
 | |
| | [hledger-ui](#hledger-ui-1.12)
 | |
| | [hledger-web](#hledger-web-1.12)
 | |
| | [hledger-api](#hledger-api-1.12)
 | |
| | [hledger-lib](#hledger-lib-1.12)
 | |
| | [credits](#credits-1.12)
 | |
| 
 | |
| <!-- ### project-wide changes for 1.12 -->
 | |
| 
 | |
| ### hledger 1.12
 | |
| 
 | |
| * install script: ensure a new-enough version of stack; more informative output  
 | |
| 
 | |
| * build with GHC 8.6/base-4.12 (Peter Simons)  
 | |
| 
 | |
| * add required upper bound for statistics (Samuel May)  
 | |
| 
 | |
| * --anon anonymises more thoroughly (including linked original postings) (Moritz Kiefer)  
 | |
| 
 | |
| * unbalanced transaction errors now include location info (Mykola Orliuk)  
 | |
| 
 | |
| * accounts command: --drop also affects the default flat output, without needing an explicit --flat flag  
 | |
| 
 | |
| * accounts command: the --codes flag has been dropped  
 | |
| 
 | |
| * accounts command: filtering by non-account-name queries now works  
 | |
| 
 | |
| * add command: fix transaction rendering regression during data entry and in journal file  
 | |
| 
 | |
| * balance command: fix wrongful eliding of zero-balance parent accounts in tree mode (Dmitry Astapov)  
 | |
| 
 | |
| * journal format, bs/bse/cf/is commands: account directives can declare account types ([#877](https://github.com/simonmichael/hledger/issues/877))  
 | |
|   Previously you had to use one of the standard english account names
 | |
|   (assets, liabilities..) for top-level accounts, if you wanted them to
 | |
|   appear in the right place in the balancesheet, balancesheetequity,
 | |
|   cashflow or incomestatement reports.
 | |
| 
 | |
|   Now you can use your preferred account names, and use account directives
 | |
|   to declare which accounting class (Asset, Liability, Equity, Revenue or
 | |
|   eXpense) an account (and its subaccounts) belongs to, by writing one of
 | |
|   the letters A, L, E, R, X after the account name, after two or more
 | |
|   spaces. This syntax may change (see issue).  Experimental.
 | |
| 
 | |
|   Currently we allow unlimited account type declarations anywhere in the
 | |
|   account tree. So you could declare a liability account somewhere under
 | |
|   assets, and maybe a revenue account under that, and another asset account
 | |
|   even further down. In such cases you start to see oddities like accounts
 | |
|   appearing in multiple places in a tree-mode report. I have left it this
 | |
|   way for now in case it helps with, eg, modelling contra accounts, or
 | |
|   combining multiple files each with their own account type
 | |
|   declarations. (In that scenario, if we only allowed type declarations on
 | |
|   top-level accounts, or only allowed a single account of each type,
 | |
|   complications seem likely.)
 | |
| 
 | |
| * journal format: periodic transaction rules now require a double space separator.  
 | |
|   In periodic transaction rules which specify a transaction description or
 | |
|   same-line transaction comment, this must be separated from the period
 | |
|   expression by two or more spaces, to prevent ambiguous parsing. Eg
 | |
|   this will parse correctly as "monthly" thanks to the double space:
 | |
| 
 | |
|       ~ monthly  In 2020 we'll end this monthly transaction.
 | |
| 
 | |
| * journal format: exact/complete balance assertions (Samuel May).  
 | |
|   A stronger kind of balance assertion, written with a double equals sign,
 | |
|   asserts an account's complete account balance, not just the balance in
 | |
|   one commodity. (But only if it is a single-commodity balance, for now.)
 | |
|   Eg:
 | |
| 
 | |
|       1/1
 | |
|         (a)  A 1
 | |
|         (a)  B 1
 | |
|         (a)  0   =  A 1   ; commodity A balance assertion, succeeds
 | |
|         (a)  0   == A 1   ; complete balance assertion, fails
 | |
| 
 | |
| * journal format: account directives now allow whitespace or a comment after the account name  
 | |
| 
 | |
| * journal format: using ~ for home directory in include directives now works ([#896](https://github.com/simonmichael/hledger/issues/896)) (Mykola Orliuk)  
 | |
| 
 | |
| * journal format: prevent misleading parse error messages with cyclic include directives ([#853](https://github.com/simonmichael/hledger/issues/853)) (Alex Chen)  
 | |
| 
 | |
| * journal format: transaction modifier multipliers handle total-priced amounts correctly ([#928](https://github.com/simonmichael/hledger/issues/928)).  
 | |
|   Multipliers (*N) in transaction modifier rules did not multiply
 | |
|   total-priced amounts properly.  Now the total prices are also multiplied,
 | |
|   keeping the transaction balanced.
 | |
| 
 | |
| * journal format: do amount inference/balance assignments/assertions before transaction modifiers ([#893](https://github.com/simonmichael/hledger/issues/893), [#908](https://github.com/simonmichael/hledger/issues/908)) (Jesse Rosenthal)  
 | |
|   Previously, transaction modifier (auto postings) rules were applied
 | |
|   before missing amounts were inferred. This meant amount multipliers could
 | |
|   generate too many missing-amount postings, making the transaction
 | |
|   unbalanceable ([#893](https://github.com/simonmichael/hledger/issues/893)).
 | |
| 
 | |
|   Now, missing amount inference (and balance assignments, and balance
 | |
|   assertions, which are interdependent) are done earlier, before
 | |
|   transaction modifier rules are applied ([#900](https://github.com/simonmichael/hledger/issues/900), [#903](https://github.com/simonmichael/hledger/issues/903)).
 | |
| 
 | |
|   Also, we now disallow the combination of balance assignments and
 | |
|   transaction modifier rules which both affect the same account, which
 | |
|   could otherwise cause confusing balance assertion failures ([#912](https://github.com/simonmichael/hledger/issues/912)).
 | |
|   (Because assignments now generate amounts to satisfy balance assertions
 | |
|   before transaction modifier rules are applied ([#908](https://github.com/simonmichael/hledger/issues/908)).)
 | |
| 
 | |
| * journal format: periodic transaction rules are now aware of Y default year directives. ([#892](https://github.com/simonmichael/hledger/issues/892))  
 | |
|   Ie when a default year Y is in effect, they resolve partial or relative
 | |
|   dates using Y/1/1 as the reference date, rather than today's date.
 | |
| 
 | |
| ### hledger-ui 1.12
 | |
| 
 | |
| * fix "Any" build error with GHC < 8.4  
 | |
| 
 | |
| * error screen: always show error position properly ([#904](https://github.com/simonmichael/hledger/issues/904)) (Mykola Orliuk)  
 | |
| 
 | |
| * accounts screen: show correct balances when there's only periodic transactions  
 | |
| 
 | |
| * drop the --status-toggles flag  
 | |
| 
 | |
| * periodic transactions and transaction modifiers are always enabled.  
 | |
|   Rule-based transactions and postings are always generated
 | |
|   (--forecast and --auto are always on).
 | |
|   Experimental.
 | |
| 
 | |
| * escape key resets to flat mode.  
 | |
|   Flat mode is the default at startup. Probably it should reset to tree
 | |
|   mode if --tree was used at startup.
 | |
| 
 | |
| * tree mode tweaks: add --tree/-T/-F flags, make flat mode the default,    
 | |
|   toggle tree mode with T, ensure a visible effect on register screen
 | |
| 
 | |
| * hide future txns by default, add --future flag, toggle with F.  
 | |
|   You may have transactions dated later than today, perhaps piped from
 | |
|   print --forecast or recorded in the journal, which you don't want to
 | |
|   see except when forecasting.
 | |
| 
 | |
|   By default, we now hide future transactions, showing "today's balance".
 | |
|   This can be toggled with the F key, which is easier than setting a
 | |
|   date query. --present and --future flags have been added to set the
 | |
|   initial mode.
 | |
| 
 | |
|   (Experimental. Interactions with date queries have not been explored.)
 | |
| 
 | |
| * quick help tweaks; try to show most useful info first  
 | |
| 
 | |
| * reorganise help dialog, fit content into 80x25 again  
 | |
| 
 | |
| * styling tweaks; cyan/blue -> white/yellow  
 | |
| 
 | |
| * less noisy styling in horizontal borders ([#838](https://github.com/simonmichael/hledger/issues/838))  
 | |
| 
 | |
| * register screen: positive amounts: green -> black  
 | |
|   The green/red scheme helped distinguish the changes column from the
 | |
|   black/red balance column, but the default green is hard to read on
 | |
|   the pale background in some terminals. Also the changes column is
 | |
|   non-bold now.
 | |
| 
 | |
| * use hledger 1.12  
 | |
| 
 | |
| ### hledger-web 1.12
 | |
| 
 | |
| * fix duplicate package.yaml keys warned about by hpack  
 | |
| 
 | |
| * use hledger 1.12  
 | |
| 
 | |
| ### hledger-api 1.12
 | |
| 
 | |
| * use hledger 1.12  
 | |
| 
 | |
| ### hledger-lib 1.12
 | |
| 
 | |
| * switch to megaparsec 7 (Alex Chen)  
 | |
|   We now track the stack of include files in Journal ourselves, since
 | |
|   megaparsec dropped this feature.
 | |
| 
 | |
| * add 'ExceptT' layer to our parser monad again (Alex Chen)  
 | |
|   This was removed under the assumption that it would be possible to
 | |
|   write our parser without this capability. However, after a hairy
 | |
|   backtracking bug, we would now prefer to have the option to prevent
 | |
|   backtracking.
 | |
| 
 | |
| * more support for location-aware parse errors when re-parsing (Alex Chen)  
 | |
| 
 | |
| * make 'includedirectivep' an 'ErroringJournalParser' (Alex Chen)  
 | |
| 
 | |
| * drop Ord instance breaking GHC 8.6 build (Peter Simons)  
 | |
| 
 | |
| * flip the arguments of (divide|multiply)[Mixed]Amount  
 | |
| 
 | |
| * showTransaction: fix a case showing multiple missing amounts  
 | |
|   showTransaction could sometimes hide the last posting's amount even if
 | |
|   one of the other posting amounts was already implcit, producing invalid
 | |
|   transaction output.
 | |
| 
 | |
| * plog, plogAt: add missing newline  
 | |
| 
 | |
| * split up journalFinalise, reorder journal finalisation steps ([#893](https://github.com/simonmichael/hledger/issues/893)) (Jesse Rosenthal)  
 | |
|   The `journalFinalise` function has been split up, allowing more granular
 | |
|   control.
 | |
| 
 | |
| * journalSetTime --> journalSetLastReadTime  
 | |
| 
 | |
| * journalSetFilePath has been removed, use journalAddFile instead  
 | |
| 
 | |
| ### credits 1.12
 | |
| 
 | |
| Release contributors:
 | |
| Simon Michael,
 | |
| Alex Chen,
 | |
| Jesse Rosenthal,
 | |
| Samuel May,
 | |
| Mykola Orliuk,
 | |
| Peter Simons,
 | |
| Moritz Kiefer,
 | |
| Dmitry Astapov,
 | |
| Felix Yan,
 | |
| Aiken Cairncross,
 | |
| Nikhil Jha.
 | |
| 
 | |
| 
 | |
| ## 2018/9/30 hledger 1.11
 | |
| 
 | |
| ***Customisable account display order,
 | |
| support for other delimiter-separated formats (eg semicolon-separated),
 | |
| new files and roi commands,
 | |
| fixes
 | |
| ***
 | |
| ([announcement](https://groups.google.com/d/topic/hledger/V62txFLaD_U/discussion))
 | |
| 
 | |
|   <!-- [project](#project-wide-changes-for-1.11) -->
 | |
|   [hledger](#hledger-1.11-1)
 | |
| | [hledger-ui](#hledger-ui-1.11)
 | |
| | [hledger-web](#hledger-web-1.11)
 | |
| | [hledger-api](#hledger-api-1.11)
 | |
| | [hledger-lib](#hledger-lib-1.11)
 | |
| | [credits](#credits-1.11)
 | |
| 
 | |
| <!-- ### project-wide changes for 1.11 -->
 | |
| 
 | |
| 
 | |
| ### hledger 1.11
 | |
| 
 | |
| * The default display order of accounts is now influenced by
 | |
|   the order of account directives. Accounts declared by account
 | |
|   directives are displayed first (top-most), in declaration order,
 | |
|   followed by undeclared accounts in alphabetical order. Numeric
 | |
|   account codes are no longer used, and are ignored and considered
 | |
|   deprecated.
 | |
| 
 | |
|   So if your accounts are displaying in a weird order after upgrading,
 | |
|   and you want them alphabetical like before, just sort your account
 | |
|   directives alphabetically.
 | |
| 
 | |
| * Account sorting (by name, by declaration, by amount) is now more
 | |
|   robust and supported consistently by all commands (accounts,
 | |
|   balance, bs..) in all modes (tree & flat, tabular & non-tabular).
 | |
| 
 | |
| * close: new --opening/--closing flags to print only the opening or
 | |
|   closing transaction
 | |
| 
 | |
| * files: a new command to list included files
 | |
| 
 | |
| * prices: query arguments are now supported. Prices can be filtered by
 | |
|   date, and postings providing transaction prices can also be filtered.
 | |
| 
 | |
| * rewrite: help clarifies relation to print --auto ([#745](https://github.com/simonmichael/hledger/issues/745))
 | |
| 
 | |
| * roi: a new command to compute return on investment, based on hledger-irr
 | |
| 
 | |
| * test: has more verbose output, more informative failure messages,
 | |
|   and no longer tries to read the journal
 | |
| 
 | |
| * csv: We use a more robust CSV lib (cassava) and now support
 | |
|   non-comma separators, eg --separator ';' (experimental, this flag
 | |
|   will probably become a CSV rule) ([#829](https://github.com/simonmichael/hledger/issues/829))
 | |
| 
 | |
| * csv: interpolated field names in values are now properly case insensitive, so
 | |
|   this works:
 | |
| 
 | |
|   fields  ...,Transaction_Date,...
 | |
|   date %Transaction_Date
 | |
| 
 | |
| * journal: D (default commodity) directives no longer break multiplier
 | |
|   amounts in transaction modifiers (AKA automated postings) ([#860](https://github.com/simonmichael/hledger/issues/860))
 | |
| 
 | |
| * journal: "Automated Postings" have been renamed to "Transaction Modifiers".
 | |
| 
 | |
| * journal: transaction comments in transaction modifier rules are now parsed correctly. ([#745](https://github.com/simonmichael/hledger/issues/745))
 | |
| 
 | |
| * journal: when include files form a cycle, we give an error instead
 | |
|   of hanging.
 | |
| 
 | |
| * upper-case day/month names in period expressions no longer give an error ([#847](https://github.com/simonmichael/hledger/issues/847), [#852](https://github.com/simonmichael/hledger/issues/852))
 | |
| 
 | |
| 
 | |
| ### hledger-ui 1.11
 | |
| 
 | |
| * uses hledger-lib 1.11
 | |
| 
 | |
| 
 | |
| ### hledger-web 1.11
 | |
| 
 | |
| * uses hledger-lib 1.11
 | |
| 
 | |
| 
 | |
| ### hledger-api 1.11
 | |
| 
 | |
| * uses hledger-lib 1.11
 | |
| 
 | |
| 
 | |
| ### hledger-lib 1.11
 | |
| 
 | |
| * compilation now works when locale is unset ([#849](https://github.com/simonmichael/hledger/issues/849))
 | |
| 
 | |
| * all unit tests have been converted from HUnit+test-framework to easytest
 | |
| 
 | |
| * doctests now run quicker by default, by skipping reloading between tests. 
 | |
|   This can be disabled by passing --slow to the doctests test suite
 | |
|   executable.
 | |
| 
 | |
| * doctests test suite executable now supports --verbose, which shows
 | |
|   progress output as tests are run if doctest 0.16.0+ is installed
 | |
|   (and hopefully is harmless otherwise).
 | |
| 
 | |
| * doctests now support file pattern arguments, provide more informative output.
 | |
|   Limiting to just the file(s) you're interested can make doctest start
 | |
|   much quicker. With one big caveat: you can limit the starting files,
 | |
|   but it always imports and tests all other local files those import.
 | |
| 
 | |
| * a bunch of custom Show instances have been replaced with defaults,
 | |
|   for easier troubleshooting.  These were sometimes obscuring
 | |
|   important details, eg in test failure output. Our new policy is:
 | |
|   stick with default derived Show instances as far as possible, but
 | |
|   when necessary adjust them to valid haskell syntax so pretty-show
 | |
|   can pretty-print them (eg when they contain Day values, cf
 | |
|   https://github.com/haskell/time/issues/101).  By convention, when
 | |
|   fields are shown in less than full detail, and/or in double-quoted
 | |
|   pseudo syntax, we show a double period (..) in the output.
 | |
| 
 | |
| * Amount has a new Show instance.  Amount's show instance hid
 | |
|   important details by default, and showing more details required
 | |
|   increasing the debug level, which was inconvenient.  Now it has a
 | |
|   single show instance which shows more information, is fairly
 | |
|   compact, and is pretty-printable.
 | |
| 
 | |
|   ghci> usd 1
 | |
|   OLD:
 | |
|   Amount {acommodity="$", aquantity=1.00, ..}
 | |
|   NEW:
 | |
|   Amount {acommodity = "$", aquantity = 1.00, aprice = NoPrice, astyle = AmountStyle "L False 2 Just '.' Nothing..", amultiplier = False}
 | |
| 
 | |
|   MixedAmount's show instance is unchanged, but showMixedAmountDebug
 | |
|   is affected by this change:
 | |
| 
 | |
|   ghci> putStrLn $ showMixedAmountDebug $ Mixed [usd 1]
 | |
|   OLD:
 | |
|   Mixed [Amount {acommodity="$", aquantity=1.00, aprice=, astyle=AmountStyle {ascommodityside = L, ascommodityspaced = False, asprecision = 2, asdecimalpoint = Just '.', asdigitgroups = Nothing}}]
 | |
|   NEW:
 | |
|   Mixed [Amount {acommodity="$", aquantity=1.00, aprice=, astyle=AmountStyle "L False 2 Just '.' Nothing.."}]
 | |
| 
 | |
| * Same-line & next-line comments of transactions, postings, etc.
 | |
|   are now parsed a bit more precisely (followingcommentp). 
 | |
|   Previously, parsing no comment gave the same result as an empty
 | |
|   comment (a single newline); now it gives an empty string.  
 | |
|   Also, and perhaps as a consequence of the above, when there's no
 | |
|   same-line comment but there is a next-line comment, we'll insert an
 | |
|   empty first line, since otherwise next-line comments would get moved
 | |
|   up to the same line when rendered.
 | |
| 
 | |
| * Hledger.Utils.Test exports HasCallStack
 | |
| 
 | |
| * queryDateSpan, queryDateSpan' now intersect date AND'ed date spans
 | |
|   instead of unioning them, and docs are clearer.
 | |
| 
 | |
| * pushAccount -> pushDeclaredAccount
 | |
| 
 | |
| * jaccounts -> jdeclaredaccounts
 | |
| 
 | |
| * AutoTransaction.hs -> PeriodicTransaction.hs & TransactionModifier.hs
 | |
| 
 | |
| * Hledger.Utils.Debug helpers have been renamed/cleaned up
 | |
| 
 | |
| ### credits 1.11
 | |
| 
 | |
| Release contributors:
 | |
| Simon Michael,
 | |
| Joseph Weston,
 | |
| Dmitry Astapov,
 | |
| Gaith Hallak,
 | |
| Jakub Zárybnický,
 | |
| Luca Molteni,
 | |
| SpicyCat.
 | |
| 
 | |
| 
 | |
| 
 | |
| ## 2018/6/30 hledger 1.10
 | |
| 
 | |
| ***hledger-web edit/upload/download and permissions,
 | |
| more expressive periodic transactions,
 | |
| more informative parse errors,
 | |
| misc fixes
 | |
| ***
 | |
| ([announcement](https://groups.google.com/forum/#!msg/hledger/SWFV2n6xMQA/Ss78nil8AQAJ))
 | |
| 
 | |
|   [project](#project-wide-changes-for-1.10)
 | |
| | [hledger-lib](#hledger-lib-1.10)
 | |
| | [hledger](#hledger-1.10-1)
 | |
| | [hledger-ui](#hledger-ui-1.10)
 | |
| | [hledger-web](#hledger-web-1.10)
 | |
| | [hledger-api](#hledger-api-1.10)
 | |
| | [credits](#credits-1.10)
 | |
| 
 | |
| ### project-wide changes for 1.10
 | |
| 
 | |
| * build cleanly with all supported GHC versions again (7.10 to 8.4)
 | |
| 
 | |
| * support latest deps
 | |
| 
 | |
| * back in Stackage LTS (12.0)
 | |
| 
 | |
| 
 | |
| ### hledger-lib 1.10
 | |
| 
 | |
| * extensive refactoring and cleanup of parsers and related types and utilities
 | |
| 
 | |
| * readJournalFile(s) cleanup, these now use InputOpts
 | |
| 
 | |
| * doctests now run a bit faster ([#802](https://github.com/simonmichael/hledger/issues/802))
 | |
| 
 | |
| 
 | |
| ### hledger 1.10
 | |
| 
 | |
| * journal: many parse error messages have become more informative, and
 | |
|   some now show the source line and error location.
 | |
| 
 | |
| * journal: `;tag:` is no longer parsed as a tag named ";tag" ([#655](https://github.com/simonmichael/hledger/issues/655))
 | |
| 
 | |
| * journal: transaction price amounts having their own price amounts is
 | |
|   now a parse error
 | |
| 
 | |
| * journal: amounts with space as digit group separator and trailing whitespace 
 | |
|   now parse correctly ([#780](https://github.com/simonmichael/hledger/issues/780))
 | |
| 
 | |
| * journal: in amounts containing digits and a single space, the space
 | |
|   is now interpreted as a digit group separator, not a decimal separator ([#749](https://github.com/simonmichael/hledger/issues/749))
 | |
| 
 | |
| * journal: in commodity/format/D directives, the amount must now include a decimal separator.
 | |
| 
 | |
|   When more precise control is needed over number parsing, our
 | |
|   recommended solution is commodity directives. Commodity directives
 | |
|   that don't specify the decimal separator leave things ambiguous,
 | |
|   increasing the chance of misparsing numbers. In some cases it could
 | |
|   cause amounts with a decimal point to be parsed as if with a digit
 | |
|   group separator, so 1.234 became 1234.
 | |
| 
 | |
|   It seems the simple and really only way to do this reliably is to require
 | |
|   an explicit decimal point character. Most folks probably do this already.
 | |
|   Unfortunately, it makes another potential incompatiblity with ledger and
 | |
|   beancount journals. But the error message will be clear and easy to
 | |
|   work around.
 | |
| 
 | |
| * journal: directives currently have diverse and somewhat tricky
 | |
|   semantics, especially with multiple files.  The manual now describes
 | |
|   their behaviour precisely.
 | |
| 
 | |
| * journal: `alias` and `apply account` directives now affect `account` directives ([#825](https://github.com/simonmichael/hledger/issues/825))
 | |
| 
 | |
| * journal: periodic transactions can now have all the usual transaction fields
 | |
|   (status mark, code, description, comment), for generating more expressive
 | |
|   forecast transactions.
 | |
| 
 | |
| * journal: forecast transactions now have the generating period
 | |
|   expression attached as a tag named "recur".
 | |
| 
 | |
| * journal: periodic transactions now start on the first instance of the 
 | |
|   recurring date, rather than the day after the last regular transaction ([#750](https://github.com/simonmichael/hledger/issues/750))
 | |
| 
 | |
| * journal: periodic transaction rules now allow period expressions relative to today's date
 | |
| 
 | |
| * csv: amount-in/amount-out errors are more detailed
 | |
| 
 | |
| * balance: --drop is now ignored when not in flat mode, 
 | |
|   rather than producing a corrupted report ([#754](https://github.com/simonmichael/hledger/issues/754))
 | |
| 
 | |
| * budget: --drop now preserves the <unbudgeted> top-level account in --budget reports
 | |
| 
 | |
| * register: in CSV output, the code field is now included ([#746](https://github.com/simonmichael/hledger/issues/746))
 | |
| 
 | |
| * smart dates now allow  the YYYYMM format, and are better documented
 | |
| 
 | |
| * uses hledger-lib 1.10
 | |
| 
 | |
| 
 | |
| ### hledger-ui 1.10
 | |
| 
 | |
| * the effect of --value, --forecast, and --anon flags is now preserved on reload ([#753](https://github.com/simonmichael/hledger/issues/753))
 | |
| 
 | |
| * edit-at-transaction-position is now also supported when $EDITOR is neovim
 | |
| 
 | |
| * support/require fsnotify 0.3.0.1+
 | |
| 
 | |
| * uses hledger-lib 1.10
 | |
| 
 | |
| 
 | |
| ### hledger-web 1.10
 | |
| 
 | |
| * view, add, edit permissions can be set at CLI or by Sandstorm HTTP header
 | |
| 
 | |
| * the edit form has been revived, for whole-journal editing
 | |
| 
 | |
| * the journal can now be uploaded and downloaded
 | |
| 
 | |
| * the e key toggles empty accounts in the sidebar
 | |
| 
 | |
| * multiple -f options, and --auto, work again
 | |
| 
 | |
| * uses hledger-lib 1.10
 | |
| 
 | |
| 
 | |
| ### hledger-api 1.10
 | |
| 
 | |
| * uses hledger-lib 1.10
 | |
| 
 | |
| 
 | |
| ### credits 1.10
 | |
| 
 | |
| Release contributors:
 | |
| Simon Michael,
 | |
| Alex Chen,
 | |
| Everett Hildenbrandt,
 | |
| Jakub Zárybnický,
 | |
| Nolan Darilek,
 | |
| Dmitry Astapov,
 | |
| Jacob Weisz,
 | |
| Peter Simons,
 | |
| Stephen Morgan,
 | |
| Pavlo Kerestey,
 | |
| Trevor Riles,
 | |
| Léo Gaspard,
 | |
| Mykola Orliuk,
 | |
| Wad,
 | |
| Nana Amfo.
 | |
| 
 | |
| 
 | |
| 
 | |
| ## 2018/3/31 hledger 1.9
 | |
| 
 | |
| ***Report cleanups,
 | |
| normal-positive reports,
 | |
| HTML output,
 | |
| account sort codes,
 | |
| budget improvements.
 | |
| ***
 | |
| 
 | |
| ([announcement](https://groups.google.com/forum/#!topic/hledger/DifO6UbeKnU))
 | |
| 
 | |
| Release contributors:
 | |
| Simon Michael,
 | |
| Eli Flanagan,
 | |
| Peter Simons,
 | |
| Christoph Nicolai,
 | |
| agander,
 | |
| M Parker,
 | |
| Moritz Kiefer,
 | |
| Mykola Orliuk.
 | |
| 
 | |
|   [project](#project-wide-changes-for-1.9)
 | |
| | [hledger-lib](#hledger-lib-1.9)
 | |
| | [hledger](#hledger-1.9-1)
 | |
| | [hledger-ui](#hledger-ui-1.9)
 | |
| | [hledger-web](#hledger-web-1.9)
 | |
| | [hledger-api](#hledger-api-1.9)
 | |
| 
 | |
| ### project-wide changes for 1.9
 | |
| 
 | |
| * support ghc 8.4, latest deps
 | |
| 
 | |
| 
 | |
| ### hledger-lib 1.9
 | |
| 
 | |
| * when the system text encoding is UTF-8, ignore any UTF-8 BOM prefix
 | |
| found when reading files.
 | |
| 
 | |
| * CompoundBalanceReport amounts are now normally positive. (experimental)
 | |
| 
 | |
| ### hledger 1.9
 | |
| 
 | |
| * journal: account directives can define a numeric account code to
 | |
| customize sorting.  bal/bs/cf/is will sort accounts by account code,
 | |
| if any, then account name.
 | |
| 
 | |
| * journal: support scientific number notation ([#704](https://github.com/simonmichael/hledger/issues/704), [#706](https://github.com/simonmichael/hledger/issues/706))
 | |
| 
 | |
| * csv: reading a CSV file containing no records is no longer an error
 | |
| 
 | |
| * cli: when the system text encoding is UTF-8, ignore any UTF-8 BOM
 | |
| prefix found when reading files.  (Paypal's new CSV has this BOM
 | |
| prefix, causing a confusing parse error.)
 | |
| 
 | |
| * cli: tabular reports no longer have a trailing blank line added.
 | |
| (This allows omitting the ">=0" delimiters in our functional tests,
 | |
| making them easier to read and maintain.)
 | |
| 
 | |
| * acc: the accounts command now has --declared and --used flags
 | |
| 
 | |
| * bal: the --invert flag flips all signs
 | |
| 
 | |
| * bal: --drop now works with CSV output
 | |
| 
 | |
| * bal/bs/bse/cf/is: show overall report span in title
 | |
| 
 | |
| * bal/bs/bse/cf/is: show short month names as headings in monthly reports
 | |
| 
 | |
| * bal/bs/bse/cf/is: these commands can now generate HTML output
 | |
| 
 | |
| * bal/bs/is/cf: drop short name and indent fields from multicolumn CSV
 | |
| 
 | |
| * bs/bse/cf/is: these, the "financial statement" commands, now show
 | |
| normal income, liability and equity balances as positive numbers.
 | |
| Negative numbers now indicate a contra-balance (eg an overdrawn
 | |
| checking account), a net loss, or a negative net worth.  This makes
 | |
| these reports more like conventional financial statements, and easier
 | |
| to read and share with others. (Other commands, like balance, have not
 | |
| changed.)  (experimental)
 | |
| 
 | |
| * bs/cf/is: always show a tabular report, even with no report
 | |
| interval.  Previously you would get a simple borderless report like
 | |
| the original balance command.  Less code, fewer bugs.
 | |
| 
 | |
| * bs/bse/cf/is: in CSV output, don't repeat the headings row for each subreport
 | |
| 
 | |
| * budget: warn that CSV output with bal --budget is unimplemented
 | |
| 
 | |
| * budget: bal --budget shows budget goals even with no or zero actual amounts. 
 | |
| Makes budget reports more intuitive, at the cost of a temporary hack
 | |
| which may misorder columns in some cases (if actual and budget
 | |
| activity occur in a different range of columns).
 | |
| 
 | |
| * budget: --budget uses only periodic txns with the selected interval.  
 | |
| Budgets with different interval, eg a daily and weekly budget, are independent.
 | |
| 
 | |
| * budget: show mostly fixed-width columns for readability
 | |
| 
 | |
| * budget: fix bug where a budget report could include budget goals
 | |
| ending on the day before the report start date (splitSpan issue)
 | |
| 
 | |
| * close: the equity command has been renamed to close.  It now ignores
 | |
| any begin date (it always closes historical end balances).  It also
 | |
| ignores --date2.
 | |
| 
 | |
| ### hledger-ui 1.9
 | |
| 
 | |
| * -E/--empty toggles zeroes at startup (with opposite default to cli)
 | |
| 
 | |
| ### hledger-web 1.9
 | |
| 
 | |
| * -E/--empty toggles zeroes at startup (with opposite default to cli)
 | |
| 
 | |
| ### hledger-api 1.9
 | |
| 
 | |
| 
 | |
| 
 | |
| ## 2017/12/31 hledger 1.5
 | |
| 
 | |
| ***
 | |
| ***
 | |
| 
 | |
| ([announcement](https://groups.google.com/forum/#!topic/hledger/CyNifndzZxk))
 | |
| 
 | |
| Release contributors:
 | |
| Simon Michael,
 | |
| 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-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-lib 1.5
 | |
| 
 | |
| * -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648))
 | |
| 
 | |
| * csv: allow balance assignment (balance assertion only, no amount) in csv records (Nadrieril)
 | |
| 
 | |
| * journal: allow space as digit group separator character, [#330](https://github.com/simonmichael/hledger/issues/330) (Mykola Orliuk)
 | |
| 
 | |
| * journal: balance assertion errors now show line of failed assertion posting, [#481](https://github.com/simonmichael/hledger/issues/481) (Sam Jeeves)
 | |
| 
 | |
| * journal: better errors for directives, [#402](https://github.com/simonmichael/hledger/issues/402) (Mykola Orliuk)
 | |
| 
 | |
| * journal: better errors for included files, [#660](https://github.com/simonmichael/hledger/issues/660) (Mykola Orliuk)
 | |
| 
 | |
| * journal: commodity directives in parent files are inherited by included files, [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk)
 | |
| 
 | |
| * journal: commodity directives limits precision even after -B, [#509](https://github.com/simonmichael/hledger/issues/509) (Mykola Orliuk)
 | |
| 
 | |
| * journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. [#399](https://github.com/simonmichael/hledger/issues/399), [#487](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/551) (Mykola Orliuk, Simon Michael)
 | |
| 
 | |
| * tag: the first argument now filters tag names, additional arguments
 | |
|   filter transactions ([#261](https://github.com/simonmichael/hledger/issues/261))
 | |
| 
 | |
| ### hledger-ui 1.5
 | |
| 
 | |
| * fix help -> view manual (on posix platforms) [#623](https://github.com/simonmichael/hledger/issues/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-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
 | |
| 
 | |
| * 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](https://github.com/simonmichael/hledger/issues/598), [#608](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/596), [fpco/stackage#2835](https://github.com/fpco/stackage/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/594))
 | |
| 
 | |
| * allow megaparsec-6.1 (Hans-Peter Deifel)
 | |
| 
 | |
| * fix test suite with Cabal 2 ([#596](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/604))
 | |
| 
 | |
| * cli: make --help and -h the same, drop --man and --info for now ([#579](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/588))
 | |
| 
 | |
| * cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, [#584](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/588))
 | |
| 
 | |
| * allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický)
 | |
| 
 | |
| * web: Make "Add transaction" button tabbable ([#430](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/564))
 | |
| 
 | |
| #### csv format
 | |
| 
 | |
| In CSV conversion rules, assigning to the "balance" field name
 | |
| creates balance assertions ([#537](https://github.com/simonmichael/hledger/issues/537), Dmitry Astapov).
 | |
| 
 | |
| Doubled minus signs are handled more robustly (fixes [#524](https://github.com/simonmichael/hledger/issues/524), Nicolas
 | |
| Wavrant, Simon Michael)
 | |
| 
 | |
| #### Misc
 | |
| 
 | |
| Multiple status: query terms are now OR'd together. ([#564](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/535))
 | |
| 
 | |
| bs/is/cf: fix --flat ([#552](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/483)) (Mykola Orliuk)
 | |
| 
 | |
| Fix a few spaceleaks ([#413](https://github.com/simonmichael/hledger/issues/413)) (Moritz Kiefer)
 | |
| 
 | |
| Add Ledger.Parse.Text to package.yaml, fixing a potential build failure.
 | |
| 
 | |
| Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/531))
 | |
| 
 | |
| #### print
 | |
| 
 | |
| The output of print is now always a valid journal (fixes [#465](https://github.com/simonmichael/hledger/issues/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](https://github.com/simonmichael/hledger/issues/442)). (Mykola Orliuk)
 | |
|     
 | |
| Don't lose the commodity of zero amounts/zero balance assertions (fixes [#475](https://github.com/simonmichael/hledger/issues/475)) (Mykola Orliuk)
 | |
| 
 | |
| #### Misc
 | |
| 
 | |
| Fix a regression in the readability of option parsing errors ([#478](https://github.com/simonmichael/hledger/issues/478)) (Hans-Peter Deifel)
 | |
| 
 | |
| Fix an example in Cli/Main.hs (Steven R. Baker)
 | |
| 
 | |
| Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503))
 | |
| 
 | |
| ### hledger-ui 1.2
 | |
| 
 | |
| Fix a pattern match failure when pressing E on the transaction screen (fixes [#508](https://github.com/simonmichael/hledger/issues/508))
 | |
| 
 | |
| Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter)
 | |
| 
 | |
| Allow brick 0.16 (Joshua Chia) and brick 0.17/vty 0.15 (Peter Simons)
 | |
| 
 | |
| Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503))
 | |
| 
 | |
| Allow text-zipper 0.10
 | |
| 
 | |
| ### hledger-web 1.2
 | |
| 
 | |
| Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter)
 | |
| 
 | |
| Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/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
 | |
| 
 | |
| -   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
 |