;update changelogs
This commit is contained in:
		
							parent
							
								
									3662977c84
								
							
						
					
					
						commit
						5f9635c784
					
				
							
								
								
									
										14
									
								
								CHANGES.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								CHANGES.md
									
									
									
									
									
								
							| @ -1,15 +1,21 @@ | ||||
| General/project-related changes in the hledger project.  | ||||
| For package-specific changes, see the package changelogs. | ||||
| 
 | ||||
| # 093c11ec | ||||
| # f39938d7 | ||||
| 
 | ||||
| - examples: stripe csv | ||||
| 
 | ||||
| - The functional tests in tests/ have been moved into the respective | ||||
|   packages, eg hledger/test/ and hledger-ui/test/. | ||||
| 
 | ||||
| - benchmarks: run just the slowest commands; add some large tabular reports | ||||
| - Shake cabalfiles: now gives an error when it fails | ||||
| 
 | ||||
| - tools: use pretty-simple for ghci output | ||||
| - make bench: add some large tabular reports;  | ||||
|   run just the slowest commands by default; | ||||
|   run after make (func)test | ||||
| 
 | ||||
| - tools: add hie.yaml, hls now works with hledger | ||||
| - a hie.yaml file has been added, so hledger source loads | ||||
|   easily in IDEs supporting haskell-language-server | ||||
| 
 | ||||
| 
 | ||||
| # 1.19.1 2020-09-07 | ||||
|  | ||||
| @ -1,7 +1,24 @@ | ||||
| Internal/api/developer-ish changes in the hledger-lib (and hledger) packages. | ||||
| For user-visible changes, see the hledger package changelog. | ||||
| 
 | ||||
| # 093c11ec | ||||
| # 3662977c | ||||
| 
 | ||||
| - Reverted a stripAnsi change in 1.19.1 that caused a 3x slowdown of amount rendering  | ||||
|   in terminal reports. (#1350) | ||||
| 
 | ||||
| - Amount and table rendering has been improved, so that stripAnsi is no longer needed. | ||||
|   This speeds up amount rendering in the terminal, speeding up some reports by 10% or more since 1.19. | ||||
|   (Stephen Morgan) | ||||
| 
 | ||||
| - global commodity display styles can now be set in InputOpts or Journal, | ||||
|   overriding all others (declared or inferred). This is used by the import | ||||
|   command and probably command-line options in future. | ||||
| 
 | ||||
| - Journal keeps a new piece of parsing state, a decimal mark character, | ||||
|   which can optionally be set to force the number format expected by all | ||||
|   amount parsers. | ||||
| 
 | ||||
| - Remove Empty Query constructor, which does nothing and has done so for a very long time. (Stephen Morgan) | ||||
| 
 | ||||
| - In ReportOpts, store query terms term-by-term in a list in querystring_. (Stephen Morgan) | ||||
|   This helps deal with tricky quoting issues, as we no longer have to make | ||||
| @ -25,73 +42,81 @@ For user-visible changes, see the hledger package changelog. | ||||
| 
 | ||||
| - Export some MultiBalanceReport helper functions. (Stephen Morgan) | ||||
| 
 | ||||
| - Introduce ReportSpec, which holds ReportOpts, the day of the report, and the parsed Query. (Stephen Morgan) | ||||
| 
 | ||||
| - Remove old impure ReportOpts date functions. (Stephen Morgan) | ||||
| 
 | ||||
| - Make Default instances clearer, remove Default instance for Bool. (Stephen Morgan) | ||||
| 
 | ||||
| - Store the original query string in ReportOpts, provide a function for regenerating ReportOpts. (Stephen Morgan) | ||||
| - Many ReportOpts-related changes, such as the addition of ReportSpec, aimed | ||||
|   at preventing runtime errors (from parsing: regexps, dates, format strings; | ||||
|   from not having today's date set; etc.) | ||||
|   ReportSpec holds a ReportOpts, the day of the report, and the Query generated from these. | ||||
| 
 | ||||
| - Ensure ReportOpts always has today_ set. (Stephen Morgan) | ||||
| 
 | ||||
| - Make sure reportspan doesn't interfere with correctly determining valuation date. (Stephen Morgan) | ||||
| 
 | ||||
| - Store parsed Query in ReportOpts, rather than an unparsed String. (Stephen Morgan) | ||||
| 
 | ||||
| - Store StringFormat in ReportOpts, rather than unparsed String. (Stephen Morgan) | ||||
|   StringFormat now also takes an optional overline width, which is | ||||
|   currently only used by defaultBalanceLineFormat. | ||||
| 
 | ||||
| - Remove checkReportOpts and checkRawOpts. (Stephen Morgan) | ||||
|   checkRawOpts has been a no-op for at least four years, and | ||||
|   checkReportOpts only makes sure that depth_ is positive, which is taken | ||||
|   care of by the maybeposintopt parser. | ||||
| 
 | ||||
| - For ymd date parsing, don't consume invalid date components. (Stephen Morgan) | ||||
| - StringFormat now takes an optional overline width, which is | ||||
|   currently only used by defaultBalanceLineFormat. (Stephen Morgan) | ||||
| 
 | ||||
| - quoteIfNeeded should not escape the backslashes in unicode code points. (Stephen Morgan) | ||||
| 
 | ||||
| - fix error when P directive has a zero price  (#1373) | ||||
| 
 | ||||
| - Export OrdPlus and constructors. (Stephen Morgan) | ||||
| 
 | ||||
| - fix a slowdown with report rendering in 1.19.1 (#1350) | ||||
|   stripAnsi is called many times during rendering (by strWidth), so | ||||
|   should be fast. It was originally a regex replacement, and more | ||||
|   recently a custom parser. The parser was slower, particularly the one | ||||
|   in 1.19.1. See #1350, and this rough test: | ||||
| - Debug output now uses pretty-simple instead pretty-show. | ||||
|   This hopefully gives overall nicer debug output (eg in colour),  | ||||
|   including for values which don't have Read-able Show output. | ||||
|   This means that we can start removing custom Show instances  | ||||
|   that were a workaround for pretty-show. Eg account names | ||||
|   in debug output no longer show their colons as underscores. | ||||
| 
 | ||||
|   time118ish = timeIt $ print $ length $ concat $ map (fromRight undefined . regexReplace (toRegex' "\ESC\\[([0-9]+;)*([0-9]+)?[ABCDHJKfmsu]") "") testdata | ||||
|   time119    = timeparser (many (takeWhile1P Nothing (/='\ESC') <|> "" <$ ansi)) | ||||
|   time1191   = timeparser (many ("" <$ try ansi <|> pure <$> anySingle)) | ||||
|   timeparser p = timeIt $ print $ length $ concat $ map (concat . fromJust . parseMaybe p) testdata | ||||
|   testdata = concat $ replicate 10000 | ||||
|       [ "2008-01-01 income               assets:bank:checking            $1            $1" | ||||
|       , "2008-06-01 gift                 assets:bank:checking            $1            $2" | ||||
|       , "2008-06-02 save                 assets:bank:saving              $1            $3" | ||||
|       , "                                assets:bank:checking  ..m$-1\ESC[m\ESC[m            $2" | ||||
|       , "2008-06-03 eat & shop           assets:cash           ..m$-2\ESC[m\ESC[m             0" | ||||
|       , "2008-12-31 pay off              assets:bank:checking  ..m$-1\ESC[m\ESC[m  ..m$-1\ESC[m\ESC[m" | ||||
|   Here's some old pretty-show output: | ||||
| 
 | ||||
|    CsvRules | ||||
|      { rdirectives = [ ( "skip" , "1" ) ] | ||||
|      , rcsvfieldindexes = [ ( "date" , 1 ) , ( "amount" , 2 ) ] | ||||
|      , rassignments = [ ( "amount" , "%2" ) , ( "date" , "%1" ) ] | ||||
|      , rconditionalblocks = [] | ||||
|      } | ||||
| 
 | ||||
|   And the new pretty-simple output: | ||||
| 
 | ||||
|    CsvRules | ||||
|      { rdirectives= | ||||
|        [ ( "skip", "1" ) ] | ||||
|      , rcsvfieldindexes= | ||||
|        [ ( "date", 1 ), ( "amount", 2 ) ] | ||||
|      , rassignments= | ||||
|        [ ( "amount", "%2" ), ( "date", "%1" ) ] | ||||
|      , rconditionalblocks= [] | ||||
|      } | ||||
| 
 | ||||
|   We require pretty-simple 4.0.0.0 to get this compact output. | ||||
|   It's a little less compact than pretty-show, but not too bad. | ||||
|   Non-compact pretty-simple output would be: | ||||
| 
 | ||||
|    CsvRules | ||||
|        { rdirectives= | ||||
|            [ | ||||
|                ( "skip" | ||||
|                , "1B" | ||||
|                ) | ||||
|            ] | ||||
| 
 | ||||
|   ghci> time118ish | ||||
|   4560000 | ||||
|   CPU time:   0.17s | ||||
|   ghci> time119 | ||||
|   4560000 | ||||
|   CPU time:   0.91s | ||||
|   ghci> time1191 | ||||
|   4560000 | ||||
|   CPU time:   2.76s | ||||
| 
 | ||||
|   Possibly a more careful parser could beat regexReplace. Note the | ||||
|   latter does memoisation, which could be faster and/or could also use | ||||
|   more resident memory in some situations. | ||||
| 
 | ||||
|   Ideally we would calculate all widths before adding ANSI colour codes, | ||||
|   so we wouldn't have to wastefully strip them. | ||||
| 
 | ||||
|        , rcsvfieldindexes= | ||||
|            [ | ||||
|                ( "date" | ||||
|                , 1 | ||||
|                ) | ||||
|            , | ||||
|                ( "amount" | ||||
|                , 2 | ||||
|                ) | ||||
|            ] | ||||
|        , rassignments= | ||||
|            [ | ||||
|                ( "amount" | ||||
|                , "%2" | ||||
|                ) | ||||
|            , | ||||
|                ( "date" | ||||
|                , "%1" | ||||
|                ) | ||||
|            ] | ||||
|        , rconditionalblocks=[] | ||||
|        } | ||||
| 
 | ||||
| 
 | ||||
| # 1.19.1 2020-09-07 | ||||
|  | ||||
| @ -1,13 +1,21 @@ | ||||
| User-visible changes in hledger-ui. | ||||
| See also the hledger changelog. | ||||
| 
 | ||||
| # 093c11ec | ||||
| # 3662977c | ||||
| 
 | ||||
| - When entering a query with `/`, malformed queries/regular expressions | ||||
|   no longer cause the program to exit. (Stephen Morgan) | ||||
| 
 | ||||
| - Eliding of multicommodity amounts now makes better use of available space. (Stephen Morgan) | ||||
| 
 | ||||
| - E ignores file extension, should help positioning on windows | ||||
| - `E` now parses the `HLEDGER_UI_EDITOR` or `EDITOR` environment variable | ||||
|   correctly on Windows (ignoring the file extension), so if you have that set | ||||
|   it should be better at opening your editor at the correct line. | ||||
| 
 | ||||
| - E supports positioning when EDITOR is code (VS Code) (#1359) | ||||
| - `E` now supports positioning when `HLEDGER_UI_EDITOR` or `EDITOR`  | ||||
|   is VS Code ("`code`") (#1359) | ||||
| 
 | ||||
| - hledger-ui now has a (human-powered) test suite. | ||||
| 
 | ||||
| 
 | ||||
| # 1.19.1 2020-09-07 | ||||
|  | ||||
| @ -1,18 +1,19 @@ | ||||
| User-visible changes in hledger-web. | ||||
| See also the hledger changelog. | ||||
| 
 | ||||
| # 093c11ec | ||||
| # 3662977c | ||||
| 
 | ||||
| - Re-enable hledger-web's test suite, and include it in the main executable. | ||||
|   hledger-web --test [-- HSPECARGS] runs it. | ||||
| 
 | ||||
| - Fix --forecast, broken in hledger-web since 1.18 (#1390) | ||||
| 
 | ||||
| - Fix hledger-web description (TANIGUCHI Kohei) | ||||
|   Slashes need to be escaped or they introduce unexpected italic style | ||||
|   due to Haddock markup. | ||||
| - Fix unescaped slashes in hledger-web description on hackage  (TANIGUCHI Kohei) | ||||
| 
 | ||||
| - The hledger version string, as JSON, is provided at /version (#1152) | ||||
| - The hledger-web version string is now provided at /version, as JSON (#1152) | ||||
| 
 | ||||
| - Write the session file (hledger-web_client_session_key.aes) in  | ||||
|   $XDG_DATA_DIR rather than in the current directory. | ||||
| - The session file (hledger-web_client_session_key.aes) is now written in  | ||||
|   $XDG_DATA_DIR rather than the current directory. | ||||
|   Eg on non-Windows systems this is ~/.cache/ by default (cf | ||||
|   https://hackage.haskell.org/package/directory/docs/System-Directory.html#t:XdgDirectory). | ||||
|   (#1344) (Félix Sipma) | ||||
|  | ||||
| @ -1,25 +1,69 @@ | ||||
| User-visible changes in the hledger command line tool and library. | ||||
| 
 | ||||
| 
 | ||||
| # 093c11ec | ||||
| # 3662977c | ||||
| 
 | ||||
| - Query terms containing quotes (eg to match account names containing quotes) | ||||
|   now work properly (#1368, Stephen Morgan) | ||||
| ## general | ||||
| 
 | ||||
| - Console rendering is more efficient, speeding up some reports by | ||||
|   10% or more (Stephen Morgan) | ||||
| - Reverted a stripAnsi change in 1.19.1 that caused a 3x slowdown of amount rendering | ||||
|   in terminal reports. (#1350) | ||||
| 
 | ||||
| - Amount and table rendering has been improved, so that stripAnsi is no longer needed. | ||||
|   This speeds up amount rendering in the terminal, speeding up some reports by 10% or more since 1.19. | ||||
|   (Stephen Morgan) | ||||
| 
 | ||||
| - Amount eliding no longer displays corrupted ANSI codes (#1352, Stephen Morgan) | ||||
| 
 | ||||
| - Eliding of multicommodity amounts now makes better use of available space, | ||||
|   avoiding unnecessary eliding. (Stephen Morgan) | ||||
|   avoiding unnecessary eliding (showing as many amounts as possible within | ||||
|   32 characters). (Stephen Morgan) | ||||
| 
 | ||||
| - --no-elide's help now mentions that it also disables eliding of | ||||
| - Command line help for --no-elide now mentions that it also disables eliding of | ||||
|   multicommodity amounts. | ||||
| 
 | ||||
| - bal: --budget reports no longer insert an extra space inside the brackets (Stephen Morgan) | ||||
| - Query terms containing quotes (eg to match account names containing quotes) | ||||
|   now work properly. (#1368, Stephen Morgan) | ||||
| 
 | ||||
| - journal: forecasted transactions are now affected by commodity styles (#1371) | ||||
| - cli, journal: Date range parsing is more robust, fixing failing/incorrect cases such as: (Stephen Morgan) | ||||
| 
 | ||||
|   - a hyphenated range with just years (`2017-2018`) | ||||
|   - a hyphenated date with no day in a hyphenated range (`2017-07-2018`) | ||||
|   - a dotted date with no day in a dotted range (`2017.07..2018.02`) | ||||
|   | ||||
| - Debug output is prettier (eg, in colour), using pretty-simple instead of pretty-show. | ||||
| 
 | ||||
| ## commands | ||||
| 
 | ||||
| - add: number style (eg thousands separators) no longer disturbs the value | ||||
|   that is offered as default. (#1378) | ||||
| 
 | ||||
| - bal: --invert now affects -S/--sort-amount, reversing the order. (#1283, #1379) (Stephen Morgan) | ||||
| 
 | ||||
| - bal: --budget reports no longer insert an extra space inside the brackets. (Stephen Morgan) | ||||
| 
 | ||||
| - bal, is, bs --change:  | ||||
|   Valued multiperiod balance change reports now show changes of value,  | ||||
|   rather than the value of changes. (#1353, Stephen Morgan) | ||||
| 
 | ||||
| - import: The journal's commodity styles (declared or inferred) are now applied | ||||
|   to imported amounts, overriding their original number format. | ||||
| 
 | ||||
| ## journal format | ||||
| 
 | ||||
| - The journal's commodity styles are now applied to forecasted transactions. (#1371) | ||||
| 
 | ||||
| - journal, csv: commodity style is now inferred from the first amount, as documented, | ||||
|   not the last. This was "working wrongly" since hledger 1.12.. | ||||
| 
 | ||||
| - A zero market price no longer causes "Ratio has zero denominator" error | ||||
|   in valued reports. (#1373) | ||||
| 
 | ||||
| ## csv format | ||||
| 
 | ||||
| - The new `decimal-mark` rule allows reliable number parsing | ||||
|   when CSV numbers contain digit group marks (eg thousands separators). | ||||
| 
 | ||||
| - The CSV reader's verbose "assignment" debug output is now at level 9. | ||||
| 
 | ||||
| 
 | ||||
| # 1.19.1 2020-09-07 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user