325 lines
17 KiB
Org Mode
325 lines
17 KiB
Org Mode
# -*- mode:org -*-
|
|
|
|
* 2016/mm/dd 0.28
|
|
** general
|
|
*** misc
|
|
* Added GHC 8 support, dropped GHC 7.6 and 7.8 support.
|
|
(Restoring GHC 7.8 support would need small code changes and a
|
|
maintainer.)
|
|
* a cabal.project file has been added to the source tree (Moritz Kiefer)
|
|
* tools/simplebench has been spun off as the quickbench package.
|
|
* clean up some old cabal flags
|
|
* use hpack for maintaining all packages' cabal files (#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.
|
|
* use Appveyor for CI and up-to-date binaries on Windows
|
|
|
|
|
|
*** docs
|
|
* All of the hledger executables' manuals now include the full
|
|
list of general and reporting options; the assumption is that
|
|
these options are harmlessly ignored when not supported.
|
|
* docs have been reorganised and are now also provided as built-in
|
|
help, in plain text, man and info formats, generated from the
|
|
same source by a new Shake-based docs build system. (#292)
|
|
* misc documentation updates - layout/style cleanups, LEDGER_FILE,
|
|
accounts, include directive, CSV, timeclock, how to use dotted
|
|
account names
|
|
* minor copyedits (jungle-boogie)
|
|
* The website is simpler, clearer, and more mobile-friendly. Docs
|
|
are now collected on a single page and separated by type:
|
|
getting started, reference, more. Also separate web manuals are
|
|
available for each executable and file format. This should make
|
|
it easier to see what's available, and to read just what you
|
|
need.
|
|
* web docs are now provided for recent releases and the latest dev
|
|
version (#385, #387)
|
|
* add beancount's nice example journal, hledgerised This is the
|
|
synthetic, somewhat realistic example journal from Martin Blais'
|
|
beancount project (of a few months ago), slightly tweaked for
|
|
hledger. It makes a nice example, eg for trying out hledger-ui.
|
|
|
|
*** cli
|
|
* The hledger executables have a new help system, making their
|
|
manuals available for local reading.
|
|
#+BEGIN_EXAMPLE
|
|
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
|
|
#+END_EXAMPLE
|
|
|
|
* When multiple files are specified with multiple -f options, we
|
|
now parse each one individually, rather than just concatenating
|
|
them, so they can have different formats (#320). Note this also
|
|
means that directives (like `Y` or `alias`) no longer carry over
|
|
from one file to the next.
|
|
|
|
* Parsing an argument-less --debug option is more robust.
|
|
|
|
* -I has been added as the short flag for --ignore-assertions.
|
|
(Differs from Ledger's CLI, but useful for hledger-ui.)
|
|
|
|
** hledger-lib 0.28
|
|
*** journal format
|
|
* try to parse standard input as journal format always, not just most of the time
|
|
* can now include timeclock/timedot files (#320) journal files can
|
|
now include journal, timeclock or timedot files (but not yet CSV
|
|
files). Also timeclock/timedot files no longer support default
|
|
year directives.
|
|
* support commodity directive and format subdirective, allowing
|
|
full control of commodity style (#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.
|
|
* lib: after reloading a journal, also refilter it (#314)
|
|
* lib: fix bracketed posting dates, parser cleanup (#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.
|
|
* We now parse "account" directives, like Ledger's. We don't do
|
|
anything with them yet. The default parent account feature must
|
|
now be spelled "apply account"/"end apply account".
|
|
* support ledger3-compatible "apply account"
|
|
* lib: show txn's file position in assertion errors
|
|
* lib: more ergonomic balance assertion errors
|
|
* fixed an issue with ordering of included same-date transactions
|
|
* Balance assertion failure messages now have a more standard and parseable layout.
|
|
* With --debug=2, more detail about balance assertions is shown.
|
|
|
|
*** 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).
|
|
* timeclock: fix order of transaction indexes #394.
|
|
Timeclock transaction ids now count up rather than down.
|
|
* removed old code for appending timeclock transactions to journal
|
|
transactions, a holdover from the days when both were allowed in
|
|
one file.
|
|
|
|
*** 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.
|
|
|
|
*** csv format
|
|
* fix empty field assignment parsing, rule parse errors after
|
|
megaparsec port (#407) (Hans-Peter Deifel)
|
|
*** misc
|
|
* file parsers have been ported from Parsec to Megaparsec \o/
|
|
(#289, #366) (Alexey Shmalko, Moritz Kiefer)
|
|
* All formats now produce transaction ids, not just journal format (#394)
|
|
* clarify balance assertion error again. "calculated" is better
|
|
than "actual" which implies the account's actual real-world
|
|
balance, which might be different.
|
|
* Use hpack in hledger-ui (#356)
|
|
* always try parsing stdin as journal
|
|
* reduced memory usage by 30%+ on large files
|
|
* bump default stackage snapshot to lts-6.0
|
|
* git clone of the hledger repo on windows now works (#345)
|
|
* added missing benchmark file (#342)
|
|
* Add --pivot option with tests and docs (#323) (Malte Brandy)
|
|
* more tests, start using doctests
|
|
* lib: slightly better file format detection. 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.
|
|
* make stack config more compatible across stack versions (#300)
|
|
* journalReloadIfChanged now reloads the full journal without filtering, like journalReload
|
|
* Reloading a journal should now reload all included files as well.
|
|
* lib: make Journal a monoid
|
|
* lib: 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 have moved to Hledger.Read.
|
|
* use new file-embed to fix ghci cwd dependence, see
|
|
https://github.com/snoyberg/file-embed/issues/18
|
|
* lib: refactor amount canonicalisation. Amount display style
|
|
canonicalisation code and terminology has been clarified 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 a Ledger-compatible commodity
|
|
directive would use the "format" keyword.
|
|
* Most hledger types have been converted from String to (strict)
|
|
Text. This reduces maximum residency (~30-50%) on large data
|
|
files and gives a slight speed increase.
|
|
* lib: simplify parsers; cleanups (#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 memory usage is now
|
|
slightly higher, but that will be addressed in other ways.)
|
|
* Journal data and journal parse info have been merged into one
|
|
type (for now), and field names are more consistent.
|
|
* The ParsedJournal type alias has been added to distinguish
|
|
being-parsed and finalised journals.
|
|
* Journal is now a monoid.
|
|
* expandPath now throws a proper IO error (and requires the IO monad).
|
|
* provide more accurate dates in account transactions report
|
|
(and hledger-ui and hledger-web's account registers)
|
|
when postings have their own dates.
|
|
|
|
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.
|
|
|
|
* lib: simplify account txns report 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).
|
|
|
|
** hledger 0.28
|
|
|
|
*** add
|
|
* suggest only one commodity at a time as default amount,
|
|
since we currently can't input more than one at a time (#383)
|
|
|
|
*** balance
|
|
* output CSV item amounts on one line #336
|
|
* added --change flag for consistency
|
|
* -H/--historical now also affects single-column balance reports with a start date (#392).
|
|
This has the same effect as just omitting the start date, but adds consistency.
|
|
*** balancesheet
|
|
* fix an infinite loop #393
|
|
*** print
|
|
* fix/rename transaction id field in CSV output
|
|
*** register
|
|
* fix sorting regression with --date2 (#326)
|
|
* include transaction id, rename total field in CSV output (fixes #391)
|
|
* --average/-A is now affected by --historical/-H
|
|
* added --cumulative flag for consistency
|
|
*** stats
|
|
* fixed an issue with ordering of include files ?
|
|
*** misc
|
|
* 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 0.28
|
|
* add vi-style movement keys, use ? for help (#357)
|
|
* The E key (on all screens) runs $HLEDGER_UI_EDITOR 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.
|
|
* flat mode affects register too; doc updates
|
|
* at depth 0 call account "All" (and fix register)
|
|
* 0 now limits depth to 0 instead of resetting it
|
|
* briefer footer help
|
|
* more detailed help dialog, including manual
|
|
* help dialog uses full terminal width when narrow
|
|
* a key runs the add command
|
|
* ESC key cancels minibuffer/help or clears filter and jumps to top
|
|
* / key sets the filter query; backspace/delete clears it
|
|
I was planning to use this for search, but I can't help it, my hands
|
|
want to use / to adjust the filter.
|
|
* U key shows only uncleared transactions/postings
|
|
* accounts, register: Z key toggles zero items (--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.
|
|
* accounts, register: R key toggles --real
|
|
* show historical or periodic balances (#392).
|
|
hledger-ui now shows historical balances by default (like balance --historical).
|
|
`H` toggles between "historical" and "period" modes, on the accounts and register screens.
|
|
* ui, web: register transactions are filtered by realness and status (#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 ?)
|
|
* more efficient wording in header; historical/period and tree/flat are now indicated in the footer
|
|
* the enter key has been reserved for later and is no longer an alias for right/l
|
|
* I (as in -I/--ignore-assertions) toggles balance assertions on or off,
|
|
allowing troubled journals to be viewed.
|
|
* preserve --ignore-assertions, --pivot, aliases and other options on reload
|
|
* reloading on the error screen now updates the message rather
|
|
than entering a new error screen
|
|
* switch to the quicker-building microlens
|
|
* set report period from date: query args, also.
|
|
A date2: query or --date2 flag might also affect it somehow (untested).
|
|
* easy period selection and navigation:
|
|
|
|
- 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.
|
|
* always use --no-elide for a more regular accounts tree
|
|
* more accurate register dates when postings have their own dates (see hledger-lib account transactions report)
|
|
|
|
* 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 tree
|
|
(subaccount txns included by default) or flat (subaccount txns
|
|
excluded by default) mode. (At least, it does when it would make
|
|
a difference.)
|
|
|
|
** hledger-web 0.28
|
|
* possible fix for filtering register by realness and status (see hledger-ui)
|
|
* Added .btn-default to unify buttons across browsers (#418) (Dominik Süß)
|
|
* update wai-handler-launch for better startup (fixes #226)
|
|
* show a proper not found page on 404
|
|
* focus the first field after clicking add a transaction (fixes #338)
|
|
* fix the add a transaction link's tooltip
|
|
* preserve initial command-line query when journal file is changed (#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.
|
|
* leave date field blank, avoid problems with tab clearing it (#322)
|
|
* exit if something is already using the specified port (#226)
|
|
* don't open a browser page until the app is ready (#226)
|
|
* Terminate the server thread more carefully on exit, eg on control-C
|
|
in GHCI. May prevent stray background threads on windows.
|
|
* show the sidebar by default (#310)
|
|
* after following a link to a transaction, highlight it (Thomas R. Koll)
|
|
* use numeric id instead of date for linking to transactions #308 (Thomas R. Koll)
|
|
* misc. HTML/CSS/file cleanups/fixes (Thomas R. Koll)
|
|
* keep aliases and pivot in effect when reloading the journal
|
|
* document the special `inacct:` query (#390)
|
|
* more accurate register dates when postings have their own dates (see hledger-lib account transactions report)
|
|
|
|
** hledger-api 0.28
|
|
* new hledger-api tool: a simple web API server with example clients (#316)
|
|
* start an Angular-based API example client (#316) (Thomas R. Koll)
|
|
|
|
* notes
|
|
release commits by time
|
|
git ll 0.27..
|
|
release commits by component:
|
|
git ll 0.27.. | sort -k3 -f, sort --reverse each part
|