diff --git a/doc/CHANGES b/doc/CHANGES index b563043d1..966015f81 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,6 +1,87 @@ -Miscellaneous changes in the hledger project, as of each release. +Project-wide changes in the hledger project. +See also the package change logs. + + +# 1.0 (2016/10/26) + +## 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). + + 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 package. + +- add Appveyor CI builds, provide up-to-date binaries for Windows + +- 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) + +- versioned manuals are provided on the website, covering recent releases and the latest dev version (#385, #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). 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 + -(For package-specific changes, see the package changelogs.) 0.27 (2015/10/31) diff --git a/doc/release-notes.org b/doc/release-notes.org index b9b4e218f..de83c8111 100644 --- a/doc/release-notes.org +++ b/doc/release-notes.org @@ -1,9 +1,13 @@ # -*- mode:org -*- - #+OPTIONS: num:0 -* 2016/mm/dd 0.28 -** general +Since 1.0, this is the master source for package and project change logs +({hledger*,doc}/CHANGES) and web release notes (site/release-notes.md). +In principle, only this file should be edited directly; after 1.0 perhaps +those others will be generated fully automatically. + +* 2016/10/26 1.0 +** project-wide changes *** 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. @@ -55,7 +59,7 @@ **** parsing an argument-less --debug option is more robust -** hledger-lib 0.28 +** hledger-lib 1.0 *** timedot format **** new "timedot" format for retroactive/approximate time logging. Timedot is a plain text format for logging dated, categorised @@ -152,7 +156,7 @@ **** Journal is now a monoid **** expandPath now throws a proper IO error **** more unit tests, start using doctest -** hledger 0.28 +** hledger 1.0 *** add **** suggest only one commodity at a time as default amount (#383) (since we currently can't input more than one at a time) @@ -179,7 +183,7 @@ **** 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 +** 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 @@ -248,7 +252,7 @@ **** 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 0.28 +** hledger-web 1.0 *** ui **** show the sidebar by default (#310) **** fix the add link's tooltip @@ -271,7 +275,7 @@ like an invisible extra filter. **** show a proper not found page on 404 **** document the special `inacct:` query (#390) -** hledger-api 0.28 +** hledger-api 1.0 *** misc **** new hledger-api tool: a simple web API server with example clients (#316) **** start an Angular-based API example client (#316) (Thomas R. Koll) diff --git a/hledger-api/CHANGES b/hledger-api/CHANGES index 6162f5b99..e982466c4 100644 --- a/hledger-api/CHANGES +++ b/hledger-api/CHANGES @@ -1,3 +1,11 @@ User-visible changes in hledger-api. See also hledger's change log. + +# 1.0 (2016/10/26) + +## misc + +- new hledger-api tool: a simple web API server with example clients (#316) + +- start an Angular-based API example client (#316) (Thomas R. Koll) diff --git a/hledger-lib/CHANGES b/hledger-lib/CHANGES index 2c600c4ff..a3ef004df 100644 --- a/hledger-lib/CHANGES +++ b/hledger-lib/CHANGES @@ -1,5 +1,155 @@ -API-ish changes in hledger-lib. -For user-visible changes, see hledger's change log. +API-ish changes in the hledger-lib package. +(For user-visible changes, see hledger's change log.) + + +# 1.0 (2016/10/26) + +## 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) + +- 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) (Hans-Peter Deifel) + +## journal format + +- journal files can now include timeclock or timedot files (#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) 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. + +- 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) + + 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, #366) (Alexey Shmalko, Moritz Kiefer) + +- most hledger types have been converted from String to Text, reducing memory usage by 30%+ on large files and giving a slight speed increase + +- file parsers have been simplified for easier troubleshooting (#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) + +- git clone of the hledger repo on windows now works (#345) + +- added missing benchmark file (#342) + +- our stack.yaml files are more compatible across stack versions (#300) + +- use newer file-embed 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 + + + 0.27 (2015/10/30) diff --git a/hledger-ui/CHANGES b/hledger-ui/CHANGES index 659ad041f..c68022def 100644 --- a/hledger-ui/CHANGES +++ b/hledger-ui/CHANGES @@ -1,6 +1,113 @@ User-visible changes in hledger-ui. See also hledger's change log. + +# 1.0 (2016/10/26) + +## 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). + + 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). + + 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_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. + +- / 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) + +- 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 + + + + 0.27.3 (2016/1/12) - allow brick 0.4 diff --git a/hledger-web/CHANGES b/hledger-web/CHANGES index 6fe0dcb09..37a3726f0 100644 --- a/hledger-web/CHANGES +++ b/hledger-web/CHANGES @@ -1,6 +1,53 @@ User-visible changes in hledger-web. See also hledger's change log. + +# 1.0 (2016/10/26) + +## ui + +- show the sidebar by default (#310) + +- fix the add link's tooltip + +- when the add form opens, focus the first field (#338) + +- leave the add form's date field blank, avoiding a problem with tab clearing it (#322) + +- use transaction id instead of date in transaction urls (#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) + +- added .btn-default for consistent button styling across browsers (#418) (Dominik Süß) + +## misc + +- startup is more robust (#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). + + 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) + + + + 0.27 (2015/10/30) - Fix keyboard shortcut for adding a transaction (Carlos Lopez-Camey) diff --git a/hledger/CHANGES b/hledger/CHANGES index f56f0118e..735c5b317 100644 --- a/hledger/CHANGES +++ b/hledger/CHANGES @@ -1,4 +1,61 @@ -User-visible changes in hledger and hledger-lib. +User-visible changes in the hledger and hledger-lib packages. + + +# 1.0 (2016/10/26) + +## add + +- suggest only one commodity at a time as default amount (#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). + + This has the same effect as just omitting the start date, but adds consistency. + +- in CSV output, render amounts in one-line format (#336) + +## balancesheet + +- fix an infinite loop (#393) + +## print + +- in CSV output, fix and rename the transaction id field + +## register + +- fix a sorting regression with --date2 (#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) + +## stats + +- fixed an issue with ordering of include files + +## misc + +- --pivot option added, groups postings by tag instead of account (#323) (Malte Brandy) + +- 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 + + 0.27 (2015/10/30) diff --git a/site/release-notes.md b/site/release-notes.md index 82ed9a29c..e025460f3 100644 --- a/site/release-notes.md +++ b/site/release-notes.md @@ -1,8 +1,9 @@ - +