From a77c8e0e92bb7034cada7a0a8777a057aee618ad Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 1 Dec 2023 19:22:06 -1000 Subject: [PATCH] ;doc: update github release template --- doc/github-release.md | 457 ++++++++++++++++++++++++++---------------- 1 file changed, 289 insertions(+), 168 deletions(-) diff --git a/doc/github-release.md b/doc/github-release.md index 61a637b95..51267c757 100644 --- a/doc/github-release.md +++ b/doc/github-release.md @@ -1,212 +1,333 @@
-## Release notes (https://hledger.org/release-notes.html#hledger-1-30) +## Release notes (https://hledger.org/release-notes.html#hledger-1-32) -**Boolean queries, easier CSV file management, built-in demos, hledger-ui cash accounts screen, fixes.** +**More precision control, beancount output, TSV output, --summary-only, +strict/idempotent import, CSV rule enhancements, timedot letters, fixes.** -### hledger 1.30 +### hledger 1.32 Breaking changes -- The CSV reader now properly skips all empty lines, as specified by docs. - Previously, inner empty lines were not being skipped automatically. - You might need to adjust the `skip` count in some CSV rules files. - (#2024) +- Display styles and display precision are now managed more carefully + during calculations and output, fixing a number of issues (#2111, + "Precisiongeddon"). In brief: -- Timedot format now generates a single multi-posting transaction per - date line, and supports comments and tags on all lines. - (#1754) - -- Timeclock format now supports comments and tags. - Descriptions can no longer contain semicolons. - (#1220) - -Features - -- CSV rules files can now be read directly, as in - `hledger -f foo.csv.rules CMD`. By default this will read data - from foo.csv in the same directory. + - Cost and value reports, such as `print -V`, now (1) consistently + apply commodity display styles, and (2) do not add or discard + decimal digits unnecessarily. (#2105) -- CSV rules files can use a new `source FILE` rule to specify the data file, - with some convenience features: + - When "infinite decimals" arise during calculations (eg in value + reports, or in `prices` or `roi` output), these are now shown + limited to 8 decimal digits rather than 255. + + - Non-print-like reports no longer add trailing decimal marks to + disambiguate digit group marks (this was an unintended regression + in 1.31). (#2115) + + - We now document number formatting adjustments made in certain + reports and output formats (hledger manual > REPORTING CONCEPTS > + Amount formatting, parseability). - - If the data file does not exist, it is treated as empty, not an - error. - - - If FILE is a relative path, it is relative to the rules file's - directory. If it is just a file name with no path, it is relative - to `~/Downloads/`. - - - If FILE is a glob pattern, the most recently modified matched file - is used. - - This helps remove some of the busywork of managing CSV downloads. - Most of your financial institutions's default CSV filenames are - different and can be recognised by a glob pattern. So you can put a - rule like `source Checking1*.csv` in foo-checking.csv.rules, - periodically download CSV from Foo's website accepting your browser's - defaults, and then run `hledger import checking.csv.rules` to import - any new transactions. The next time, if you have done no cleanup, your - browser will probably save it as something like Checking1-2.csv, and - hledger will still see that because of the * wild card. You can choose - whether to delete CSVs after import, or keep them for a while as - temporary backups, or archive them somewhere. - (Experimental) - -- The balance command has a new --count report type - which reports posting counts instead of amounts. - -- Full boolean queries, allowing arbitrary use of AND, OR, NOT - (case insensitive) and parentheses for grouping, are now supported. - For backward compatibility, these require an `expr:` prefix. - Existing queries work as before, and you can mix and match the - old and new styles if you like. - (Chris Lemaire) - -- demo: This new command plays brief asciinema screencasts explaining - various features and use cases. We will add more of these over time. - (Experimental) - -Improvements - -- Add-on commands can now have `.js`, `.lua`, or `.php` file extensions. - -- Generated and modified transactions and postings have the same hidden - tags (beginning with underscore) as before, but no longer have visible - tags added by default. Use `--verbose-tags` if you want them added. - -- We now try harder to ensure `less` (and its `more` mode) show our - ANSI formatting properly in help output. - If you use some other $PAGER, you may have to configure it yourself - to show ANSI (or disable ANSI entirely, eg by setting NO_COLOR=1). - This is now documented in hledger manual > Paging. - (#2015) - -- The print command's `--match` mode has been refined. - Previously, similarity completely outweighed recency, so a - slightly-more-similar transaction would always be selected no matter - how old it was. Now similarity and recency are more balanced, - and it should produce the desired transaction more often. - There is also new debug output (at debug level 1) for troubleshooting. - -- Miscellaneous commands list updates. - Help has been added for all published add-on commands (like hledger-lots). - -- The help command's documentation now mentions an issue caused by - a too-old `info` program, as on mac. - (#1770) - -Fixes - -- Unbalanced virtual postings with no amount always infer a zero amount. - This is fixing and clarifying the status quo; they always did this, - but print always showed them with no amount, even with -x, and - the behaviour was undocumented. - -- On windows systems with multiple drive letters, the commands list - could fail to show all installed add-ons. - (#2040) - -- Balancing a transaction with a balance assignment now properly respects costs. - (#2039) - -- The commands list no longer lists non-installed addons. - (#2034) - -- Since hledger 1.25, "every Nth day of month" period rules with N > 28 could - be calculated wrongly by a couple of days when given certain forecast start dates. - Eg `~ every 31st day of month` with `--forecast='2023-03-30..'`. - This is now fixed. - (#2032) - -- Postings are now processed in correct date order when inferring balance assignments. - (#2025) - -- Posting comment lines no longer disrupt the underline position in error messages. - (#1927) - -- Debug output is now formatted to fit the terminal width. - -Docs - -- Miscellaneous manual cleanups. - -- Rewrite introductory sections, - Date adjustment, - Directives, - Forecasting, - etc. - -- Add Paging section. - -- Remove archaic mentions of `setenv`. - -API - -- Renamed: Hledger.Cli.Commands: findCommand -> findBuiltinCommand - -### hledger-ui 1.30 Features -- A "Cash accounts" screen has been added, showing - accounts of the `Cash` type. +- Timedot format supports a new letters syntax for easier tagged time logging. + (#2116) + +- `print` has a new `beancount` output format for exporting to Beancount. + This prints journal output more likely (though not guaranteed) to + be readable by Beancount. + +- In CSV rules, matchers using regular expressions can now interpolate + their matched texts into the values they assign to fields (field + assignment values can reference match groups). + (#2009) (Jonathan Dowland) + +- In CSV rules, matchers can be negated by prepending `!`. + (#2088) (bobobo1618) + +- Multi-column balance reports (from `bal`, `bs`, `is` etc.) can use + the new `--summary-only` flag (`--summary` also works) to display + just the Total and Average columns (if enabled by `--row-total` and + `-A/--average`) and hide the rest. + (#1012) (Stephen Morgan) + +- All commands that suport csv output now also support `tsv` + (tab-separated values) 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). + (#869) (Peter Sagerson). + Improvements -- The top-level menu screen is now the default screen. - Power users can use the `--cash`/`--bs`/`--is`/`--all` - flags to start up in another screen. +- Journal format no longer fails to parse Ledger-style lot costs with spaces + after the `{`, improving Ledger compatibility. -- "All accounts" screen has been moved to the bottom of the list. +- `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. -- Screens' help footers have been improved. +- `print` now shows zeros with a commodity symbol and decimal digits + when possible, preserving more information. -Docs +- `print` has a new option for controlling amount rounding (#2085): + + - `--round=none` - show amounts with original precisions (default; + like 1.31; avoids implying less or more precision than was + recorded) -- The transaction screen's inability to update is now noted. + - `--round=soft` - add/remove decimal zeros in non-cost amounts + (like 1.30 but also affects balance assertion amounts) -- Miscellaneous manual cleanups. + - `--round=hard` - round non-cost amounts (can hide significant digits) -### hledger-web 1.30 + - `--round=all` - round all amounts and costs + + For the record: + `print` shows four kinds of amount: posting amounts, + balance assertion amounts, and costs for each of those. + Past hledger versions styled and rounded these inconsistently. + Since 1.31 they are all styled, and since 1.32 they are rounded as follows: + + | hledger-1.32 print | amt | cost | bal | balcost | + |--------------------|------|------|------|---------| + | (default) | none | none | none | none | + | --round=soft | soft | none | soft | none | + | --round=hard | hard | none | hard | none | + | --round=all | hard | hard | hard | hard | + +- The `prices` command has had a number of fixes and improvements (#2111): + + - It now more accurately lists the prices that hledger would use + when calculating value reports (similar to what you'd see with + `hledger bal -V --debug=2`). + + - The --infer-reverse-prices flag was confusing, since we always + infer and use reverse prices; it has been renamed to `--show-reverse`. + + - `--show-reverse` and `--infer-market-prices` flags now combine properly. + + - `--show-reverse` now ignores zero prices rather than giving an error. + + - Price amounts are now shown styled. + + - Price amounts are now shown with all their decimal digits; or with + 8 decimal digits if they appear to be infinite decimals (which can + arise with reverse prices). + + - Filtering prices with `cur:` or `amt:` now works properly. + Fixes -- A command line depth limit now works properly. - (#1763) +- `print` now styles balance assertion costs consistently, like other + amounts. + +- `import` now works with `-s/--strict`. + And more generally, when reading multiple input files, eg with + multiple `-f` options, strict checks are done only for the overall + combined journal (not for each individual file). + (#2113) + +- `tag:` queries now work when reading CSV files. (#2114) + +- Using a `.json` or `.sql` file extension with `-o`/`--outputfile` + now properly selects those output formats. + +- Auto postings no longer break redundant equity/cost detection and + transaction balancing. (#2110) + +- Amounts set by balance assignment now affect commodity styles again. + (#2091, a regression in 1.30) + +- Timedot quantities with units are parsed more accurately. + Eg a quantity like "15m" was evaluated as 0.249999999 not 0.25, + and since hledger 1.21, it was printed that way also. + Now we round such quantities to two places during parsing to get + exact quarter-hour amounts. (#2096) + +- The `demo` command no longer triggers a JSON decode error in asciinema + 2.3.0. It now also shows a better error message if asciinema fails + (#2094). + +- Failing balance assertions with a cost now show correct markers in + the error message. (#2083) + Docs -- Miscellaneous manual cleanups. +- New: + + - Amount formatting, parseability + - Started new code docs for developers, based in the Hledger module's haddock -### project changes 1.30 +- Updated: + + - aregister + - commodity directive + - Commodity display style + - if table + - Decimal marks, digit group marks + - Regular expressions + - Timedot + + +### hledger-ui 1.32 + +Fixes + +- The V key now preserves the valuation mode specified at the command + line, if any. (#2084) + +- The hledger-ui package no longer wastefully builds its modules + twice. + + +### hledger-web 1.32 + +Features + +- The hledger-web app on the Sandstorm cloud platform has been updated to + a recent version (Jacob Weisz, #2102), and now uses Sandstorm's access + control. (Jakub Zárybnický, #821) + +Improvements + +- The --capabilities and --capabilities-header options have been replaced + with an easier `--allow=view|add|edit|sandstorm` option. + `add` is the default access level, while `sandstorm` is for use on Sandstorm. + UI and docs now speak of "permissions" rather than "capabilities". + (#834) + +- The Sandstorm app's permissions and roles have been renamed for clarity. (#834) + +- Permissions are now checked earlier, before the web app is started, + producing clearer command line errors when appropriate. + +- Account's `adeclarationinfo` field is now included in JSON output. (#2097) (S. Zeid) + +Fixes + +- The app can now serve on address 0.0.0.0 (exposing it on all interfaces), + which previously didn't work. + (#2099) (Philipp Klocke) + +- The broken "File format help" link in the edit form has been fixed. (#2103) + + +### project changes 1.32 Scripts/addons -- hledger-bar: new script for making simple bar charts in the terminal +- hledger-install.sh: replaced hledger-stockquotes with pricehist + +- added gsheet-csv.hs: fetch a google sheet as CSV + +- added hledger-report1: an example custom compound report, with haskell and bash versions + +- justfile: updated import, time report scripts -- hledger-install: also list cabal, stack, pip tool versions Examples -- examples/csv: added a more up-to-date CSV makefile +- New: -- examples/i18: Added sample top level account and type declarations in several languages + - Fidelity CSV rules + +- Updated: + + - roi-unrealised.ledger (Charlie Ambrose) Docs -- A shorter, more example-heavy home page on the website. +- New: -- Simplified website and FAQ structure. + - Started a weekly This Week In Hledger news post, inspired by Matrix. + - There's now a News page, for This Week In Hledger etc. + - hledgermatic, an up-to-date, simple journal-first workflow + - How to record journal entries: added + - Reporting version control stats: added + - Moved regression bounty info from the issue tracker to Developer docs > REGRESSIONS. -### credits 1.30 +- Updated: + + - Checking for errors + - Common workflows + - Ledger + - Simon's old setup + - Videos + - All docs now use the `cli` class instead of `shell` for command-line examples, + avoiding inaccurate highlighting. + + +Infrastructure + +- hledger.org website: + + - Fixed the webhook that was not updating the site on git push. + + - Fixed a problem with cloudflare authentication that was preventing + automatic TLS certificate renewal on hledger.org. + + - Updated and committed hledger.org's caddy config and short urls (redirects) + + - Enabled https for code.hledger.org and site.hledger.org short urls. + + - Updated the stars.hledger.org redirect + (we have reached the top 30 github-starred Haskell projects 🌟 🎉). + + - Set up a self-hosted Sandstorm server, and a public hledger-web + instance (sandbox.hledger.org) in it that is fully writable (until + spammers find it). Use it as a pastebin for examples, eg. + +- Github CI (continuous integration) workflows have been optimised somewhat: + + - Scheduled weekly builds have been disabled, as they were propagating + to forks and running wastefully there in some cases. + + - Some repeated rebuilding of the hledger-lib and hledger packages + that seems unnecessary has been stopped. + + - hledger-ui no longer builds its modules twice. + + - Haddock testing now done only at release time. + + - renamed main CI workflow and branch to "ci" + +- Tools: + + - .ghci: added an :rmain alias, which is like :main but reloads first - + saves typing, and is useful eg when changing --debug level. + + - make haddock-watch is now fast + + +Finance + +- Updated project finance scripts, regenerated the journal with consistent precisions. + +- Updated reports with the last few months of data from Open Collective. + + +### credits 1.32 Simon Michael, -Chris Lemaire, -Yehoshua Pesach Wallach. +Jonathan Dowland, +S. Zeid, +Charlie Ambrose, +Jacob Weisz, +Peter Sagerson, +Philipp Klocke, +Stephen Morgan, +bobobo1618. +
@@ -214,8 +335,8 @@ Yehoshua Pesach Wallach. At , binary packages should be available for this release within a few days (look for green badges). -Or, you can build from source as described there, after cloning at tag `1.30`: -`git clone https://github.com/simonmichael/hledger --depth 1 -b 1.30` +Or, you can build from source as described there, after cloning at tag `1.32`: +`git clone https://github.com/simonmichael/hledger --depth 1 -b 1.32` Or, if under "Assets" below there are release binaries suitable for your OS and hardware, you can use those.