mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-07 21:15:19 +03:00
0d1f754224
[ci skip]
206 lines
8.8 KiB
Plaintext
206 lines
8.8 KiB
Plaintext
hledger is a robust, cross-platform plain text accounting tool, for
|
|
tracking money, time, stocks, cryptocurrencies or any other commodity,
|
|
using double-entry accounting, private or shared plain text files,
|
|
revision control, and command-line, curses or web UIs.
|
|
Find out more at http://hledger.org and http://plaintextaccounting.org.
|
|
|
|
I'm pleased to announce the release of hledger 1.12!
|
|
Thank you release contributors Alex Chen, Jesse Rosenthal, Samuel May,
|
|
Mykola Orliuk, Peter Simons, Moritz Kiefer, Dmitry Astapov, Felix Yan,
|
|
Aiken Cairncross, and Nikhil Jha.
|
|
|
|
After two years of regular quarter-end releases, I am speeding up
|
|
hledger's release cadence: we now aim to release every 1-3 months, as
|
|
needed or wanted, with our normal release window being the first few
|
|
days of each month.
|
|
|
|
Release notes (http://hledger.org/release-notes):
|
|
-------------------------------------------------
|
|
|
|
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)
|
|
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) (Mykola Orliuk)
|
|
|
|
* journal format: prevent misleading parse error messages with cyclic include directives (#853) (Alex Chen)
|
|
|
|
* journal format: transaction modifier multipliers handle total-priced amounts correctly (#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, #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).
|
|
|
|
Now, missing amount inference (and balance assignments, and balance
|
|
assertions, which are interdependent) are done earlier, before
|
|
transaction modifier rules are applied (#900, #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).
|
|
(Because assignments now generate amounts to satisfy balance assertions
|
|
before transaction modifier rules are applied (#908).)
|
|
|
|
* journal format: periodic transaction rules are now aware of Y default year directives. (#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) (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)
|
|
|
|
* 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.
|
|
|
|
|
|
Getting started:
|
|
----------------
|
|
|
|
All install methods are described at http://hledger.org/download .
|
|
You can download windows binaries, or use a package manager, though in
|
|
some cases these will install an older hledger version.
|
|
|
|
You can build the latest hledger packages with stack:
|
|
|
|
$ stack install --resolver=lts-12 megaparsec-7.0.4
|
|
cassava-megaparsec-2.0.0 config-ini-0.2.3.0 hledger-lib-1.12
|
|
hledger-1.12 [hledger-ui-1.12] [hledger-web-1.12] [hledger-api-1.12]
|
|
|
|
or with cabal:
|
|
|
|
$ cabal update && cabal install hledger-1.12 [hledger-ui-1.12]
|
|
[hledger-web-1.12] [hledger-api-1.12]
|
|
|
|
or with the hledger installer, on systems with bash installed
|
|
(handy if you don't have a working stack or cabal):
|
|
|
|
$ curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh
|
|
$ less hledger-install.sh # satisfy yourself that the script is safe
|
|
$ bash hledger-install.sh
|
|
|
|
Some commands to try:
|
|
|
|
$ hledger add # record some transactions, with guidance
|
|
$ hledger print # show recorded transactions
|
|
$ hledger balance # show totals by account
|
|
$ hledger -h # show quick help
|
|
$ hledger # list available commands
|
|
$ hledger help # list built-in manuals
|
|
|
|
To get oriented, see the tutorials and manuals at http://hledger.org ;
|
|
say hello and ask questions in the #hledger IRC channel on Freenode,
|
|
accessible at http://irc.hledger.org .
|
|
New users and contributors are always welcome!
|
|
|
|
Best,
|
|
-Simon
|