doc: project/package change logs, web release notes
This commit is contained in:
		
							parent
							
								
									315db5621a
								
							
						
					
					
						commit
						08f97dd9c8
					
				
							
								
								
									
										85
									
								
								doc/CHANGES
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								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) | ||||
| 
 | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -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 (<https://github.com/snoyberg/file-embed/issues/18>) | ||||
| 
 | ||||
| -   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) | ||||
| 
 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -1,8 +1,9 @@ | ||||
| <!-- A manual TOC showing less detail than the automatic one. --> | ||||
| <!-- Web release notes. Content since 1.0 comes from doc/release-notes.org. --> | ||||
| <!-- Putting the dates last is preferred for readability, but they are first in the headings below since that nicely keeps them out of the anchor urls. --> | ||||
| <nav id="toc"> | ||||
| <p>Major releases:</p> | ||||
| <ol> | ||||
| <li><a href="#hledger-1.0">hledger 1.0 (2016/10/26)</a> | ||||
| <li><a href="#hledger-0.27">hledger 0.27 (2015/10/30)</a> | ||||
| <li><a href="#hledger-0.26">hledger 0.26 (2015/7/12)</a> | ||||
| <li><a href="#hledger-0.25">hledger 0.25 (2015/4/7)</a> | ||||
| @ -35,18 +36,459 @@ | ||||
| 
 | ||||
| # Release notes | ||||
| 
 | ||||
| <!-- | ||||
| Based on the  | ||||
| [hledger](http://hackage.haskell.org/package/hledger/changelog), | ||||
| [hledger-ui](http://hackage.haskell.org/package/hledger-ui/changelog) & | ||||
| [hledger-web](http://hackage.haskell.org/package/hledger-web/changelog) & | ||||
| [hledger-lib](http://hackage.haskell.org/package/hledger-lib/changelog) | ||||
| [hledger-ui](http://hackage.haskell.org/package/hledger-ui/changelog), | ||||
| [hledger-web](http://hackage.haskell.org/package/hledger-web/changelog), | ||||
| [hledger-api](http://hackage.haskell.org/package/hledger-web/changelog), | ||||
| [hledger-lib](http://hackage.haskell.org/package/hledger-lib/changelog) & | ||||
| [hledger project](https://github.com/simonmichael/hledger/blob/master/doc/CHANGES) | ||||
| change logs. | ||||
| --> | ||||
| 
 | ||||
| <style> | ||||
| h4 { margin-top:2em; } | ||||
| </style> | ||||
| 
 | ||||
| 
 | ||||
| ## 2016/10/26 hledger 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. | ||||
| 
 | ||||
| -   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 | ||||
| 
 | ||||
| ### hledger-lib 1.0 | ||||
| 
 | ||||
| #### 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 (<https://github.com/snoyberg/file-embed/issues/18>) | ||||
| 
 | ||||
| -   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 | ||||
| 
 | ||||
| ### 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) | ||||
| 
 | ||||
| #### 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 | ||||
| 
 | ||||
| ### 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 | ||||
| 
 | ||||
| -   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<sub>UI</sub><sub>EDITOR</sub> 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 | ||||
| 
 | ||||
| ### hledger-web 1.0 | ||||
| 
 | ||||
| #### 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) | ||||
| 
 | ||||
| ### 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) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## 2015/10/30 hledger 0.27 | ||||
| 
 | ||||
| ***New curses-style interface, market value reporting, wide characters, fast regex aliases, man pages*** | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user