;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:
|
||||
|
||||
ghci> time118ish
|
||||
4560000
|
||||
CPU time: 0.17s
|
||||
ghci> time119
|
||||
4560000
|
||||
CPU time: 0.91s
|
||||
ghci> time1191
|
||||
4560000
|
||||
CPU time: 2.76s
|
||||
CsvRules
|
||||
{ rdirectives = [ ( "skip" , "1" ) ]
|
||||
, rcsvfieldindexes = [ ( "date" , 1 ) , ( "amount" , 2 ) ]
|
||||
, rassignments = [ ( "amount" , "%2" ) , ( "date" , "%1" ) ]
|
||||
, rconditionalblocks = []
|
||||
}
|
||||
|
||||
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.
|
||||
And the new pretty-simple output:
|
||||
|
||||
Ideally we would calculate all widths before adding ANSI colour codes,
|
||||
so we wouldn't have to wastefully strip them.
|
||||
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"
|
||||
)
|
||||
]
|
||||
, 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