Simon Michael
2b86b806d9
;doc:changelogs
2025-09-26 15:05:09 -10:00
Simon Michael
a2af816611
dev:Hledger.Utils.IO: inputToHandle -> textToHandle; set utf8 not utf8_bom
2025-09-26 01:08:48 -10:00
Simon Michael
5db4ee7420
dev:Hledger.Utils.IO: readHandlePortably, readHandlePortably' -> hGetContentsPortably
2025-09-26 01:08:43 -10:00
Simon Michael
9351c70f74
fix:csv: respect encoding rule when rules file is input file [ #2465 ]
2025-09-26 00:34:01 -10:00
Simon Michael
8542d8beba
imp:errors: improve decode failure wording [ #2465 ]
2025-09-25 01:28:32 -10:00
Simon Michael
e414446076
imp: pivoting on the type tag normalises type values to their short spelling.
2025-09-25 01:11:03 -10:00
Simon Michael
b5f954abf5
imp:errors: decode failures now also mention a possible CSV encoding [ #2465 ]
2025-09-24 10:40:30 -10:00
Simon Michael
19620ba61b
;pkg:lib: make hashtables bounds consistent in cabal file
2025-09-21 11:44:06 -07:00
hseg
240757b259
Avoid hashtables 1.3.x for best gcc compatibility [ #2463 ]
...
* Forbid solving for hashtables 1.3
On modern gccs, this sometimes causes build failures, see
https://github.com/gregorycollins/hashtables/issues/97
* Propagate constraint to package.yaml too
* stack98: include valid hashtables version
* stack92: add valid hashtables version
* stack94: add valid hashtables version
* stack96: add valid hashtables version
2025-09-21 11:41:57 -07:00
Simon Michael
603185b600
;doc:changelogs:clarify; show API changes in hledger & hledger-lib separately
2025-09-16 10:11:30 -07:00
Simon Michael
36a1cbaff6
;doc: changelogs
2025-09-16 05:20:48 -07:00
Simon Michael
fe0d4fd3ec
;doc: changelogs
2025-09-16 04:24:00 -07:00
Stephen Morgan
f515c5f811
fix: balance: Don't display zero rows with --no-elide ( #2454 )
...
Zero rows with --no-elide should only be displayed if either --empty is
called or they have non-zero children at some depth.
2025-09-15 15:40:32 -07:00
Simon Michael
8c4e2e08b6
;cabal: update cabal files
2025-09-13 06:57:22 +01:00
Simon Michael
1d0ea95b9c
;doc:changelogs
2025-09-11 11:09:12 +01:00
Simon Michael
6d164b48a0
imp:journal: in amounts, also allow and ignore empty {} (or {{}})
2025-09-11 07:33:22 +01:00
Stephen Morgan
aad61e465d
fix: balance: Correctly handle empty journals ( #2452 )
...
Eliminate several partial functions.
2025-09-11 07:29:27 +01:00
Simon Michael
82552b4ea8
;doc: update embedded manuals
2025-09-03 20:22:46 +01:00
Simon Michael
8be3e85676
;cabal: update cabal files
2025-09-03 20:22:40 +01:00
Simon Michael
7ee721eab0
;pkg: set version to 1.50.99
2025-09-03 20:22:40 +01:00
Simon Michael
dc84d54ae1
;cabal: update cabal files
2025-09-03 20:07:41 +01:00
Simon Michael
541e0ebf48
;doc: finalise changelogs for 1.50 on 2025-09-03
2025-09-03 20:03:21 +01:00
Simon Michael
38116dce19
;doc: update changelogs
2025-09-03 20:03:15 +01:00
Simon Michael
80e659b51c
;pkg: bump minimum supported GHC from 8.10.7 to 9.6 (and base 4.18)
...
System.IO.hGetContents' was the latest paper cut; I could keep
supporting ghc 8.10.7, or at least 9.0-9.4, released 2021-2023;
but feck it. Debian Stable has 9.6 and this time can be better spent.
2025-09-03 20:02:59 +01:00
Simon Michael
bc55e1c58f
dev: fix liftA2, Foldable1 build errors with ghc <9.6 [ #2395 ]
2025-09-03 20:02:12 +01:00
Simon Michael
4f03d22501
;pkg: update tested-with
2025-09-03 20:00:16 +01:00
Simon Michael
00fae3ac3b
fix: ensure liftA2 is imported, build with ghc <9.6
...
This broke in 1.43.1.
2025-09-02 08:00:08 +01:00
Simon Michael
91d785aee8
dev:fix: use compatible code rather than new T.show added yesterday
2025-09-01 20:08:17 +01:00
Simon Michael
65eb0b1f78
fix:timeclock: change misleadding error message in --old-timeclock mode
2025-09-01 08:49:11 +01:00
Simon Michael
9849f196cb
fix:timeclock: process in parse order; fully support overlapping sessions [ #2417 ]
...
We no longer attempt to process timeclock entries in time order - that
was a wrong requirement, probably given by me, that can't work. Now
we just process them in parse order. This plus a little tweaking of
error checking fixes several ordering bugs with overlapping sessions
and also allows same-named overlapping sessions.
More cleanup will follow. More testing might show that --old-timeclock
is no longer needed.
2025-09-01 08:27:08 +01:00
Simon Michael
7ac0fa1aaa
dev:TimeclockReader, Timeclock: refactor/reindent [ #2417 ]
2025-09-01 08:27:01 +01:00
Simon Michael
a2710a5c2b
dev:timeclock: make --old-timeclock parser call itself, not new parser [ #2417 ]
...
There was no known visible bug, but this seems more correct.
2025-09-01 08:26:44 +01:00
Simon Michael
e37caf0f27
imp:journal: better error when attempting to include a rules file
2025-09-01 08:26:44 +01:00
Simon Michael
efe1d11edb
fix:timeclock: --old-timeclock also affects included files [ #2417 ]
...
This required changing the Reader type and passing InputOpts down to
journal's include directive parser.
2025-09-01 08:26:44 +01:00
Simon Michael
8bd9d92981
imp:timeclock: improve overlapping sessions error [ #2417 ]
2025-09-01 06:03:26 +01:00
Simon Michael
04e6c140c0
imp:timeclock: more informative error output for clashing sessions [ #2417 ]
2025-08-31 17:35:13 +01:00
Simon Michael
539a876e7a
;dev:Timeclock: indentation
2025-08-31 16:20:58 +01:00
Simon Michael
e6dbe5d231
fix:timeclock: sessions can begin at a same-named session's end time
...
Now we process entries in a more careful order: time, then parse
order, like journal format. This fixes the original issue and another
one mentioned at #2417 .
2025-08-31 12:01:04 +01:00
Simon Michael
5a3e34cc55
imp:timeclock: syntax is more robust and featureful
...
The default timeclock parser (ie when not using --old-timeclock) has
the following changes, related to issues such as
[#2141 ], [#2365 ], [#2400 ], [#2417 ]:
- semicolon now always starts a comment; timeclock account names can't include semicolons
(though journal account names still can)
- clock-in and clock-out entries now have different syntax
- clock-ins now require an account name
- clock-outs now can have a comment and tags
- the doc has been rewritten, and now mentions the --old-timeclock flag
- lib: accountnamep and modifiedaccountnamep now take a flag to allow semicolons or not
2025-08-31 10:58:37 +01:00
Simon Michael
97899f9a9b
feat:csv: support data generating scripts
...
and rewrite the rules reader.
2025-08-28 21:38:38 +01:00
Simon Michael
c7878e88da
lib:Hledger.Utils.IO: add warnIO
2025-08-28 21:38:38 +01:00
Simon Michael
b22f94007f
dev: source, archive, rules reader: improve docs
2025-08-28 21:38:38 +01:00
Simon Michael
e796a00fc4
dev:import: drop archiving of original data
...
just archive clean data
2025-08-28 21:38:38 +01:00
Simon Michael
b64ddfe813
dev:rules reader: drop "fall back to reading latest archived"
2025-08-28 21:38:38 +01:00
Simon Michael
c60ec90756
dev:import: improve buggy detection of import command
2025-08-28 21:38:38 +01:00
Simon Michael
c515fedf70
feat:csv: support data cleaning scripts
2025-08-28 21:38:38 +01:00
Simon Michael
c930fd0952
imp:end value reports: future P directives don't influence report end/valuation date [ #2445 ]
...
In end-value reports with unspecified end date, a market price later
than the latest transaction can extend the default report end date and
valuation date. Now, only market prices on or before "today" can do this;
market price declarations dated in the future will be ignored.
Report span and valuation date calculations have been clarified.
2025-08-28 17:26:42 +01:00
Simon Michael
4e52c7bd76
;lib:spanExtend: improve doc
2025-08-28 17:26:42 +01:00
Stephen Morgan
ef5c220690
fix: balance: Clip account names in generateMultiBalanceAccount, not before ( #2434 )
...
Previously accounts were clipped in getPostings, however compound
balance reports re-use the output of getPostings for the different
subreports. This caused a problem when clipping erased the information
needed to determine the account type, as would be used by e.g.
incomestatement.
Add some extra tests for --count.
2025-08-28 05:26:42 +01:00
Simon Michael
8951e11584
fix:import: don't erase .latest files when there are no new txns [ #2444 ]
...
Fixes a regression caused by the #2125 fix.
2025-08-25 19:25:52 +01:00
Simon Michael
e2bb24e902
dev: make LatestDatesForFile showable
2025-08-25 19:24:38 +01:00
Simon Michael
03262f3fff
fix 📟 don't use --mouse in default less options
...
Avoid an error on systems where less does not have mouse support.
2025-08-22 07:56:13 +01:00
Simon Michael
cb1d6a71a6
dev:import:archive: fix bugs in new code
...
Too hard to rebase
2025-08-14 19:22:52 +01:00
Simon Michael
7dfe2d84e7
dev:import: fix debug message
2025-08-14 17:52:54 +01:00
Simon Michael
88b451d6eb
imp: when source rule finds no files, read the latest archived
2025-08-14 14:23:53 +01:00
Simon Michael
3dec0a8944
dev: indentation
2025-08-14 14:23:53 +01:00
Simon Michael
76dc6d089a
feat:import:archive: archive data files, and process oldest first
2025-08-14 12:54:40 +01:00
Simon Michael
db7783b16d
dev: cleanups
2025-08-14 12:54:40 +01:00
Simon Michael
bfbef4bcbb
dev: refactor PrefixedFilePath
2025-08-14 12:37:11 +01:00
Simon Michael
cc3923d6d4
imp: the all: query now requires at least one posting
2025-08-03 06:34:00 +01:00
Simon Michael
f604b7a416
fix: accounts: a tag: query only matches account tags, not posting tags
...
Eg, `hledger accounts tag:t` lists only account a from this journal:
account a ; t:
2025-01-01
a 1
b -1 ; t:
2025-08-03 05:38:33 +01:00
Simon Michael
e69c72a6c7
dev: include: revert wrong error position fix; refactor
...
Errors in the main file are being reported a few lines too high,
due to the setOffset in includedirectivep.
It seems reverting this should have restored the original bug with
wrong line number in certain include error messages, but I can't find
that right now.
2025-07-28 11:57:46 +01:00
Simon Michael
79fbfb9f5f
dev: Hledger.Utils.Parse: cleanups
2025-07-18 07:31:05 -07:00
Simon Michael
c48c41bcd2
dev:timeclock: cleanups
2025-07-18 07:17:45 -07:00
Simon Michael
b7e35f84a2
imp: include: add hidden --old-glob flag to restore old dot behaviour
...
This disables the workaround for Glob#49, allowing glob patterns to
find dot files and traverse dot directories again (sometimes too much).
2025-07-17 08:00:08 -07:00
Simon Michael
01e0c34b85
dev: Hledger.Utils.IO: getFlag helper, like getOpt
2025-07-17 07:51:05 -07:00
Simon Michael
5ec770badd
imp: include: more flexible **; show the correct line in read errors
2025-07-16 06:52:19 -07:00
Simon Michael
b35dcfda28
imp: include: give a clearer error for trying to include a csv file
...
And note that other read errors may be unclear when occurring in included files.
2025-07-16 06:52:19 -07:00
Simon Michael
8215f19baa
dev: include: cleanup
2025-07-16 06:52:19 -07:00
Simon Michael
3741f9f030
fix: include: report read failures with correct line number
2025-07-16 06:52:19 -07:00
Simon Michael
2dcfe22c89
imp: include: report ** without / as an error, for clarity
2025-07-16 06:52:19 -07:00
Simon Michael
460ae28826
imp: include: globs exclude current file; more cleanup
2025-07-16 06:52:19 -07:00
Simon Michael
b4a1add267
imp: include: more robust tests and glob pattern handling
...
This switches from filepattern back to Glob, which is more powerful.
New notes, implementation, workarounds and tests.
2025-07-16 06:52:19 -07:00
Simon Michael
1046f652b1
dev: PrefixedFilePath cleanups
...
And some helpers that weren't needed after all, but maybe in future
2025-07-16 06:52:19 -07:00
Simon Michael
28f60bcf92
dev: includedirectivep: refactor
2025-07-11 20:34:50 -07:00
Simon Michael
3a03927018
imp: include: show including file path in debug output
2025-07-11 20:12:13 -07:00
Simon Michael
0add2e90db
imp: include: glob patterns always exclude the current file
...
Eg include **/*.journal is less likely no complain
2025-07-11 19:36:17 -07:00
Simon Michael
08017366b5
imp: file reading: demote some debug=6 output to level 7
2025-07-11 13:48:58 -07:00
Simon Michael
536589e2c2
imp: include: improve cycle and read failure error messages
2025-07-11 13:36:47 -07:00
Simon Michael
b71e001c51
imp: include: more robust ** patterns, and ignore dotted directories
...
** now ignores anything under dotted directories, ie directories whose
name begins with a dot. Eg .git/, foo/.secret/, etc.
Switched from Glob to filepattern lib.
2025-07-11 13:36:47 -07:00
Simon Michael
b1f416dee7
dev: parseIncludedFile: doc cleanup
2025-07-11 13:01:54 -07:00
Simon Michael
b7c4dc3b53
fix:journal: cyclic include error messages now show the correct line
2025-07-11 13:00:51 -07:00
Simon Michael
801a7adaa4
imp:include: better errors, eg for missing argument; more debug output
2025-07-11 12:13:52 -07:00
Simon Michael
c8a5b8eb37
dev: includedirectivep: cleanup
2025-07-11 12:13:12 -07:00
Simon Michael
f5d3b7bd38
fix:journal: include directive error messages now show the correct line
...
They were showing the line after the include directive, confusingly.
2025-07-11 11:55:29 -07:00
Simon Michael
251af8529f
dev: Hledger.Utils.Parse: cleanups
2025-07-11 11:38:50 -07:00
Simon Michael
2815a1865f
dev: includedirectivep: cleanups, docs
2025-07-11 11:38:50 -07:00
Simon Michael
b23af9275d
imp: simplify bad account type error message
2025-07-09 12:00:13 -07:00
jneubrand
7482f1efc3
fix: use precompiled regexes to handle case insensitivity correctly
2025-07-03 14:25:50 -07:00
Simon Michael
fc93a4c644
fix:add: show green prompts properly instead of ANSI codes [ #2410 ]
2025-07-01 16:41:05 -07:00
savanto
230998136f
imp: areg: do not abbrev other accts in machine-readable output ( #1995 )
...
- Do not turn "other accounts" into a comma-delimited string when the
report is constructed, but pass `AccountName`s up the chain. This
requires modifying the `AccountTransactionsReportItem` type to contain
`[AccountName]` rather than `Text`.
- Perform the account name summarization
(`Hledger.Data.AccountName.accountSummarizedName`) closer to the
actual rendering of the report, so that different report formats can
choose summarization strategy.
- Continue to summarize as before for terminal/text output (ie.
human-readable). Do not summarize any more for machine-readable output
(csv/html/fods).
2025-06-28 13:38:58 -07:00
Stephen Morgan
8ab2fb6b77
feat: lib: Allow special string %account in auto-posting rules ( #1975 )
...
This allows using the special string `%account` in auto posting rules.
When run, this will be substituted with the account name of the matched
posting.
2025-06-24 10:12:57 -07:00
Simon Michael
714b346fdd
imp: fully support quarter syntax in smart dates and period expressions
2025-06-23 18:37:08 -07:00
Simon Michael
afd18a10bf
fix: show historical balances even if report period is empty [ #2403 ]
...
This adds a safer version of spanDefaultsFrom that won't create spans
that end before they start, and updates all reports to use it.
The only related change noticed so far is that close now gives an
error instead of a malformed entry, when there's no data to close.
[#2409 ]
2025-06-15 22:42:58 -10:00
Simon Michael
9c7e5b2467
dev:MultiBalanceReport: consistent debug output labels
2025-06-15 22:16:50 -10:00
Simon Michael
427a5de1f3
dev:MultiBalanceReport: use error' consistently for clean output
2025-06-15 22:06:34 -10:00
Simon Michael
4a5775da71
imp: commodities/payees/tags: used/declared flags, like accounts
...
And general cleanup of options and help across
the accounts, commodities, payees, tags commands.
2025-06-15 07:32:40 -10:00
Simon Michael
38aadddf7b
dev: Hledger.Query.matchesCommodity: check all query types, not just cur:
...
And default to False (unlike the other match functions. Ok ?)
2025-06-15 07:32:40 -10:00
Simon Michael
d3c86bafdf
;doc: finalise changelogs for 1.43.2 on 2025-06-13
2025-06-13 12:05:20 -10:00
Simon Michael
cc95eca1ce
;doc: update changelogs
2025-06-13 12:05:20 -10:00