;doc: changelogs

This commit is contained in:
Simon Michael 2020-09-01 20:23:30 -07:00
parent e44c1cfae8
commit 7aefa6f0ce
5 changed files with 228 additions and 63 deletions

View File

@ -1,16 +1,24 @@
General/project-related changes in the hledger project.
For package-specific changes, see the package changelogs.
# 7881edfc
# ba59fed6
- stack: bump default stack file to lts 16
- example scripts:
- bin: hledger-check: use stack script command
- stack scripts now use stack's script command consistently
- stack scripts no longer have explicit --package lists, stack
infers them from the imports
- hledger-print-location: new script
- ci: separate quick and full tests again, update
The linux full tests no longer test GHC 8.0,
and all full tests now always compile all modules
and generate optimised binaries.
- CI:
- always recompile all modules for robustness
- generate optimised binaries, which can be downloaded
- build a single different GHC version with each workflow, reducing
total building and carbon footprint a bit
- stop building with GHC 8.0
- the default stack file now uses lts 16.12 (ghc 8.8.4)
# 1.18.1 2020-06-21

View File

@ -1,17 +1,76 @@
Internal/api/developer-ish changes in the hledger-lib (and hledger) packages.
For user-visible changes, see the hledger package changelog.
- 3822c27b ;lib: regex: rename & export RegexError, export toRegex_, docs (#1312)
# 818dea3e
# 25c15d4b
- Added a missing lower bound for aeson, making cabal installs more
reliable. (#1268)
- add a color argument to most amount show helpers, drop cshow variants This
is an API change, but it seems better than having additional
colour-supporting variants and trying to avoid duplicated code. I stopped
short of changing showAmount, so cshowAmount still exists.
- The Regex type alias has been replaced by the Regexp ADT, which
contains both the compiled regular expression (so is guaranteed to
be usable at runtime) and the original string (so can be serialised,
printed, compared, etc.) A Regexp also knows whether is it case
sensitive or case insensitive. The Hledger.Utils.Regex API has
changed. (#1312, #1330).
- Remove the old BalanceReport code, and use MultiBalanceReport for
everything. (Stephen Morgan, #1256).
- Typeable and Data instances are no longer derived for hledger's
data types; they were redundant/no longer needed.
- NFData instances are no longer derived for hledger's data types.
This speeds up a full build by roughly 7%. But it means we can't
deep-evaluate hledger values, or time hledger code with Criterion.
https://github.com/simonmichael/hledger/pull/1330#issuecomment-684075129
has some ideas on this.
- Query no longer has a custom Show instance
- Hledger.Utils.String: quoteIfNeeded now actually escapes quotes in
strings. escapeQuotes was dropped. (Stephen Morgan)
- Hledger.Utils.Tree: dropped some old utilities
- Some fromIntegral calls have been replaced with safer code, removing
some potential for integer wrapping bugs (#1325, #1326)
- Parsing numbers with more than 255 decimal places now gives an error
instead of silently misparsing (#1326)
- Digit groups are now limited to at most 255 digits each. (#1326)
- Exponents are parsed as Integer rather than Int.
This means exponents greater than 9223372036854775807 or less than
-9223372036854775808 are now parsed correctly, in theory. (In
practice, very large exponents will cause hledger to eat all your
memory, so avoid them for now.) (#1326)
- AmountStyle's asprecision is now a sum type with Word8, instead of
an Int with magic values.
- DigitGroupStyle uses Word8 instead of Int.
- Partial helper function parsedate has been dropped, use fromGregorian instead.
- Partial helper function mkdatespan has been dropped.
- Helper function transaction now takes a Day instead of a date string. (Stephen Morgan)
- Old CPP directives made redundant by version bounds have been
removed. (Stephen Morgan)
- Smart dates are now represented by the SmartDate type, and are
always well formed. (Stephen Morgan)
- accountTransactionsReport (used for hledger aregister and
hledger-ui/hledger-web registers) now filters transactions more
thoroughly, so eg transactions dated outside the report period will
not be shown. Previously the transaction would be shown if it had
any posting dated inside the report period. Possibly some other
filter criteria now get applied that didn't before. I think on
balance this will give slightly preferable results.
- The old BalanceReport code has been dropped at last, replaced by
MultiBalanceReport so that all balance reports now use the same
code. (Stephen Morgan, #1256).
- The large multiBalanceReport function has been split up and refactored
extensively.
@ -22,28 +81,12 @@ For user-visible changes, see the hledger package changelog.
- displayedAccounts is completely rewritten. Perhaps one subtle thing to
note is that in tree mode it no longer excludes nodes with zero inclusive
balance unless they also have zero exclusive balance.
- Simon's note: I'll mark the passing of the old multiBalanceReport, into
- Simon's note: "I'll mark the passing of the old multiBalanceReport, into
which I poured many an hour :). It is in a way the heart (brain ?) of
hledger - the key feature of ledgerlikes (balance report) and a key
improvement introduced by hledger (tabular multiperiod balance reports).
You have split that 300-line though well documented function into modular
parts, which could be a little harder to understand in detail but are
easier to understand in the large and more amenable to further
refactoring. Then you fixed some old limitations (boring parent eliding in
multi period balance reports, --drop with tree mode reports), allowing us
to drop the old balanceReport and focus on just the new
multiBalanceReport. And for representing the tabular data you replaced the
semantically correct but inefficient list of lists with a map of maps,
speeding up many-columned balance reports significantly (~40%). Last and
not least you made it really easy to review. Thanks @Xitian9, great work.
- lib, cli: Introduce convenience function compoundBalanceReport. (Stephen Morgan)
- lib, cli: Move CompoundBalanceReport into ReportTypes, compoundReportWith into MultiBalanceReport, share postings amongst subreports. (Stephen Morgan)
- lib: Move unifyMixedAmount to Hledger.Data.Amount, make it return Maybe Amount, export it. (Stephen Morgan)
- add lower bound needed for aeson, to help cabal (#1268)
improvement introduced by hledger (tabular multiperiod balance reports)
...
Thanks @Xitian9, great work."
# 1.18.1 2020-06-21

View File

@ -1,9 +1,33 @@
User-visible changes in hledger-ui.
See also the hledger changelog.
# 3b6a8b09
# 818dea3e
- ui: register: elide multicommodity amounts
- The --color/--colour=WHEN command line option, support for the
NO_COLOR environment variable, and smarter autodetection of colour
terminals have been added (#1296)
- -t and -l command line flags have been added as short forms of
--tree and --flat (#1286)
- Flat (AKA list) mode is now the default
- t now toggles tree mode, while T sets the "today" period (#1286)
- register: multicommodity amounts containing more than two
commodities are now elided
- register: a transaction dated outside the report period now is not
shown even if it has postings dated inside the report period.
- ESC now restores exactly the app's state at startup, which includes
clearing any report period limit (#1286)
- DEL/BS no longer changes the tree/list mode
- q now exits help before exiting the app (#1286)
- The help dialog's layout is improved
# 1.18.1 2020-06-21

View File

@ -1,9 +1,18 @@
User-visible changes in hledger-web.
See also the hledger changelog.
# 44c3eb19
# 818dea3e
- add lower bound needed for aeson, to help cabal (#1268)
- Queries containing a malformed regular expression (eg the single
character `?`) now show a tidy error message instead "internal
server error" (Stephen Morgan, Simon Michael) (#1245)
- In account registers, a transaction dated outside the report period
now is not shown even if it has postings dated inside the report
period.
- Added a missing lower bound for aeson, making cabal installs more
reliable. (#1268)
# 1.18.1 2020-06-21

View File

@ -1,21 +1,52 @@
User-visible changes in the hledger command line tool and library.
# 44c3eb19
# 818dea3e
- balcmds: elide amounts with 3 or more commodities, unless --no-elide
Multicolumn balance reports showing many commodities tend to become
unreadably wide, especially in tree mode. Now by default we show at
most two commodities, and a count of the rest if there are more than
two. This should help keep reports somewhat readable by default.
## general
- bal: warn about #1279 in manual
- When parsing dates, the year is now required to have at least four
digits. So eg we no longer accept `200/1/1` as a valid date, it
would need to be written `0200/1/1`. This was done for.. reasons,
and is experimental; let us know if it causes you trouble.
- cli: for options taking a numeric argument, we now validate the
argument more carefully, avoiding unexpected negatives or Int
- The --color/--colour=WHEN command line option, support for the
NO_COLOR environment variable, and smarter autodetection of colour
terminals have been added (#1296)
- Command line options taking a numeric argument are now validated
more carefully, preventing issues with unexpected negatives or Int
overflow. (Stephen Morgan)
- cli: debug output is now organised better by debug level.
- In queries, you can now specify a quarter like `2020q1` or `q4`
(the q is case-insensitive). (#1247, Henning Thieleman, Stephen Morgan)
- In report intervals, `fortnightly` has been added as a synonym for
`biweekly`. (Stephen Morgan)
- -t and -l command line flags have been added as short forms of
--tree and --flat (#1286)
- All reports displaying accounts now choose flat mode by default
(Stephen Morgan)
- Reports now show at most 2 commodities of multicommodity amounts,
unless the --no-elide flag is used. This helps keep them readable by
default, since multicolumn, multicommodity balance reports otherwise
tend to become very wide, especially in tree mode.
- Numbers with more than 255 decimal places, which we do not support,
now give an error instead of silently misparsing. (#1326)
- Digit groups are now limited to at most 255 digits each. (#1326)
- Account aliases (on command line or in journal) containing a bad
regular expression now give a more detailed error message.
- A tab character could get parsed as part of a commodity symbol, with
confusing results. This no longer happens. (#1301, Dmitry Astapov)
- Debug output is now organised better by debug level.
The levels are:
0. normal command output only (no warnings)
@ -29,30 +60,80 @@ User-visible changes in the hledger command line tool and library.
8. command line parsing
9. any other rarely needed or more in-depth info
- lib: Using --drop in tree mode with boring parent ellision no longer considers all parents boring. Add tests to check this fact. (Stephen Morgan)
- Added a missing lower bound for aeson, making cabal installs more
reliable. (#1268)
- add lower bound needed for aeson, to help cabal (#1268)
- lib: parseAmountQueryTerm: allow whitespace around arg parts (#1312)
Whitespace around the operator, sign, or number is now tolerated.
- lib: Add fortnightly as a synonym for biweekly. (Stephen Morgan)
## commands
- bal: --drop now works in tree mode balance reports also. (Stephen Morgan)
- account,bal,bs,cf,is: --drop now also works in tree mode (Stephen Morgan)
- bal: Boring parents are now elided in tabular balance reports, as in simple balance reports. (Stephen Morgan)
- add: fix an error in the command line help (arguments are inputs,
not a query)
- csv: speed up csv conversion performance when there are a lot of
conditional rules (Dmitry Astapov)
- aregister: a new command showing a transaction-oriented account
register, like hledger-ui, hledger-web, or your bank statement.
Each line represents a whole transaction in one account, unlike
the register command which shows individual postings possibly from
multiple accounts. You might prefer aregister when reconciling
real-world asset/liability accounts, and register when reviewing
detailed revenues/expenses. (#1294)
- csv: add "if tables" to csv rules, a more compact format for conditional
rules (Dmitry Astapov)
- bal,bs,cf,is: boring parents are now elided by default in tabular
balance reports too, like single-column reports. (Stephen Morgan)
- csv: fix a bug in the csv rules parser that was causing vague parse error
messages (Dmitry Astapov)
- bal,bs,cf,is: monthly column headings are no longer elided to just
the short month name, if multiple years are being displayed.
- print: sql output format (Dmitry Astapov)
- bal --budget's column headings are now end dates rather than
periods when appropriate (ie with --cumulative or --historical).
- bs,cf,is: --no-total hides subtotals as well as the grand total (Stephen Morgan)
- bs,cf,is: -%/--no-total no longer forces --no-total (Stephen Morgan)
- bs,cf,is: --no-total now hides subtotals as well as the grand total
(Stephen Morgan)
- codes: a new command for listing transaction codes
- print: a new `sql` output format has been added (Dmitry Astapov)
- roi: errors are now shown without a call stack
- tags: add --parsed flag, hide empties without --empty. With the
--parsed flag, all tags or values are shown in the order they are
parsed from the input data, including duplicates. With -E/--empty,
any blank/empty values will also be shown, otherwise they are
omitted.
## journal format
- account directives can specify a new `Cash` account type. This is a
subtype of `Asset`, denoting accounts which should be displayed
in `cashflow` reports.
- The built-in regular expressions for choosing default account types
have been tweaked, and documentation for account types has been
improved.
## csv format
- Inferring the appropriate default field separator based on file
extension (, for .csv, ; for .ssv, \t for .tsv) now works as
documented.
- Conditional rule patterns can now be grouped with the `&` (AND) operator,
allowing more powerful matching. (Michael Sanders)
- Invalid csv rules files now give clearer parse error messages.
(Dmitry Astapov)
- "If tables", a compact bulk format for conditional rules, have been
added. (Dmitry Astapov)
- csv conversion with a lot of conditional rules is now faster (Dmitry Astapov)
- roi: show errors without a traceback
# 1.18.1 2020-06-21