hledger check recentassertions (or flycheck-hledger if you enable this
check) will complain if any balance-asserted account does not have a
balance assertion within 7 days before its latest posting. This aims
to prevent the situation where you are regularly updating your
journal, but forgetting to check your balances against the real world,
eventually requiring you to dig back through months of data to find
the error.
For earlier versions `cabal build -w ghc-9.2` fails with
```
Hledger/Cli/Commands/Rewrite.hs:144:12: error:
Not in scope: type constructor or class ‘D.Diff’
Module ‘Data.Algorithm.Diff’ does not export ‘Diff’.
|
144 | mapDiff :: D.Diff a -> DiffLine a
| ^^^^^^
```
and
```
Hledger/Cli.hs:49:37: error:
• Couldn't match expected type: template-haskell-2.18.0.0:Language.Haskell.TH.Syntax.Code
template-haskell-2.18.0.0:Language.Haskell.TH.Syntax.Q
(Either String GitHash.GitInfo)
with actual type: template-haskell-2.18.0.0:Language.Haskell.TH.Syntax.Q
(template-haskell-2.18.0.0:Language.Haskell.TH.Syntax.TExp
(Either String GitHash.GitInfo))
• In the expression: tGitInfoCwdTry
In the Template Haskell splice $$tGitInfoCwdTry
In the first argument of ‘versionStringWith’, namely
‘$$tGitInfoCwdTry’
|
49 | versionString = versionStringWith $$tGitInfoCwdTry
|
```
transaction prices.
When given --infer-costs, hledger will now separately infer transaction
prices for different prices. Given a pair of adjacent conversion
postings, hledger will check if there is a single posting with a
transaction price which matches both the amounts. If so, it associates
those conversion postings to that priced post.
If it can't find any transaction price postings which match, it will
find the first non-transaction price post which matches one of the two
amounts, and will add a transaction price to that, and associate them.
When given --infer-equity, hledger will change transaction prices to balancing equity postings. This introduces the inverse operation, --infer-costs, which will match balancing equity postings and transform them into a transaction price, allowing --cost to work properly with them. This is only a partial inverse as it needs to use some heuristics to match the postings which will not work in complicated cases.
Specifically, when hledger finds exactly two conversion postings in a transaction (by default, subaccounts of equity:conversion or equity:trad(e|ing)), it will find the first posting in the transaction whose amount is negative one of the conversion posting amounts, and inserts the corresponding transaction price.