mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-18 17:57:11 +03:00
;doc: changelogs
This commit is contained in:
parent
e44c1cfae8
commit
7aefa6f0ce
22
CHANGES.md
22
CHANGES.md
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user