;doc: draft changelogs from commit messages (Shake changelogs)

This commit is contained in:
Simon Michael 2023-12-01 06:57:52 -10:00
parent 938b89ecab
commit 0b4b4ed70c
5 changed files with 770 additions and 5 deletions

View File

@ -126,8 +126,177 @@ Finance
months of data from Open Collective. months of data from Open Collective.
# 1.31 2023-09-03 # e601adaee
- ;doc: changelogs (from TWIH)
- ;tools: bake lastweek: drop an unnecessary report
- ;doc: use ```cli not ```shell for command-line examples
- ;doc:REGRESSIONS: note real name exposure
- ;doc:REGRESSIONS: note one pending
- ;bin:bar: cleanup
- ;tools:bake lastweek: time percentage report
- ;tools: bake jargon - extract Hledger.hs haddock examples to a test journal
- ;tools: make haddock-watch etc.: new fast version, cleanups
- ;tools:bake dbgstrs
- ;tools:ghci :rmain
- ci: do haddock testing less often, in the mac binaries workflow
It costs 1m+, doesn't fail that often, and is not hard to fix even if
detected late.
- ci: really fix some redundant building of hledger-lib and hledger
- ci: fix some redundant building of hledger-lib and hledger
- ;ci: disable weekly scheduled builds
They also run in forks, which I don't want.
- ci: fix tests breakage
- ;tools:make:etags: include .test files
- ;dev: tests: ledger-compat tests cleanup
- ;doc: TESTS name/link
- ;tools:bake:lastweek: improvements
- ;bin:report1: cleanups
- ;web:sandstorm: bump app version, tweak title
- imp:web: cleanups; use --allow on Sandstorm (#834)
- imp:web: access control UX cleanups (fix #834)
Changes:
1. rename the sandstorm "manage" permission to "edit"
(old permission names: view, add, manage;
new permission names: view, add, edit).
Rationale: "edit" best describes this permission's current powers, to users and to operators.
If we ever added more manager-type features we'd want that to be a new permission,
not a rename of the existing one (which would change the powers of existing users).
2. rename the sandstorm roles for consistency with permissions
(old role names: viewer, editor, manager;
new role names: viewer, adder, editor)
Rationale: it's needed to avoid confusion.
3. add a new option: --allow=view|add|edit|sandstorm (default: add).
'sandstorm' sets permissions according to the X-Sandstorm-Permissions header.
Drop the --capabilities and --capabilities-header options.
Rationale: it's simpler and more intuitive.
4. replace "capability" with "permission" in ui/docs/code.
Rationale: consistent with the above, more familiar.
- ;bin:report1: cleanups
- ;bin: link hledger-report1 scripts
- ;bin: hledger-report1: a custom compound report in haskell and bash
- ;make: copy-exe[s]-*: fix help
vv# examples/shared-expenses.journal
- ;feat: Upgrade Sandstorm package with permissions (Jacob Weisz)
- ;dev:bake lastweek
- ;examples:csv: note where to find vanguard, fidelity CSV
- ;bin:justfile: rename forecast.journal, forecast-import refinement
- ;dev:ci: rename usual CI branch to "ci"
- ;dev:ci: clean up, rename main CI workflow
Back to ci.yml.
- ;doc:REGRESSIONS: update
- ;doc:REGRESSIONS: update
- ;doc:REGRESSIONS: update
- ;dev:stack: ghc 9.4 fix
- ;doc:LINKS: updates
- ;doc:REGRESSIONS: add 2034
- ;doc:REGRESSIONS: cleanup
- ;doc:REGRESSIONS: cleanup
- ;doc:REGRESSIONS: update
- ;dev:stack: stack9.8.yaml
- ;dev:stack: drop stack9.6.yaml
- dev:stack: bump default GHC to 9.6.3
- ;doc:REGRESSIONS: update
- ;doc:REGRESSIONS: update
- ;doc:REGRESSIONS: update
- ;doc:REGRESSIONS: cleanup, update
- ;doc:regressions: fix link
- ;doc: REGRESSIONS, moved from issue tracker; renamed FINANCE section
- ;doc:examples/bin: add gsheet-csv.hs
- ;doc:justfile: update import, time report scripts
- ;doc:examples: fidelity csv rules
- ci:test-linux: temporary workaround for haddock failure
- ci:test-linux: temporary workaround for bad commit message
- dev:cli: merge Hledger.Cli.Main with Hledger.Cli
- make: fix haddock[-watch|-open]
- dev:ci: cleanup
- dev:ci: update notes
- pkg:stack: build with nightly/ghc 9.6 by default
- ;doc:RELEASING: updates
- ;bin: tt,ft comment
- ;doc:RELEASING: updates
- ;pkg: bump version to 1.31.99
- ;doc: merge 1.31 changelogs
- ;doc: announce
- install: bump to latest versions
- install: replace hledger-stockquotes with pricehist
# 1.31 2023-09-03
Scripts/addons Scripts/addons
- ft, tt shell scripts for collecting financial and time reports - ft, tt shell scripts for collecting financial and time reports

View File

@ -13,8 +13,222 @@ Misc. changes
Internal/api/developer-ish changes in the hledger-lib (and hledger) packages. Internal/api/developer-ish changes in the hledger-lib (and hledger) packages.
For user-visible changes, see the hledger package changelog. For user-visible changes, see the hledger package changelog.
# 1.31 2023-09-03 # b6a46f637
- feat:timedot: tagged time logging with letters
- ;dev: lotcostp: cleanup
- imp:ledger-compat: accept lot costs with spaces after {, like Ledger
- imp:print:beancount: conversion improvements
- omit balance assertions
- replace more currency symbols, and match within symbols like C$
- do more account validation, and error if conversion is too hard
- backslash-escape double quotes and backslashes in payee and note
- imp:print:beancount: also convert cost amounts
- doc: update manuals
- ;cabal: update cabal files
- feat:print: add a basic beancount output format
This prints journal output more likely (but not guaranteed) to
be readable by Beancount.
All packages now require text 1.2.4.1 or greater.
- fix: non-print-like reports no longer add trailing decimal marks (fix #2115)
That 1.31 change was advertised as being for the print command only,
but it affected all commands. Now it affects only print and other
"print-like" commands (ie all commands that show whole journal entries
that we might want to re-parse).
Also three classes of hledger output, and how they modify the
commodity display styles' digit group marks and decimal marks
to suit different consumers, have been identified and documented
(under REPORTING CONCEPTS).
- fix:csv: fix tag: queries on CSV data (#2114)
- ;doc: Hledger.Read: cleanups (#2113)
- ;doc: Hledger.Read: cleanups (#2113)
- imp:reading: better timing of strict checks and .latest writing (#2113)
Strict checks now run only once, at end of the high level read operation,
and not for each individual file; this fixes some spurious --strict failures,
like account declarations not affecting a sibling file as they should.
And .latest file writing now happens as the last step, after passing
strict checks. This is mainly for the import command, but it also
means that hledger print --new now does not update .latest files
if strict checks are failing.
The file reading API has been improved and documented in more detail.
- imp: web: round amounts to display precision as before (precisiongeddon)
- doc:code: add Jargon section; describe styling/precision in detail (precisiongeddon)
- ;doc: move Hledger.hs haddock to a named chunk below code
- dev: Amount: cleanups
- imp: roi: limit large decimals to 8 digits by default (precisiongeddon)
With valuation now preserving more decimal digits, roi could show
excessively precise decimals if there was no known display precision
for the valuation commodity. Now in that situation it limits the
precision to a maximum of 8 digits.
- imp: more precision handling fixes, debug output, test updates (precisiongeddon)
This and the preceding commits were "work in progress" that got out of control.
There's more to do, but this one brings these precision-related improvements
(at least):
When "infinite decimals" arise, they are now generally shown with
8 decimal digits rather than 255.
print and prices no longer add trailing decimal zeros unnecessarily.
Some code has been refactored or given more debug output.
All tests have been updated to match the recent changes.
- imp: prices: clarify, fixes, improve semantics (precisiongeddon)
- The prices comand now more accurately lists the prices that hledger
uses when calculating value reports (similar to what you'd see with
eg `hledger bal -V --debug=2`).
- The prices command's --infer-reverse-prices flag was confusing since
we always infer and use reverse prices; it has been renamed to --show-reverse.
- --infer-market-prices and --show-reverse combine properly.
- --show-reverse now ignores all zero prices rather than giving an error.
- Reverse prices (which can be infinite decimals) are now displayed
with at most 8 decimal digits (rather than the internal precision of
255 digits).
- Filtering prices by cur: or amt: now works properly.
- Price amounts are styled, but all decimal digits are shown.
- imp: set display style, natural precision on valued amounts (fix #2105, precisiongeddon)
Cost/value conversion now applies the standard display style, and
sets the display precision equal to the internal decimal precision
(or 8 if the decimal appears to be infinite).
This means value reports and especially `print -V` now show amounts
with more accurate and standard style and precision.
New tests have been added describing and explaining various
style/precision behaviours in print cost/value reports.
- dev: clarify some amount operations
- lib: Hledger.Utils.Debug: lbl_ helper, cleanups, notes
- feat: import: interpolate regex matches in field templates (#2009) (Jonathan Dowland)
Replace occurrences of '\N' (where N is a positive number) in field
templates with the corresponding regular expression match group, if it
exists.
E.g. Warp the date to the first of the month for the second posting
if %date (....-..)-..
comment2 date:\1-01
E.g. Strip a prefix from an imported account name
if %account1 liabilities:jon:(.*)
account1 \1
Fixes #2009.
Signed-off-by: Jonathan Dowland <jon@dow.land>
- ;dev: add Utils.Regex.regexMatchTextGroups (Jonathan Dowland)
A matcher function which returns the list of match-groups, which may
be empty.
Signed-off-by: Jonathan Dowland <jon@dow.land>
- ;fix: import: minor typo (Jonathan Dowland)
- fix: auto postings: detect redundant costs properly (fix #2110)
- feat: cli: Add tsv output (#869) (Peter Sagerson)
All commands that suport csv output now also support tsv output. The
data is identical, but the fields are separated by tab characters and
there is no quoting or escaping. Tab, carriage return, and newline
characters in data are converted to spaces (this should rarely if ever
happen in practice).
- ;doc: haddock, comment fixes
- ;doc:print: cleanups (#2085)
- feat:print: add --round option for more control of precisions (#2085)
- ;doc:internals: Precision and rounding
- dev: refactor transactionCheckBalanced
- lib!: use styleAmounts in more places; add rounding strategies
- dev: journalApplyCommodityStyles -> journalStyleAmounts
- dev:print: refactor, add AmountStyle "rounding strategy"
Changes to enable more control of "rounding" behaviour
(ie, choosing display precisions for amounts).
This reverts 1.31's change of asprecision, making it a non-Maybe
again, and adds a new asrounding field providing more control over how
a target display precision is applied to existing amounts (two options
for now, more later). Functionality is in an interim state (reports do
no rounding).
- fix:timedot: parse unitful quantities more accurately (fix #2096)
A quantity with a unit like "15m" was being parsed internally as
0.249999999... rather than 0.25 (and since hledger 1.21, printed that
way also). Now we round such quantities to two places during parsing,
to get exact quarter-hour amounts.
- lib: add Show to Table render functions for debugging
- fix: balance-assigned amounts affect styles again (fix #2091)
- imp: lib: include adeclarationinfo, if present, in accounts JSON (S. Zeid)
Note that this does not add the declaration info if it is not already
present.
- feat: balance: Add summary-only flag (#1012) (Stephen Morgan)
Add a flag --summary-only for multi-column balance reports, which does
not display the main date columns for a report, but only displays the
summary columns (--row-total, --average). This is useful when there are
many columns (a weekly summary over many years) where you're only
interested in the average (or some other summary).
- Add support for negating a Matcher (bobobo1618)
https://github.com/simonmichael/hledger/issues/2054
- ;cabal: update cabal files
- ;doc: main module haddock cleanups
- ;doc: package description cleanups
- fix: failing balance assertions with cost show correct highlight #2083
- ;doc: update manuals
- ;cabal: update cabal files
- ;pkg: bump version to 1.31.99
- ;doc: merge 1.31 changelogs
# 1.31 2023-09-03
Breaking changes Breaking changes
- There is a new consolidated API for styling amounts, and a - There is a new consolidated API for styling amounts, and a

View File

@ -21,8 +21,46 @@ API
User-visible changes in hledger-ui. User-visible changes in hledger-ui.
See also the hledger changelog. See also the hledger changelog.
# 1.31 2023-09-03 # 0c85b48d2
- ;doc: use ```cli not ```shell for command-line examples
- doc: update manuals
- ;cabal: update cabal files
- feat:print: add a basic beancount output format
This prints journal output more likely (but not guaranteed) to
be readable by Beancount.
All packages now require text 1.2.4.1 or greater.
- imp: ui: round amounts to display precision as before (precisiongeddon)
- cabal: update cabal files
- pkg:ui: fix wasteful double-building of hledger-ui modules
- ;doc:areg,ui: note how separately-dated postings get combined
- ;cabal: update cabal files
- ;doc: main module haddock cleanups
- ;doc: package description cleanups
- lib!: export less from cli and web packages, and more from ui
- fix:ui: V key preserves startup valuation, if any (fix #2084)
Also: hledger-ui cost/value doc improvement and a useful cost/value test file.
- ;doc: update manuals
- ;cabal: update cabal files
- ;pkg: bump version to 1.31.99
- ;doc: merge 1.31 changelogs
# 1.31 2023-09-03
Improvements Improvements
- Allow megaparsec 9.5 - Allow megaparsec 9.5

View File

@ -21,8 +21,90 @@ API
User-visible changes in hledger-web. User-visible changes in hledger-web.
See also the hledger changelog. See also the hledger changelog.
# 1.31 2023-09-03 # 0c85b48d2
- ;doc: use ```cli not ```shell for command-line examples
- doc: update manuals
- ;cabal: update cabal files
- feat:print: add a basic beancount output format
This prints journal output more likely (but not guaranteed) to
be readable by Beancount.
All packages now require text 1.2.4.1 or greater.
- imp: web: round amounts to display precision as before (precisiongeddon)
- cabal: update cabal files
- pkg:web: clean up some apparently redundant declarations and deps
- dev:web: refactor permission checking
- ;cabal: update cabal files
- imp:web: cleanups; use --allow on Sandstorm (#834)
- imp:web: access control UX cleanups (fix #834)
Changes:
1. rename the sandstorm "manage" permission to "edit"
(old permission names: view, add, manage;
new permission names: view, add, edit).
Rationale: "edit" best describes this permission's current powers, to users and to operators.
If we ever added more manager-type features we'd want that to be a new permission,
not a rename of the existing one (which would change the powers of existing users).
2. rename the sandstorm roles for consistency with permissions
(old role names: viewer, editor, manager;
new role names: viewer, adder, editor)
Rationale: it's needed to avoid confusion.
3. add a new option: --allow=view|add|edit|sandstorm (default: add).
'sandstorm' sets permissions according to the X-Sandstorm-Permissions header.
Drop the --capabilities and --capabilities-header options.
Rationale: it's simpler and more intuitive.
4. replace "capability" with "permission" in ui/docs/code.
Rationale: consistent with the above, more familiar.
- fix:web: check options like --capabilities before starting the app
- fix:web:edit form: fix broken "File format help" link (fix #2103)
Now not broken, https rather than http, and pointing to the "Data
formats" section, which has links to each of the file formats
(in case editing a non-journal file).
- web: Use guessAppRootOr to enable relative root if desired (fix #2099) (Philipp Klocke)
This is useful when serving on 0.0.0.0, such that querying from any
other device with <IP>:<PORT> does not fallback to 0.0.0.0:PORT,
which would fail.
Tested: Manually
- imp: web: include adeclarationinfo in accounts JSON (S. Zeid)
- ;cabal: update cabal files
- ;doc: main module haddock cleanups
- ;doc: package description cleanups
- lib!: export less from cli and web packages, and more from ui
- ;doc: update manuals
- ;cabal: update cabal files
- ;pkg: bump version to 1.31.99
- ;doc: merge 1.31 changelogs
# 1.31 2023-09-03
Improvements Improvements
- Allow aeson 2.2, megaparsec 9.5 - Allow aeson 2.2, megaparsec 9.5

View File

@ -146,8 +146,270 @@ Docs
API API
# 1.31 2023-09-03 # e601adaee
- ;doc: changelogs (from TWIH)
- ;doc: timedot: example tweak
- ;doc: Amount formatting, parseability: improve example
- ;doc: Amount formatting, parseability: fix link
- ;doc: use ```cli not ```shell for command-line examples
- ;doc: Amount formatting, parseability: fix link
- ;doc: Amount formatting, parseability: examples, links
- feat:timedot: tagged time logging with letters
- ;doc:timedot: cleanups
- imp:print:beancount: conversion improvements
- omit balance assertions
- replace more currency symbols, and match within symbols like C$
- do more account validation, and error if conversion is too hard
- backslash-escape double quotes and backslashes in payee and note
- imp:print:beancount: also convert cost amounts
- doc: update manuals
- ;doc: update command help
- ;cabal: update cabal files
- feat:print: add a basic beancount output format
This prints journal output more likely (but not guaranteed) to
be readable by Beancount.
All packages now require text 1.2.4.1 or greater.
- fix: -o/--outputfile with a .json or .sql extension now selects those formats
- ;doc:commodity directive: edits
- ;doc:commodity directive: explain why decimal mark is required
- ;doc: amount formatting: correction, csv does not force . (#2115)
- ;doc: amount formatting: edits (#2115)
- ;doc: amount formatting: edits (#2115)
- ;doc: amount formatting: edits (#2115)
- fix: non-print-like reports no longer add trailing decimal marks (fix #2115)
That 1.31 change was advertised as being for the print command only,
but it affected all commands. Now it affects only print and other
"print-like" commands (ie all commands that show whole journal entries
that we might want to re-parse).
Also three classes of hledger output, and how they modify the
commodity display styles' digit group marks and decimal marks
to suit different consumers, have been identified and documented
(under REPORTING CONCEPTS).
- ;doc:csv:if table: clarify, explain why backslash won't work (#2107)
- fix:csv: fix tag: queries on CSV data (#2114)
- ;doc:journal: decimal marks, commodity directives: rewrites
- imp:import: support -s/--strict properly (fix #2113)
hledger import -s now runs strict checks on an in-memory copy of the
updated journal, before updating the journal file; if strict checks
fail, nothing is written to disk.
And hledger import now does not update any .latest files until it has
run without error (no failing strict checks, no failure while writing
the journal file). This makes it more idempotent, so you can run it
again after fixing problems.
- ;doc: regular expressions: add examples (hledger_site#224)
- ;doc: More valuation examples: drop obsolete explanation (precisiongeddon)
- imp: roi: limit large decimals to 8 digits by default (precisiongeddon)
With valuation now preserving more decimal digits, roi could show
excessively precise decimals if there was no known display precision
for the valuation commodity. Now in that situation it limits the
precision to a maximum of 8 digits.
- imp: more precision handling fixes, debug output, test updates (precisiongeddon)
This and the preceding commits were "work in progress" that got out of control.
There's more to do, but this one brings these precision-related improvements
(at least):
When "infinite decimals" arise, they are now generally shown with
8 decimal digits rather than 255.
print and prices no longer add trailing decimal zeros unnecessarily.
Some code has been refactored or given more debug output.
All tests have been updated to match the recent changes.
- imp: prices: clarify, fixes, improve semantics (precisiongeddon)
- The prices comand now more accurately lists the prices that hledger
uses when calculating value reports (similar to what you'd see with
eg `hledger bal -V --debug=2`).
- The prices command's --infer-reverse-prices flag was confusing since
we always infer and use reverse prices; it has been renamed to --show-reverse.
- --infer-market-prices and --show-reverse combine properly.
- --show-reverse now ignores all zero prices rather than giving an error.
- Reverse prices (which can be infinite decimals) are now displayed
with at most 8 decimal digits (rather than the internal precision of
255 digits).
- Filtering prices by cur: or amt: now works properly.
- Price amounts are styled, but all decimal digits are shown.
- imp: set display style, natural precision on valued amounts (fix #2105, precisiongeddon)
Cost/value conversion now applies the standard display style, and
sets the display precision equal to the internal decimal precision
(or 8 if the decimal appears to be infinite).
This means value reports and especially `print -V` now show amounts
with more accurate and standard style and precision.
New tests have been added describing and explaining various
style/precision behaviours in print cost/value reports.
- ;dev: valuation.test: cleanup
- ;doc: import: document Match Groups (Jonathan Dowland)
Add a description of Match Groups to the manual; Section "Matchers".
Include two examples.
Clarify a description of regular expression features with respect
to match groups.
Expand the description of field assignments to cover match group
interpolation, cross-referencing to Section "Matchers" for the full
description.
Signed-off-by: Jonathan Dowland <jon@dow.land>
- test: import: functional tests for match group interpolation (Jonathan Dowland)
Add functional tests for matching substrings in field matchers and
interpolating them into the corresponding field assignments. Check
the following properties and use-cases:
- Use-case 1: matching a portion of a date in a known format
(YYY-MM-DD) and writing a comment-command to warp a posting date.
Useful for credit cards.
- Use-case 2: match a portion of a CSV field and use it as an
account assignment. Useful for my byzantine setup with two
separate ledgers cross-importing to each other.
- Ensure bracketed portions of field matchers are captured.
- Ensure bracketed portions of record matchers are captured.
- Check match token numerical offset is relative to match group,
not the whole rules file.
- Check nested matches work.
- Ensure match group token expansion works with or without
surrounding text.
Signed-off-by: Jonathan Dowland <jon@dow.land>
- ;doc: Setting LEDGER_FILE: fix a quote (hledger_site#93)
- fix: auto postings: detect redundant costs properly (fix #2110)
- feat: cli: Add tsv output (#869) (Peter Sagerson)
All commands that suport csv output now also support tsv output. The
data is identical, but the fields are separated by tab characters and
there is no quoting or escaping. Tab, carriage return, and newline
characters in data are converted to spaces (this should rarely if ever
happen in practice).
- ;doc:tests:readme
- ;dev: tests: ledger-compat tests cleanup
- ;dev: tests: add outshine headings for more readability (in emacs)
- ;doc: TESTS name/link
- ;imp:Hledger.Cli.Script: don't export main, do export CompoundBalanceCommand
- imp:demo: improve error message when asciinema fails
- fix:demo: avoid breaking asciinema 2.3.0 (fix #2094)
We were adding a trailing newline, which causes asciinema 2.3.0 to
show a JSON decode error.
- ;doc:cli:Data formats: link to each format's doc
- imp:cli:Hledger.Cli.Version: export packagemajorversion
- ;doc:areg,ui: note how separately-dated postings get combined
- ;doc:print: cleanups (#2085)
- ;doc:CHANGES: document print and zero-rendering changes (#2085)
- feat:print: add --round option for more control of precisions (#2085)
- lib!: use styleAmounts in more places; add rounding strategies
- dev:print: refactor, add AmountStyle "rounding strategy"
Changes to enable more control of "rounding" behaviour
(ie, choosing display precisions for amounts).
This reverts 1.31's change of asprecision, making it a non-Maybe
again, and adds a new asrounding field providing more control over how
a target display precision is applied to existing amounts (two options
for now, more later). Functionality is in an interim state (reports do
no rounding).
- fix:timedot: parse unitful quantities more accurately (fix #2096)
A quantity with a unit like "15m" was being parsed internally as
0.249999999... rather than 0.25 (and since hledger 1.21, printed that
way also). Now we round such quantities to two places during parsing,
to get exact quarter-hour amounts.
- ;doc:journal: rewrite Commodity display style
- fix: balance-assigned amounts affect styles again (fix #2091)
- ;doc:troubleshooting: nix locale config (#2089)
- ;doc: csv: negative matchers (#2088)
- feat: balance: Add summary-only flag (#1012) (Stephen Morgan)
Add a flag --summary-only for multi-column balance reports, which does
not display the main date columns for a report, but only displays the
summary columns (--row-total, --average). This is useful when there are
many columns (a weekly summary over many years) where you're only
interested in the average (or some other summary).
- ;cabal: update cabal files
- ;doc: main module haddock cleanups
- lib!: export less from cli and web packages, and more from ui
- dev:cli: merge Hledger.Cli.Main with Hledger.Cli
- fix: failing balance assertions with cost show correct highlight #2083
- ;doc:journal: clarify valuation date, note bug #2084
- ;doc: update manuals
- ;doc: update command help
- ;cabal: update cabal files
- ;pkg: bump version to 1.31.99
- ;doc: merge 1.31 changelogs
# 1.31 2023-09-03
Features Features
- Multi-pivot: the --pivot option now accepts multiple arguments, - Multi-pivot: the --pivot option now accepts multiple arguments,