Commit Graph

2305 Commits

Author SHA1 Message Date
Simon Michael
41c8e1f6ef ;regen cabal files with latest stack's hpack (0.34.4) 2021-05-14 08:17:56 -10:00
Simon Michael
1e44371e81 ;doc: cli: more regular expressions linkage 2021-05-14 07:37:13 -10:00
Simon Michael
07128cbb05 ;doc: check: ordereddates: clarify within in each file 2021-05-14 07:36:35 -10:00
Stephen Morgan
dc16451de0 lib: Remove unused (amount|mixedAmount|posting|transaction)ApplyCostValuation functions. 2021-05-07 22:25:19 +10:00
Simon Michael
a722ab4338 ;doc: strict mode: fix check link 2021-05-06 14:51:25 -10:00
Simon Michael
4b3358f6df ;doc: strict mode: link to check command 2021-05-06 14:31:46 -10:00
Stephen Morgan
d1467d4766 lib: When inferring total prices, use the precision of toamount, rather than NaturalPrecision. 2021-05-02 21:14:36 +10:00
Stephen Morgan
686a0871a9 lib: Make sure fromamount and toamount have opposite signs when inferring prices.
Also change priceInferrerFor so that it would give the correct
(negative) prices when fromamount and toamount have the same sign.
2021-05-02 21:14:36 +10:00
Stephen Morgan
0078f1a520 lib: Infer prices correctly even when there are only balance assignments. 2021-05-01 09:45:29 -10:00
Stephen Morgan
7cb621b82f lib,cli,ui,bin: Remove unnecessary normalisedMixedAmount, replace
normaliseMixedAmountSquashPricesForDisplay with mixedAmountStripPrices.
2021-05-01 09:45:29 -10:00
Stephen Morgan
4780a02e5a lib,cli: Remove showAmounts*B functions, replacing them entirely with showMixedAmount*B functions. 2021-05-01 09:45:29 -10:00
Stephen Morgan
5e7b69356f lib: Change internal representation of MixedAmount to use a strict Map
instead of a list of Amounts. No longer export Mixed constructor, to
keep API clean (if you really need it, you can import it directly from
Hledger.Data.Types). We also ensure the JSON representation of
MixedAmount doesn't change: it is stored as a normalised list of
Amounts.

This commit improves performance. Here are some indicative results.

hledger reg -f examples/10000x1000x10.journal
- Maximum residency decreases from 65MB to 60MB (8% decrease)
- Total memory in use decreases from 178MiB to 157MiB (12% decrease)

hledger reg -f examples/10000x10000x10.journal
- Maximum residency decreases from 69MB to 60MB (13% decrease)
- Total memory in use decreases from 198MiB to 153MiB (23% decrease)

hledger bal -f examples/10000x1000x10.journal
- Total heap usage decreases from 6.4GB to 6.0GB (6% decrease)
- Total memory in use decreases from 178MiB to 153MiB (14% decrease)

hledger bal -f examples/10000x10000x10.journal
- Total heap usage decreases from 7.3GB to 6.9GB (5% decrease)
- Total memory in use decreases from 196MiB to 185MiB (5% decrease)

hledger bal -M -f examples/10000x1000x10.journal
- Total heap usage decreases from 16.8GB to 10.6GB (47% decrease)
- Total time decreases from 14.3s to 12.0s (16% decrease)

hledger bal -M -f examples/10000x10000x10.journal
- Total heap usage decreases from 108GB to 48GB (56% decrease)
- Total time decreases from 62s to 41s (33% decrease)

If you never directly use the constructor Mixed or pattern match against
it then you don't need to make any changes. If you do, then do the
following:

- If you really care about the individual Amounts and never normalise
  your MixedAmount (for example, just storing `Mixed amts` and then
  extracting `amts` as a pattern match, then use should switch to using
  [Amount]. This should just involve removing the `Mixed` constructor.
- If you ever call `mixed`, `normaliseMixedAmount`, or do any sort of
  amount arithmetic (+), (-), then you should replace the constructor
  `Mixed` with the function `mixed`. To extract the list of Amounts, use
  the function `amounts`.
- If you ever call `normaliseMixedAmountSquashPricesForDisplay`, you can
  replace that with `mixedAmountStripPrices`. (N.B. this does something
  slightly different from `normaliseMixedAmountSquashPricesForDisplay`,
  but I don't think there's any use case for squashing prices and then
  keeping the first of the squashed prices around. If you disagree let
  me know.)
- Any remaining calls to `normaliseMixedAmount` can be removed, as that
  is now the identity function.
2021-05-01 09:45:29 -10:00
Simon Michael
32b42a6c80 ;journal: another test for #1532 2021-04-21 08:09:36 -10:00
Simon Michael
bf7255402c ;journal: add, renumber commodity parse tests (#1532) 2021-04-20 10:37:31 -10:00
Simon Michael
f58fcd95ab ;journal: tests demonstrating commodity parse errors (#1532) 2021-04-20 09:55:11 -10:00
Simon Michael
8cf193547e ;bal: doc: balance features: fix --valuechange link 2021-04-19 16:17:36 -10:00
Simon Michael
39623934c3 ;doc: cli: a note about redirecting debug output 2021-04-17 20:18:05 -10:00
Simon Michael
fe846a0c7f ;lib: comments 2021-04-17 16:06:20 -10:00
Simon Michael
1afb84c95d lib: outputFileFromOpts now returns a maybe; cleanups 2021-04-17 14:51:24 -10:00
Simon Michael
4b5ad69eb1 ;doc: declaring commodities: better link 2021-04-16 12:19:57 -10:00
Simon Michael
ea812f8f34 ;doc: commodity display style: correction 2021-04-16 12:15:52 -10:00
Simon Michael
659aeef56f ;doc: commodity display style: correction 2021-04-16 12:13:28 -10:00
Simon Michael
949c3925e5 ;doc: add Commodity section, update Amounts & Declaring Commodities (#1532) 2021-04-16 12:00:00 -10:00
Simon Michael
a335c5ad21 doc: journal: declaring commodities: mention double quotes (#1532) 2021-04-16 09:10:26 -10:00
Stephen Morgan
28fd7c65f2 lib: When displaying amounts on a single line, always display at least one amount, even if that would exceed the requested maximum width. Addresses #1526. 2021-04-13 15:29:58 -10:00
Simon Michael
f5121129ec timeclock: print shows timeclock amounts with just 2 decimals, like pre-1.21 (#1527) 2021-04-12 18:40:33 -10:00
Stephen Morgan
493ed14629 lib,test: Make sure historical postings have prices stripped if necessary in PostingsReport (see issue #1522). 2021-04-11 18:31:30 -10:00
Stephen Morgan
f6feef7f80 lib,cli: Strip prices in MultiBalanceReport and PostingsReport whenever
we know we won't need them.

Knowing whether we need them is accomplished by pulling the "show-costs"
option used by the Close command up into ReportOpts.
2021-04-11 18:31:30 -10:00
Stephen Morgan
42d7009fef test: Alter valuation tests to better distinguish between costing and
valuation. Replaces a redundant test with one which tests both costing
and valuation simultaneously.
2021-04-11 18:06:04 -10:00
Stephen Morgan
a529207ae7 lib: Do not round Decimal before applying JSON representation if
existing representation is small enough.

Previously the JSON representation of Decimal was rounded to 10 points
of precision before serialising. This sometimes results in an
unnecessary increase of precision.
2021-04-10 17:52:33 -10:00
Simon Michael
eb2da22f63 ;update cabal files 2021-04-04 08:03:57 -10:00
Simon Michael
ba1e91c302 drop support for GHC 8.0
Prior to this commit,
- hledger still builds with GHC 8.0
- hledger-ui does if you use the build plan specified by stack8.0.yaml,
  but you are likely to hit problems if you let cabal pick one
  (https://github.com/jtdaugherty/vty/issues/198 and others)
- hledger-web might, if you could find the right build plan

The hassles are enough and GHC 8.0 is old enough (first released in
2016) that I'm letting it go; 8.2 is the new minimum version for all
hledger packages.

This allows a bunch of cleanups to conditional imports, which I leave
for later.

Also, updated the tested-with minor versions.
2021-04-04 07:54:22 -10:00
Stephen Morgan
edbb713cf8 lib,cli: Fix ledgerDateSpan, so that in takes transaction dates into account. 2021-04-03 13:54:23 -10:00
Stephen Morgan
5fbb67b893 lib,cli: Move reportPeriodName to Hledger.Reports.ReportOptions, use it
for HTML and CSV output for compound balance reports.
2021-04-03 13:43:37 -10:00
Simon Michael
d0940bf8ce ;update cabal files 2021-03-29 08:19:54 -07:00
Simon Michael
4e644840bc lib, etc: add now-required lower bound on containers (#1514) 2021-03-29 08:19:28 -07:00
Simon Michael
5db75c39df bal: keep csv column and row labels consistently lower case
It was reported on #hledger that bal -O csv capitalises "account"
differently for single and multi-period reports. All lower case seems
to be the most common, so I have dropped the capitalisation. Also
the trailing colon from --transpose's "total:".
2021-03-29 07:50:43 -07:00
Eric Mertens
03f06128dc Add a whitespace csv test 2021-03-26 16:39:24 -07:00
Stephen Morgan
b6e20dea13 lib,test: Simplify the JSON representation of AmountPrecision.
It now uses the same JSON representation as Maybe Word8. This means that
the JSON serialisation is now broadly compatible with that used before the
commit f6fa76bba7, differing only in
how it handles numbers outside Word8 and that it can now produce null
for NaturalPrecision.
2021-03-25 15:47:34 -07:00
Simon Michael
eab66de2ca ;cli: doc: commodity, D directive updates 2021-03-25 15:26:28 -07:00
Stephen Morgan
4cb9dfb5b8 lib: Properly escape quotes in csv output. 2021-03-25 09:41:42 -07:00
Stephen Morgan
4609e79f2c lib,cli,ui,web: A number of AccountName and Journal functions which are
supposed to produce unique sorted use Sets internally to be slightly
more efficient. There is also a new function journalCommodities.
2021-03-23 11:26:30 -07:00
Stephen Morgan
7488140608 lib: Do not call showAmount twice for every posting.
For print -f examples/10000x10000x10.journal, this results in
- A 7.7% reduction in heap allocations, from 7.6GB to 7.1GB.
2021-03-21 07:10:27 -07:00
Stephen Morgan
7aa3d3e760 lib,cli: Some efficiency improvements in register reports.
Strip prices after valuing postings in PostingsReport.
Use renderRow interface for Register report.

For reg -f examples/10000x10000x10.journal, this results in:
- Heap allocations decreasing by 55%, from 68.6GB to 31.2GB
- Resident memory decreasing by 75%, from 254GB to 65GB
- Total (profiled) time decreasing by 55%, from 37s to 20s
2021-03-21 07:10:27 -07:00
Stephen Morgan
d54e276658 lib: Split showMixedAmountB into showMixedAmountB and showAmountsB, the
former being a simple wrapper around the latter.

This removes the need for the showNormalised option, as showMixedAmountB
will always showNormalised and showAmountsB will never do so.

We also strip prices from MixedAmount before displaying if not displaying prices.
2021-03-21 07:10:27 -07:00
Simon Michael
7fad876014 ;update manuals 2021-03-18 07:22:42 -07:00
Stephen Morgan
d6a4310d8f lib,cli,ui,bin: Eliminate all uses of Mixed outside of Hledger.Data.Amount.
Exceptions are for dealing with the pamount field, which is really just
dealing with an unnormalised list of amounts.

This creates an API for dealing with MixedAmount, so we never have to
access the internals outside of Hledger.Data.Amount.

Also remove a comment, since it looks like #1207 has been resolved.
2021-03-18 09:47:59 +11:00
Stephen Morgan
dabb3ef82e lib,cli,ui,bin: Create a new API for MixedAmount arithmetic. This should
supplant the old interface, which relied on the Num typeclass.

MixedAmount did not have a very good Num instance. The only functions
which were defined were fromInteger, (+), and negate. Furthermore, it
was not law-abiding, as 0 + a /= a in general. Replacements for used
functions are:
0 -> nullmixedamt / mempty
(+) -> maPlus / (<>)
(-) -> maMinus
negate -> maNegate
sum -> maSum
sumStrict -> maSum

Also creates some new constructors for MixedAmount:
mixedAmount :: Amount -> MixedAmount
maAddAmount :: MixedAmount -> Amount -> MixedAmount
maAddAmounts :: MixedAmount -> [Amount] -> MixedAmount

Add Semigroup and Monoid instances for MixedAmount.
Ideally we would remove the Num instance entirely.

The only change needed have nullmixedamt/mempty substitute for
0 without problems was to not squash prices in
mixedAmount(Looks|Is)Zero. This is correct behaviour in any case.
2021-03-18 09:47:21 +11:00
Simon Michael
f54f2b3b72 ;doc: also update manual source files (#1504) 2021-03-13 07:28:14 -08:00
Felix Yan
a2266e35d9
Remove more reference to old man page stuff
They are not cleaned up in 9824c9683a
2021-03-13 18:03:11 +08:00
Simon Michael
c83970422c cli: fix a build failure with ghc 9.0 (#1503)
Also remove the obsolete shebang line.
2021-03-12 06:59:43 -08:00
Simon Michael
ae57e76cb3 ;update cabal files 2021-03-12 06:59:30 -08:00
Simon Michael
36cbc2b068 bump base upper bound to allow GHC 9.0 2021-03-12 06:58:46 -08:00
Simon Michael
5573538fdc ;update cabal files 2021-03-10 13:50:50 -08:00
Simon Michael
e050790d4c ;bump version to 1.21.99 2021-03-10 13:50:49 -08:00
Simon Michael
5cdbd04974 ;finalise manuals 2021-03-10 11:12:06 -08:00
Simon Michael
532a4622ac ;finalise changelogs 2021-03-10 11:10:13 -08:00
Simon Michael
00beaf1423 ;update cabal files 2021-03-10 08:24:59 -08:00
Simon Michael
eeddfc2509 ;bump version to 1.21 2021-03-10 08:24:58 -08:00
Simon Michael
f82bdb15e4 ;update changelogs 2021-03-10 08:24:12 -08:00
Simon Michael
40d1d7f7a7 ;update manuals 2021-03-10 08:22:39 -08:00
Stephen Morgan
1702b8cca4 Revert "fix valuation tests after #1499"
This reverts commit 696114cfa8.
2021-03-10 12:29:06 +11:00
Simon Michael
696114cfa8 fix valuation tests after #1499 2021-03-09 10:17:26 -08:00
Simon Michael
ae435fd33e ;doc: changelog tweaks 2021-03-09 10:16:02 -08:00
Simon Michael
269b25bc8d doc: edited changelogs 2021-03-09 09:31:28 -08:00
Simon Michael
4ae401cbec ;bal: cli help tweaks 2021-03-09 07:29:40 -08:00
Simon Michael
346429d070 ;bal: doc tweaks 2021-03-09 07:29:12 -08:00
Simon Michael
faf68f3def ;doc: bump changelogs to latest revision 2021-03-08 15:16:54 -08:00
Simon Michael
ec4d131d22 ;doc: cherry pick recent edited changelogs from 1.21-branch 2021-03-08 15:15:57 -08:00
Simon Michael
325aa15f74 ;doc: restore changelogs up to a5f9f8ce0 2021-03-08 15:14:47 -08:00
Simon Michael
54b95af9ff ;doc: merge 1.20.3, 1.20.4 changelogs from 1.20-branch 2021-03-08 15:12:39 -08:00
Simon Michael
72a9b612c1 ;cli: fix "hledger CMD --info" with older info
This should open the info node for CMD, but was giving an
error with info 4.8 on macs. Now it's more robust.
2021-03-07 17:40:50 -08:00
Simon Michael
36aa01f67a ;update manuals 2021-03-07 10:25:13 -08:00
Simon Michael
5dc644d280 ;update CLI usage texts 2021-03-07 10:25:08 -08:00
Simon Michael
3a7c578f2d ;bal: doc: tweaks 2021-03-05 14:55:24 -08:00
Simon Michael
e521518eb6 ;bal: doc: tweaks 2021-03-05 10:43:47 -08:00
Simon Michael
2023e9cd65 ;bal: doc: more updates & cleanups (#1496) 2021-03-05 10:21:46 -08:00
Stephen Morgan
2aae54a02c test: Test bal --valuechange throws an error for bad --value options. 2021-03-05 10:09:14 -08:00
Stephen Morgan
efb37c3343 lib: Default to PeriodChange report when using ValueChangeReport. 2021-03-05 10:09:14 -08:00
Stephen Morgan
3f408c2117 lib,cli: Restore old --change option for per-period summation, use --sum for basic ValueChange balance report. 2021-03-05 10:09:14 -08:00
Simon Michael
ae73eea7cb ;bs,bse,cf,is: update docs 2021-03-04 10:26:58 -08:00
Simon Michael
7b8a873471 ;check: update manual 2021-03-03 15:43:38 -08:00
Stephen Morgan
d931e4919e cli: Allow overriding with --periodic (rather than the old --change) and properly calculate requestedspan in CompoundBalanceReport. 2021-03-03 15:43:02 -08:00
Simon Michael
e9f04d5ed6 check: ordereddates now checks each file separately (fix #1493) 2021-03-03 06:44:50 -08:00
Simon Michael
642ad24b0e ;check: refactor 2021-03-03 06:06:39 -08:00
Simon Michael
cb0526381e ;bal: doc updates 2021-03-03 05:30:53 -08:00
Stephen Morgan
edaaef897b lib: Do not include price directives in journalDateSpan. Only include
price directives after the last transaction/posting date if using
--value=end.

Also enlarges the reportspan to encompass full intervals for budget
goals.
2021-03-03 05:26:55 -08:00
Simon Michael
ff5e810c78 ;bal: more doc updates 2021-03-03 04:10:23 -08:00
Simon Michael
4c9b72ea15 ;bal: mention --valuechange (#1480) 2021-02-27 18:53:05 -08:00
Simon Michael
f63c38a7e2 bal: docs rewritten, and updated for new flags 2021-02-27 18:51:44 -08:00
Stephen Morgan
7f2536a2a7 lib,cli: Add --valuechange report type for calculating change of value
of accounts, restore --value=end behaviour to that of hledger-1.19.
2021-02-27 18:42:02 -08:00
Stephen Morgan
351648e4fa lib,cli: Add --periodic option to indicate PeriodChange accumulation (renamed from --change). 2021-02-27 18:42:02 -08:00
Dmitry Astapov
582a1651b3 roi: cmdline help simplified 2021-02-23 15:13:19 -08:00
Dmitry Astapov
0fa51482c6 roi: check valuation on dates we have price directives for 2021-02-23 14:11:29 -08:00
Dmitry Astapov
8013d650f3 roi: honor all kinds of --value switches 2021-02-23 14:11:29 -08:00
Simon Michael
f4d81377af print --match: show --match's argument in debug output
If you forget that the argument is required by the --match
option, and not the command as a whole - eg if instead of

  hledger print --match somebank -x

you write:

  hledger print --match -x somebank

that gets quietly parsed as:

  hledger print --match="-x"

which is not great. Adding --debug now at least gives some insight:

  hledger print --match -x somebank --debug
  finding best match for description: "-x"
  similar transactions:
  ...
2021-02-20 14:29:40 -08:00
Simon Michael
44508f58c8 add, lib: debug output, refactor similar transactions lookup
add --debug=1 shows the top hits for similar past transactions.

added:
Hledger.Cli.Utils.journalSimilarTransaction
 provides --debug=1 output

changed:
Hledger.Cli.Commands.Add.transactionsSimilarTo -> Hledger.Data.Journal.journalTransactionsSimilarTo
 now takes an extra number-of-results argument
2021-02-20 13:41:37 -08:00
Simon Michael
7979c7d74c ;import: doc: tweak 2021-02-18 18:43:22 -08:00
Simon Michael
125ba49992 ;import: doc: tweak 2021-02-18 18:38:51 -08:00
Simon Michael
554f7a59fd ;import, print: better deduplication docs 2021-02-18 18:35:06 -08:00
Simon Michael
f7bbb39a77 ;regenerate cabal files with the hpack version in current stack
To minimise warnings. They got regenerated by a commit for #1471.
2021-02-18 13:42:40 -08:00
Simon Michael
b92a842728 ;update manuals 2021-02-17 12:07:23 -08:00
Simon Michael
f4c8b52885 ;update CLI usage texts 2021-02-17 12:07:06 -08:00
Arnout Engelen
ad2ab3c823 Make sure to round up for the 'to' date 2021-02-17 09:05:13 -08:00
Simon Michael
9cff45b2c5 ;journal: doc: note same-day P overrides --infer-market-value 2021-02-13 15:34:47 -08:00
Simon Michael
b9d33a4294 bs: just declaring a Cash account no longer hides Asset accounts
Since Cash is also an Asset, declaring an account as Cash also disabled the fallback regexp for Asset accounts.
2021-02-13 08:09:45 -08:00
Simon Michael
d865ec5d65 lib: refactor: more consistent amount precision helpers
Hledger.Data.Amount:
renamed:
setAmountPrecision -> amountSetPrecision
setFullPrecision -> amountSetFullPrecision
setMixedAmountPrecision -> mixedAmountSetPrecision
added:
mixedAmountSetFullPrecision
2021-02-05 16:09:49 -08:00
Simon Michael
37e49ada70 cli: rename --infer-value to --infer-market-price
For clarity; infer-value was too vague. The old spelling remains
supported for compatibility, but is now deprecated.
When typing, --infer-market or even --infer (for now) is sufficient.
2021-02-05 15:16:39 -08:00
Simon Michael
681965e2d4 ;journal: doc: wording tweak for #1465 2021-02-04 08:13:55 -08:00
Simon Michael
6101368954 print: always show all decimal places (#931)
Ensures parseable and more sensible-looking output in more cases, and behaves more like Ledger's print.

There is still an issue with adding trailing zeroes, which would be nice to prevent.
2021-02-04 08:13:55 -08:00
Simon Michael
0274b30742 print: don't add decimal places in assertion/assignment amounts either (#1465) 2021-02-04 06:46:09 -08:00
Simon Michael
a91a2ed2ed ;csv: doc: note how CSV amounts affect display style (#1465) 2021-02-04 06:30:14 -08:00
Simon Michael
201f967411 print: show all decimal places in assertion/assignment amounts (#1465)
Overriding the commodity style, per https://hledger.org/hledger.html#commodity-display-style.
2021-02-03 18:11:44 -08:00
Simon Michael
74f288a01d ;doc: valuation: fix typos 2021-01-31 13:33:50 -08:00
Stephen Morgan
e6cf2fb499 doc: Document new independent costing and valuation features in manual. 2021-01-28 13:57:49 -08:00
Stephen Morgan
b619b68f71 doc: Remove references to --value=cost, replacing them with --cost.
Since this is option is now just an alias for -B/--cost, and since it
may be removed soon, we make it undocumented, though it will still
behave as before. --value=cost,COMM is unsupported as well.
2021-01-28 13:57:48 -08:00
Stephen Morgan
c9eb7d1bcf lib,cli,ui: Separate costing from valuation; each can now be specified
independently.

You can now combine costing and valuation, for example "--cost
--value=then" will first convert to costs, and then value according to
the "--value=then" strategy. Any valuation strategy can be used with or
without costing.

If multiple valuation and costing strategies are specified on the
command line, then if any of them include costing
(-B/--cost/--value=cost) then amounts will be converted to cost, and for
valuation strategy the rightmost will be used.

--value=cost is deprecated, but still supported and is equivalent to
--cost/-B. --value=cost,COMM is no longer supported, but this behaviour can be
achieved with "--cost --value=then,COMM".
2021-01-28 13:57:48 -08:00
Stephen Morgan
130739e3ef lib,cli,ui: Introduce *ApplyCostValuation functions, which perform both
costing and valuation.

This currently is given a dummy NoCost argument and is equivalent to
"maybe id (*ApplyValuation ...)", but provides a constant interface so
that internal behaviour can be changed freely.
2021-01-28 13:57:48 -08:00
Stephen Morgan
a632e2fee9 test: Period change reports should not see historical postings when performing valuation. 2021-01-28 13:57:48 -08:00
Stephen Morgan
9cf5015958 lib: bal --value=end without --historical should not report on fluctuation in value of historical postings. 2021-01-28 13:57:48 -08:00
Simon Michael
93e5355a2b ;areg: doc: clarify account selection 2021-01-28 07:22:21 -08:00
Simon Michael
6650a563fb ;areg: doc: try to clarify aregister's purpose 2021-01-27 12:53:49 -08:00
Simon Michael
a91ca6892b ;areg: doc: mention depth limit is ignored (#1468) 2021-01-24 10:02:34 -08:00
Simon Michael
08c5857ac9 areg: ignore a depth limit, as in 1.19 (#1468)
aregister always shows transactions to subaccounts as well, ignoring any depth limit, so that the register's final total matches a corresponding balance report.
This was broken since 2020-09-02 c45663d41.
2021-01-24 09:46:12 -08:00
Simon Michael
58df055f7c ;areg: add a commented test for #1468 2021-01-23 17:15:38 -08:00
Simon Michael
337bc989ab ;bal: notes for single-period html output 2021-01-21 16:44:26 -08:00
Simon Michael
540c65994c payees: add --used/--declared flags, like accounts 2021-01-17 16:37:38 -08:00
Simon Michael
63076d212d ;csv: csvtest.sh: add history note (#1434)
In case someone might want to find the old code.
2021-01-15 13:19:24 -08:00
Felix Van der Jeugt
a79a7cfdb8 make testscript POSIX and shellchecked 2021-01-15 13:18:51 -08:00
Stephen Morgan
217bfc5e74 lib: Rename alignCell to textCell, minor cleanups. 2021-01-15 12:56:48 -08:00
Simon Michael
ce6939b304 ;journal: doc: note commodity directives' position-sensitivity 2021-01-13 17:57:18 -08:00
Simon Michael
bd8074721e journal: doc: clarify number formats, display styles (#1461) 2021-01-13 17:57:18 -08:00
Stephen Morgan
2b545caae5 lib: Calculate value at posting date for register --value=then -M. 2021-01-12 18:20:21 -08:00
Dmitry Astapov
07a9f11962 roi: use MixedAmount more and keep styles when reporting commodities 2021-01-12 15:19:35 -08:00
Dmitry Astapov
14a3b9833c roi: fix insane precision bug, discovered in #1417 2021-01-12 15:19:16 -08:00
aragaer
7bde3345b8 cli,csv: Fix --drop option in csv output format 2021-01-12 12:11:56 -08:00
Dmitry Astapov
fc32f22f86 lib: roi now supports --value/--infer-value 2021-01-12 11:53:00 -08:00
Dmitry Astapov
9869624c5c lib: better message when roi fails to value commodity, fixes #1446 2021-01-12 11:53:00 -08:00
Stephen Morgan
b203822cd1 lib: Make sure to add a newline to the end of aregister report. 2021-01-10 20:50:46 -08:00
Simon Michael
b5ab5ac9bc ;bal: doc: tweak
(cherry picked from commit 1dda703651ffe64dcf14c6a026fdead836224d1b)
2021-01-10 15:50:49 -08:00
Simon Michael
50a7914b3b ;update manuals 2021-01-10 15:37:32 -08:00
Simon Michael
de5dfe2d1b ;update CLI usage texts 2021-01-10 15:35:48 -08:00
Simon Michael
0d418fc86e ;bal: update command docs (#1441) 2021-01-10 15:35:01 -08:00
Stephen Morgan
0ef413bc25 doc,tests: Document new --value=then functionality and add tests. 2021-01-10 07:53:57 -08:00
Simon Michael
6931eec3ce ;check: uniqueleafnames: short circuit to avoid wasted work 2021-01-09 18:59:10 -08:00
Simon Michael
b96713a584 check: uniqueleafnames: fancy error message like the others 2021-01-09 18:54:33 -08:00
Simon Michael
e82e1db464 ;check: ordereddates: fix double "Error" 2021-01-09 18:54:33 -08:00
Simon Michael
a3e94290e4 ;csv: doc: amount tips: tweaks 2021-01-09 18:54:33 -08:00
Doug Goldstein
62cd34ae8a ;doc: adjust traditional top level accounts
Across the rest of the documentation and other accounting documentation
it appears to imply that the more traditional top level name would be
revenue. In fact the income statement says that is a subtraction between
revenue and expenses to derive the income. While the account types that
hledger supports are named revenue so it seems more natural to name this
revenue.
2021-01-09 12:58:18 -08:00
Simon Michael
eafdae3886 ;csv: doc: amount tips: tweaks 2021-01-07 10:15:13 -08:00
Simon Michael
c21b666130 csv: handle more sign variations, eg a sign by itself
simplifySign now covers a few more sign combinations that might arise.
And in particular, it strips a standalone sign with no number,
which simplifies sign flipping with amount-in/amount-out.
2021-01-07 10:06:38 -08:00
Simon Michael
6035cdf1e0 ;csv: doc: setting amounts: tweaks 2021-01-07 09:30:37 -08:00
Simon Michael
62d9e46adc ;csv: doc: tweaks 2021-01-06 15:33:54 -08:00
Simon Michael
07a96c47c9 ;csv: doc: improve setting amounts tips 2021-01-06 11:01:12 -08:00
Simon Michael
b15a634a44 ;check: accept parseable/autobalanced/assertions as arguments, for completeness 2021-01-05 16:25:43 -08:00
Simon Michael
7510d99aec check: accept case-insensitive prefixes as arguments
Might a bad idea, but avoiding wasteful typing..
2021-01-05 16:18:24 -08:00
Simon Michael
9abb33d8e7 ;valuation: document the price search limit (#1439) 2021-01-05 15:59:58 -08:00
Stephen Morgan
83110e8820 lib,cli: Extend AtThen valuation to all report types.
Also adds a postingDate argument to amountApplyValuation, and re-orders
the ValuationType and (Transaction/Posting) arguments to
(transaction/posting)ApplyValuation, to be consistent with
amountApplyValuation.
2021-01-05 14:42:09 -08:00
Simon Michael
3d7d5c0db7 new price search that really finds the shortest path (#1443)
This one should also reliably prevent runaway searches in the event of more bugs, giving up after 1000 iterations.
2021-01-04 18:42:51 -08:00
Simon Michael
e179685f3c ;valuation: commented test for #1443 2021-01-04 16:26:48 -08:00
Simon Michael
108b020f23 ;valuation: add functional test for #1439 slowdown 2021-01-04 15:45:58 -08:00
Stephen Morgan
5ba6215c47 cli: Remove redundant import, add some CPP. 2021-01-02 15:08:09 +11:00
Stephen Morgan
2bc2710017 test: Update for tests failing now that it's 2021. 2021-01-02 15:08:09 +11:00
Stephen Morgan
7d3cf1747a lib: Make consistent naming scheme for showMixedAmount* functions,
add conversion between old API and new API in the documentation.
2021-01-02 15:08:09 +11:00
Stephen Morgan
e63138ef7d lib,cli: Assorted fixes for older GHC. 2021-01-02 15:08:09 +11:00
Stephen Morgan
e4e533eb9f lib,cli,ui: Replace some uses of String with Text, get rid of some unpacks, clean up showMixed options. 2021-01-02 15:08:09 +11:00
Stephen Morgan
07a7c3d3a8 lib: Use Text and Text builder only in postingAsLines. 2021-01-02 15:08:09 +11:00
Stephen Morgan
13c111da73 lib,cli,ui: Use WideBuilder for Tabular.AsciiWide.
Move WideBuilder to Text.WideString.
2021-01-02 15:08:09 +11:00
Stephen Morgan
b9c00dce61 lib,cli,ui: Implement all showMixed* functions in terms of DisplayAmountOpts and WideBuilder. 2021-01-02 15:08:09 +11:00
Stephen Morgan
f998a791cf lib: Remove unused optional width argument for StringFormat. 2021-01-02 15:08:09 +11:00
Stephen Morgan
462a13cad7 lib,cli: Use Text Builder for Balance commands. 2021-01-02 15:08:09 +11:00
Stephen Morgan
089564b04b lib,cli: Use Text for CompoundPeriodicReport titles. 2021-01-02 15:08:09 +11:00
Stephen Morgan
541c4fc18c lib,cli: Use Text for CSV values. 2021-01-02 15:08:09 +11:00
Stephen Morgan
e3ec01c3c6 lib,cli,ui: Use Text for showDate and related. 2021-01-02 15:08:09 +11:00
Stephen Morgan
74b296f865 lib,cli: Make showTransaction return Text rather than String. 2021-01-02 15:08:09 +11:00
Stephen Morgan
dbe7015502 cli: Refactor compoundBalanceCommand. 2021-01-02 15:08:09 +11:00
Stephen Morgan
7e44b89bb4 lib: Remove unused label on TranspactionReport and AccountTransactionsReport. 2021-01-02 15:08:09 +11:00
Stephen Morgan
5752f1c5cb lib,cli: Use Text Builder for Account Transaction Reports. 2021-01-02 15:08:09 +11:00
Stephen Morgan
b9dbed6713 cli: Use Text Builder for Entries Reports. 2021-01-02 15:08:09 +11:00
Stephen Morgan
12a6435c51 lib: Add wrap convenience function. 2021-01-02 15:08:09 +11:00
Stephen Morgan
646ee0bce5 cli: Using Text Builder for posting reports. 2021-01-02 15:08:09 +11:00
Simon Michael
ac39d59016 ;check: doc: link to payee directive 2020-12-31 12:57:39 -08:00
Simon Michael
fdeaa3cd8b doc: journal: document payee directive 2020-12-31 12:55:24 -08:00
Simon Michael
3898a66dda ;check: doc: wording 2020-12-31 12:40:46 -08:00
Simon Michael
c8eb347835 ;check: no longer experimental 2020-12-31 12:17:48 -08:00
Simon Michael
2ffed3aec7 check: ordereddates: test --date2, clarify --unique and QUERY dropped 2020-12-31 11:43:51 -08:00
Simon Michael
bb1d49c573 ;update CLI usage texts 2020-12-31 11:23:56 -08:00
Simon Michael
01bfeda4fb ;update cabal files 2020-12-31 11:23:36 -08:00
Simon Michael
4491325bb0 ;check: ordereddates/uniqueleafnames: print on stderr, refactor 2020-12-31 11:22:32 -08:00
Simon Michael
1d4c4c5b8b check: drop old checkdates/checkdupes commands, consolidate 2020-12-31 10:49:17 -08:00
Simon Michael
a6ec7bcc11 ;check: add tests for all on-demand checks 2020-12-31 10:27:50 -08:00
Simon Michael
8306420b61 check: also check "accounts"/"commodities" on demand
(cherry picked from commit 0c2bf54f2955e3a25fd0282acc42608f957abaea)
2020-12-31 08:33:36 -08:00
Simon Michael
5d8669d4f3 ;check: separate func test files for each check 2020-12-31 08:29:15 -08:00
Simon Michael
31ea37a785 ;check: accounts, commodities, payees, ordereddates: improve errors
Error messages for these four are now a bit fancier and more
consistent. But not yet optimised for machine readability.
Cf #1436.

Added to hledger-lib: chomp1, linesPrepend[2].
2020-12-30 18:13:34 -08:00
Damien Cassou
b47d582583 ;check: fixes 2020-12-30 18:08:31 -08:00
Simon Michael
de56d09024 ;check: start some functional tests, for payees 2020-12-30 18:08:31 -08:00
Simon Michael
3c232fbd7d check: add "payees" check requiring payee declarations 2020-12-30 18:08:30 -08:00
Simon Michael
8ab2316604 ;cli: doc: data formats: wording 2020-12-30 17:06:01 -08:00
Simon Michael
22c6f056c2 ;update manuals 2020-12-29 10:27:48 -08:00
Simon Michael
6f08631be3 ;doc: changelog updates 2020-12-29 10:21:27 -08:00
Simon Michael
a5f9f8ce0c ;update CLI usage texts 2020-12-29 09:43:24 -08:00
Simon Michael
4a48e5f8aa ;doc: changelogs
(cherry picked from commit 3031c0e7b9bd9384ac390d3f3705455f057dd8c8)
2020-12-29 09:39:35 -08:00
Simon Michael
4ce681348d ;update changelogs
(cherry picked from commit 1b389961587720be10f7cced91d3b6cb9fc47415)
2020-12-29 09:38:58 -08:00
Simon Michael
f2d2272737 ;update changelogs
(cherry picked from commit 15e290955f8ae2ed636b4e144e84fc4c73f4228b)
2020-12-29 09:37:54 -08:00
Simon Michael
d126ceead2 ;cli: tests: allow func tests to run on NixOS 2020-12-28 15:23:51 -08:00
Simon Michael
21ce0c30cc ;print: cleanup; discuss unbalanced output (#1429) 2020-12-28 07:07:45 -08:00
Simon Michael
9ff53ab1e0 ;cli: convert cli.test to latest format 2020-12-28 06:28:31 -08:00
Simon Michael
323303daba ;cli: another fix for 4330427f 2020-12-28 06:24:56 -08:00
Simon Michael
b66d8f0f3c ;update manuals 2020-12-26 17:29:02 -08:00
Simon Michael
cee1c69ac0 ;update CLI usage texts 2020-12-26 17:28:47 -08:00
Simon Michael
4330427f6b cli: make --help/--version always CMD-specific
This simplifies the --help/-h and --version flags by making them
position independent: no matter where they appear in the command line,
if there is a command argument they will show the command's help or
version (where applicable), instead of the hledger executable's.
2020-12-26 17:27:28 -08:00
Simon Michael
ae9595c321 cli/help: --info/--man/help show CMD/topic-specific docs
hledger CMD --info will now open CMD's info node,
hledger CMD --man will scroll the man page to CMD's section, and
hledger help -i/-m/-p TOPIC will do similar.
This is not perfectly robust but hopefully will be good enough in
practice.

Also the help command's long --info/--man/--pager flags have been
dropped in favour of -i/-m/-p.
2020-12-26 17:27:28 -08:00
Simon Michael
54af71a0b1 cli: general --man, --info flags show the manual 2020-12-26 17:27:28 -08:00
Simon Michael
f20cd2b112 help: show only the hledger manual, for now 2020-12-26 17:27:27 -08:00
Simon Michael
7d3f05b16a help: add -i/-m/-p short flags 2020-12-26 17:27:27 -08:00
Simon Michael
9beff54b27 help: drop --cat 2020-12-26 17:27:27 -08:00
Simon Michael
ab55be6d64 ;doc: link updates 2020-12-26 17:27:27 -08:00
Simon Michael
201ea210fb ;cli: doc: intro wording 2020-12-26 17:27:27 -08:00
Simon Michael
8a16b2b1b0 ;update CLI usage texts 2020-12-26 08:21:45 -08:00
Simon Michael
45a5658396 cli: drop deprecated command aliases a, b, p, r, txns 2020-12-26 08:21:45 -08:00
Simon Michael
8d320bc1fe ;update manuals 2020-12-24 17:26:17 -08:00
Simon Michael
fbe30a73b9 ;doc: mention version in all manual formats 2020-12-24 17:25:11 -08:00
Simon Michael
f79cd78179 ;doc: update links 2020-12-24 13:02:02 -08:00
Simon Michael
fbf9418756 ;doc: update links to journal manual 2020-12-24 12:49:04 -08:00
Simon Michael
62660577c3 ;update cabal files 2020-12-24 10:22:16 -08:00
Simon Michael
ff3a05f891 ;update manuals 2020-12-24 10:22:05 -08:00
Simon Michael
ef55f9faf3 ;update CLI usage texts 2020-12-24 10:22:05 -08:00
Simon Michael
a7e9e9ac0e doc: merge file format manuals into the hledger manual
Also flatten the journal manual topics a bit.

There are pros and cons to this, but I believe the pros outweigh the
cons.
2020-12-24 10:22:05 -08:00
Simon Michael
a950d49e18 cli: hide deprecated aliases in command list
(a, b, p, r, equity, txns)
2020-12-23 12:00:42 -08:00
Simon Michael
0a36823094 ;update manuals 2020-12-23 10:29:57 -08:00
Simon Michael
69a7325f91 ;update CLI usage texts 2020-12-23 10:29:30 -08:00
Simon Michael
9c7a87da57 cli: doc: sync/update manual & cli command lists 2020-12-23 10:28:31 -08:00
Simon Michael
f43ab0029d cli: doc: reorganise/flatten hledger manual, rewrite commands section 2020-12-23 10:25:43 -08:00
Simon Michael
65a003c8ee ;doc: refactor, keep commands.m4 in Commands dir 2020-12-22 17:05:28 -08:00
Simon Michael
630347e0e8 ;bs/bse/cf/is: describe in terms of balance command 2020-12-22 09:22:10 -08:00
Simon Michael
324dfaee49 ;update manuals 2020-12-20 20:11:35 -08:00
Simon Michael
63876a4186 ;cli: doc: commands glue text 2020-12-20 20:08:35 -08:00
Simon Michael
0ff65456fa ;doc: info: tweak first/top heading again to improve structure 2020-12-20 20:08:35 -08:00
Simon Michael
9daaabeda2 ;doc: simplify manuals' title metadata to fit man/info better 2020-12-20 20:08:35 -08:00
Simon Michael
006db6136c ;doc: info: consistent indenting of synopsis command lines 2020-12-20 20:08:35 -08:00
Simon Michael
57a176193d ;doc: commands: include in man pages again; simplify headings
Simplify things for now.
2020-12-20 20:08:35 -08:00
Simon Michael
11b787e8ec ;doc: info: drop areg/bal's "Output format" heading to fix node loops
These were making it impossible to page through the entier manual with
the space key.
2020-12-20 20:08:35 -08:00
Simon Michael
c92c27d565 doc: tweak manuals' top heading to improve info structure 2020-12-20 20:08:35 -08:00
Simon Michael
ad3b5ef2fb ;doc: cli: reorder command docs; clean up includes 2020-12-20 07:57:57 -08:00
Simon Michael
6b4be651af doc: rewrite commands intro; drop command docs from man page 2020-12-19 12:01:58 -08:00
Stephen Morgan
e406cebcce lib: Remove unused AtDefault constructor for ValuationType. 2020-12-19 11:59:44 -08:00
Stephen Morgan
0c23619ae7 lib: Valuation has changed; and -V now acts like --value=end. 2020-12-19 11:59:44 -08:00
Stephen Morgan
8981b3e196 lib: Include empty columns in MultiBalanceReports.
This was previously done for CompoundBalanceReport and when --empty was
called; this makes the behaviour consistent.
2020-12-18 20:54:08 -08:00
Stephen Morgan
ec3299f626 doc: Add note for market prices being included in calculating the default end date. 2020-12-16 19:04:33 -08:00
Stephen Morgan
439eddc8b9 lib: Include price directives when calculating journal end date. 2020-12-16 19:04:33 -08:00