mirror of
https://github.com/simonmichael/hledger.git
synced 2025-01-07 19:28:26 +03:00
224 lines
12 KiB
Org Mode
224 lines
12 KiB
Org Mode
|
# -*- mode:org -*-
|
||
|
|
||
|
* 2016/mm/dd 0.28
|
||
|
** general
|
||
|
*** 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.
|
||
|
* 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.
|
||
|
|
||
|
** 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.
|
||
|
* parse "account" directives
|
||
|
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
|
||
|
|
||
|
*** 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).
|
||
|
|
||
|
*** 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.
|
||
|
|
||
|
*** misc
|
||
|
* lib: clarify balance assertion error again
|
||
|
"calculated" is better, "actual" implies the account's actual real-world
|
||
|
balance which might be something else again.
|
||
|
* 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)
|
||
|
* GHC 8.0.1 compatibility (except hledger-api)
|
||
|
Note we seem to have lost GHC 7.4 compatibility.
|
||
|
* more tests, start using doctests
|
||
|
* require stackage nightly, for newer pandoc/swagger
|
||
|
Move to a newer stackage snapshot. This helps ensure a new-enough pandoc
|
||
|
will more be available for doc building without needing extra
|
||
|
compilation. Also we get to use the latest swagger and servant-swagger
|
||
|
for hledger-api, but we have to go to stackage nightly. With luck there
|
||
|
will be a lts 6 before next hledger release.
|
||
|
* 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 removes any possibility of the 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.)
|
||
|
Also:
|
||
|
* 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).
|
||
|
|
||
|
** hledger 0.28
|
||
|
*** balance
|
||
|
* output CSV item amounts on one line #336
|
||
|
|
||
|
*** register
|
||
|
* fix sorting regression with --date2 (#326)
|
||
|
|
||
|
*** stats
|
||
|
* fixed an issue with ordering of include files ?
|
||
|
|
||
|
** hledger-ui 0.28
|
||
|
* add vi-style movement keys, use ? for help (#357)
|
||
|
* basic manual integration
|
||
|
* E key runs editor, jumping to current txn or error location (emacs/vi)
|
||
|
The E key (on all screens) edits the journal file using
|
||
|
$HLEDGER_UI_EDITOR or $EDITOR or a default (emacsclient -a "" -nw).
|
||
|
* 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 on-screen help, and a more detailed help dialog
|
||
|
* a key runs the addcommand
|
||
|
* 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
|
||
|
* 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 ?)
|
||
|
* ui, web: when reloading a journal, keep aliases and pivot in effect
|
||
|
* preserve --ignore-assertions & flags on reload
|
||
|
* switch to the quicker-building microlens
|
||
|
|
||
|
** hledger-web 0.28
|
||
|
* 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)
|
||
|
|
||
|
** hledger-api 0.28
|
||
|
* add a web API server with examples (#316)
|
||
|
* start an AngularJS API client app (#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
|