From 647e559db60f6c960591469955ca72cf1021ede9 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 21 Oct 2016 17:50:03 -0700 Subject: [PATCH] doc: catch release notes up with latest commits --- doc/release-notes.org | 451 ++++++++++++++++++++++++++---------------- 1 file changed, 276 insertions(+), 175 deletions(-) diff --git a/doc/release-notes.org b/doc/release-notes.org index 2b1b1a1fe..fa1fa03b1 100644 --- a/doc/release-notes.org +++ b/doc/release-notes.org @@ -2,219 +2,320 @@ * 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. - * 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. + * 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 + * 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. + * 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. + * 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. - * 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 + * 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). + * 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. + * 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 - * 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). + * 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 - + * 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) - + * 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 ? - + * 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) - * 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 + * 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 + * 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) - + * 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. + 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 + 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 + 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 - * 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) + * 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 - * add a web API server with examples (#316) - * start an AngularJS API client app (#316) (Thomas R. Koll) + * 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