;doc: draft changelogs

[ci skip]
This commit is contained in:
Simon Michael 2020-03-01 16:44:28 -08:00
parent 000434083a
commit 04fb132496
6 changed files with 220 additions and 82 deletions

View File

@ -1,39 +1,33 @@
General/project-related changes in the hledger project. General/project-related changes in the hledger project.
For package-specific changes, see the package changelogs. For package-specific changes, see the package changelogs.
- documentation updates # 00043408
- streamlined hledger.org sidebar & manuals structure - hledger-install: re-enable installation of hledger-iadd & hledger-interest.
- hledger manual: new Common Tasks section in
- a new invoicing how-to: https://hledger.org/invoicing.html - hledger-install: bump minimum stack version to 1.9.1
1.7.1 fails with deps using newer cabal file syntax I believe.
# 04ea95cb - hledger-install: always do stack update, to help ensure we get the latest packages.
https://github.com/commercialhaskell/stack/issues/5112
- Fix dead pointer in contributing (Aleksandar Dimitrov) - examples: Add a basic example of rule parsing for the output of csb2format. (Evilham)
Fix link in contributing
- stack: ghc8.10: update extra-deps
- Fix typos (Brian Wignall)
- Add a basic example of rule parsing for the output of csb2format. (Evilham)
csb2format deals with the CSB43/AEB43 format, which all banks operating in csb2format deals with the CSB43/AEB43 format, which all banks operating in
Spain must support. Spain must support.
Having these example rules enables easens bootstraping for users with a Having these example rules enables easens bootstraping for users with a
Spanish bank account. Spanish bank account.
- install: re-enable hledger-iadd & hledger-interest - doc: simpler, clearer structure in the manuals and hledger.org sidebar
hledger-iadd has been revised on hackage, and hledger-interest has no upper bound.
- install: always do stack update, to help ensure we get the latest - doc: a new [Quick Start](https://hledger.org/start.html) page
https://github.com/commercialhaskell/stack/issues/5112
- install: update hledger-install for 1.16.1, disable addons for now - doc: a new [Common Tasks](https://hledger.org/hledger.html#common-tasks) section in the hledger manual
- lib, cli, web: bump version to 1.16.1 - doc: a new invoicing how-to: https://hledger.org/invoicing.html
- Fix build badges for Travis and AppVeyor (Rui Chen) - doc: Fix dead pointer in contributing (Aleksandar Dimitrov)
- doc: Fix build badges for Travis and AppVeyor (Rui Chen)
# 1.16 2019-12-01 # 1.16 2019-12-01

View File

@ -1,32 +1,54 @@
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.
# 445e8aa3 # 752e8ed4
- Change Date output to yyyy-mm-dd (Brian Wignall) - Reader-finding utilities have moved from Hledger.Read to
Hledger.Read.JournalReader so the include directive can use them.
- Reader changes:
- rExperimental flag removed
- old rParser renamed to rReadFn
- new rParser field provides the actual parser.
This seems to require making Reader a higher-kinded type, unfortunately.
- Hledger.Tabular.AsciiWide now renders smoother outer borders in
pretty (unicode) mode.
Also, a fix for table edges always using single-width intersections
and support for double horizontal lines with single vertical lines. (Eric Mertens)
- Hledger.Utils.Parse: restofline can go to eof also
- Hledger.Read cleanup
- Hledger.Read.CsvReader cleanup
Exports added: CsvRecord, CsvValue, csvFileFor.
Exports removed: expandIncludes, parseAndValidateCsvRules, transactionFromCsvRecord
- more cleanup of amount canonicalisation helpers (#1187)
Stop exporting journalAmounts, overJournalAmounts, traverseJournalAmounts.
Rename journalAmounts helper to journalStyleInfluencingAmounts.
- export mapMixedAmount
- Don't store leaf name in PeriodReport. (Stephen Morgan) - Don't store leaf name in PeriodReport. (Stephen Morgan)
Calculate at the point of consumption instead. Calculate at the point of consumption instead.
- lib: Generalise PeriodicReport to be polymorphic in the account labels. (Stephen Morgan) - Generalise PeriodicReport to be polymorphic in the account labels. (Stephen Morgan)
- lib: Use records instead of tuples in PeriodicReport. (Stephen Morgan) - Use records instead of tuples in PeriodicReport. (Stephen Morgan)
- lib: Use PeriodicReport in place of MultiBalanceReport. (Stephen Morgan) - Use PeriodicReport in place of MultiBalanceReport. (Stephen Morgan)
- Use nubSort instead of nub . sort. (Stephen Morgan)
- Calculate MultiReportBalance columns more efficiently. (Stephen Morgan) - Calculate MultiReportBalance columns more efficiently. (Stephen Morgan)
Only calculate posting date once for each posting, and calculate their Only calculate posting date once for each posting, and calculate their
columns instead of checking each DateSpan separately. columns instead of checking each DateSpan separately.
- ToJSON instances for all (?) remaining data types, up to Ledger - Moved JSON instances from hledger-web to hledger-lib (Hledger.Data.Json),
and added ToJSON instances for all (?) remaining data types, up to Ledger.
- move JSON instances from hledger-web to hledger-lib
- lib: drop "assertion" alias for nullassertion
Perhaps we'll stick with the null* convention. Fixes a warning in Transaction.hs.
- Dropped nullassertion's "assertion" alias, fixing a warning.
Perhaps we'll stick with the null* naming convention.
# 1.16.2 2020-01-14 # 1.16.2 2020-01-14

View File

@ -48,14 +48,12 @@ instance ToJSON Status
instance ToJSON GenericSourcePos instance ToJSON GenericSourcePos
-- https://github.com/simonmichael/hledger/issues/1195 -- https://github.com/simonmichael/hledger/issues/1195
-- The default JSON output for Decimal is not very practical for JSON consumers.
-- With repeating decimals, which can occur with implicit transaction prices, -- The default JSON output for Decimal can contain 255-digit integers
-- decimalMantissa will use Decimal's maximum allowance of 255 digits. -- (for repeating decimals caused by implicit transaction prices).
-- (And secondly, it sometimes uses scientific notation, and that sometimes
-- looks wrong, eg e254 instead of e-1 ?)
-- JSON output is intended to be consumed by diverse apps and -- JSON output is intended to be consumed by diverse apps and
-- programming languages, which can't necessarily handle numbers with -- programming languages, which can't handle numbers like that.
-- more than 15 or so significant digits. Eg, from #1195: -- From #1195:
-- --
-- > - JavaScript uses 64-bit IEEE754 numbers which can only accurately -- > - JavaScript uses 64-bit IEEE754 numbers which can only accurately
-- > represent integers up to 9007199254740991(i.e. a maximum of 15 digits). -- > represent integers up to 9007199254740991(i.e. a maximum of 15 digits).
@ -65,14 +63,21 @@ instance ToJSON GenericSourcePos
-- > - C and C++ number limits depend on platformmost platforms should -- > - C and C++ number limits depend on platformmost platforms should
-- > be able to represent unsigned integers up to 64bits, i.e. 19digits. -- > be able to represent unsigned integers up to 64bits, i.e. 19digits.
-- --
-- It's not yet clear what is a good compromise. -- What is the best compromise for both accuracy and practicality ?
-- For now, we make Decimals look like floating point numbers with -- For now, we provide both the maximum precision representation
-- up to 10 decimal places (and an unbounded number of integer digits). -- (decimalPlaces & decimalMantissa), and a floating point representation
-- This still allows unparseable numbers to be generated in theory, -- with up to 10 decimal places (and an unbounded number of integer digits).
-- but hopefully this won't happen in practice. -- We hope the mere presence of the large number in JSON won't break things,
instance ToJSON Decimal -- and that the overall number of significant digits in the floating point
where -- remains manageable in practice. (I'm not sure how to limit the number
toJSON d = Number $ fromRational $ toRational $ roundTo 10 d -- of significant digits in a Decimal right now.)
instance ToJSON Decimal where
toJSON d = object
["decimalPlaces" .= toJSON decimalPlaces
,"decimalMantissa" .= toJSON decimalMantissa
,"floatingPoint" .= toJSON (fromRational $ toRational d' :: Double)
]
where d'@Decimal{..} = roundTo 10 d
instance ToJSON Amount instance ToJSON Amount
instance ToJSON AmountStyle instance ToJSON AmountStyle

View File

@ -1,9 +1,19 @@
User-visible changes in hledger-ui. User-visible changes in hledger-ui.
See also the hledger changelog. See also the hledger changelog.
# 445e8aa3 # 696ec499
- don't enable --auto by default
- don't enable --forecast by default; drop the --future flag (#1193)
Previously, periodic transactions occurring today were always shown,
in both "present" and "future" modes.
Now, generation of periodic transactions and display of future
transactions (all kinds) are combined as "forecast mode", which can
be enabled with --forecast and/or the F key. The --future flag is
now a hidden alias for --forecast, and deprecated.
# 1.16.2 2020-01-14 # 1.16.2 2020-01-14

View File

@ -1,28 +1,38 @@
User-visible changes in hledger-web. User-visible changes in hledger-web.
See also the hledger changelog. See also the hledger changelog.
# 445e8aa3 # 4c321cee
- web: Add option --socket to use UNIX socket file (Carl Richard Theodor Schneider) - Fonts have been improved on certain platforms. (David Zhang)
This commit adds the --socket option to use hledger-web over an AF_UNIX socket
file.
It allows running multiple instances of hledger-web on the same system without
having to manually choose a port for each instance, which is helpful for running
individual instances for multiple users. In this scenario, the socket path is
predictable, as it can be derived from the username.
It also introduces the following dependencies: - IPv6 is supported (Amarandus) (#1145)
- network - The --host option can now take a local hostname (Amarandus) (#1145)
- Used to create the unix domain socket
- unix-compat
- Used to identify if the socket file is still a socket, to reduce the risk
of deleting a file when cleaning up the socket
- Improve font display on different OS (David Zhang) - New --socket option to run hledger-web over an AF_UNIX socket file. (Carl Richard Theodor Schneider)
This allows running multiple instances of hledger-web on the same
system without having to manually choose a port for each instance,
which is helpful for running individual instances for multiple
users. In this scenario, the socket path is predictable, as it can
be derived from the username.
- move JSON instances from hledger-web to hledger-lib - The edit and upload forms now normalise line endings, avoiding parse
errors (#1194). Summary of current behaviour:
- hledger add and import commands will append with (at least some)
unix line endings, possibly causing the file to have mixed line
endings
- hledger-web edit and upload forms will write the file with
the current system's native line endings, ie changing all
line endings if the file previously used foreign line endings.
- Numbers in JSON output now provide a floating point Number
representation as well as our native Decimal object representation,
since the later can sometimes contain 255-digit integers. The
floating point numbers can have up to 10 decimal digits (and an
unbounded number of integer digits.)
Experimental, suggestions needed. (#1195)
# 1.16.2 2020-01-14 # 1.16.2 2020-01-14

View File

@ -1,25 +1,49 @@
User-visible changes in the hledger command line tool and library. User-visible changes in the hledger command line tool and library.
# 445e8aa3 # 2c8a6e98
- Fix timeclock format parsing (Jakob Schöttl) ## General
Fix presumably copy-paste errors
timeclock format has only timeclock lines or empty/comment lines - hledger's default date format is now YYYY-MM-DD (ISO-8601 dates).
(Brian Wignall, Jakob Schöttl, Simon Michael)
Update test format to v3, add new tests - Drop the file format auto-detection feature.
Throw error on unexpected clock codes in timeclock format For a long time hledger has auto-detected the file format when it's
not known, eg when reading from a file with unusual extension (like
.dat or .txt), or from standard input (-f-), or when using the
include directive (which currently ignores file extensions). This
was done by trying all readers until one succeeded. This worked
well in practice. But recent changes to timedot format have made
this kind of auto-detection unreliable. (timedot and journal formats
overlap).
Fix missing case in pattern matching For predictability and to minimise confusion, hledger will no longer
guess; when there's no file extension or reader prefix available, it
always assumes journal format.
- Parse CSV rule keywords case insensitively (Aleksandar Dimitrov) To specify one of the other formats, you must use its standard file
extension (`.timeclock`, `.timedot`, `.csv`, `.ssv`, `.tsv`), or a
reader prefix (`-f csv:foo.txt`, `-f timedot:-`).
- Correct finding latest date in queryEndDate Or queries and simplify Experimental, feedback welcome.
- Fix extra $ symbol (Mateus Furquim)
- --output-format now rejects invalid formats
- Numbers in JSON output now provide a floating point Number
representation as well as our native Decimal object representation,
since the later can sometimes contain 255-digit integers. The
floating point numbers can have up to 10 decimal digits (and an
unbounded number of integer digits.)
Experimental, suggestions needed. (#1195)
- Fix finding latest date in queryEndDate Or queries and simplify
date comparison code. (Stephen Morgan) date comparison code. (Stephen Morgan)
- Fix issue 457 (Jacek Generowicz) - Fix issue 457. (Jacek Generowicz)
Issue #457 pointed out that commands such as Issue #457 pointed out that commands such as
hledger ui 'amt:>200' hledger ui 'amt:>200'
@ -29,23 +53,96 @@ User-visible changes in the hledger command line tool and library.
`amt:>20` and the `>` character was interpreted as a shell redirection `amt:>20` and the `>` character was interpreted as a shell redirection
operator, rather than as part of the argument. operator, rather than as part of the argument.
The machinery for quoting or escaping arguements which cointain The machinery for quoting or escaping arguements which contain
characters which require quoting or escaping (thus far whitespace and characters which require quoting or escaping (thus far whitespace and
quotes) already existed. This solution simply adds shell stdio quotes) already existed. This solution simply adds shell stdio
redirection characters to this set. redirection characters to this set.
Fixes #457 ## commands
- Change Date output to yyyy-mm-dd (Brian Wignall) - add: you can use `<` to undo and redo previous inputs (Gaith Hallak)
- Drop the --separator command line argument, add the `separator` CSV rule instead (Aleksandar Dimitrov) - bs, cf, is, bal, print, reg: support json output
- Remember the previously entered values when stepping forward (Gaith Hallak) - bs, cf, is: fix excess subreport columns in csv output
- Show the previous input in the input area after the back command (Gaith Hallak) - bs, cf, is, bal: fix an issue with border intersections in
--pretty-tables output. (Eric Mertens)
- Change the '<' command to go back one step (Gaith Hallak) - close: fix a rounding bug that could generate unbalanced transactions. (#1164)
- close: hide cost prices by default, show them with --show-costs.
close no longer preserves costs (transaction prices) unless you ask
it to, since that can generate huge entries when there are many
foreign currency/investment transactions. (#1165)
- close: equity amounts are omitted by default, for simpler entries;
-x/--explicit shows them (usually causing more postings). (#1165)
- close: --interleaved generates equity postings alongside each closed
account, making troubleshooting easier.
- close: "equity:opening/closing balances" is now the default
closing and opening account.
- close: --close-desc/--open-desc customise the closing/opening
transaction descriptions. (#1165)
- close: some --open*/--close* flags have been simplified for memorability:
--closing -> --close
--opening -> --open
--close-to -> --close-acct
--open-from -> --open-acct
The old flags are accepted as hidden aliases, and deprecated. (#1165)
- print, register: a new valuation type, --value=then, shows the
market value at each posting's date.
- print: -V/-X/--value now imply -x/--explicit, as -B/--cost does.
This avoids a bug where print -V of a transaction with an implicit
commodity conversion would convert only some of its postings to value.
## journal format
- The include directive no longer tries all readers. It now picks
just one, based on the included file's extension, defaulting to
journal. (It doesn't yet handle a reader prefix.)
- The default commodity (D) directive now limits display precision too. (#1187)
D directives are now fully equivalent to commodity directives for
setting a commodity's display style. (Previously it couldn't limit
the number of decimal places.) When both kinds of directive exist,
commodity directives take precedence. When there are multiple D
directives in the journal, only the last one affects display style.
## csv format
- Conditional blocks can now match single fields. \o/
- The experimental --separator command line option has been dropped,
replaced a new `separator` directive in CSV rule files. (Aleksandar Dimitrov)
Also the `.tsv` and `.ssv` file extensions are now recognised,
and set the default `separator` to TAB and semicolon respectively.
(#1179)
- Allow manual assignment of the "expenses:unknown" account name. (#1192)
- CSV rule keywords are now case insensitive. (Aleksandar Dimitrov)
## timeclock format
- Misc. fixes making parsing more robust. (Jakob Schöttl)
## timedot format
- More support for org mode: org headlines can now be used for date
lines and timelog items (the stars are ignored). Also, any org
headlines before the first date line are ignored.
- You can now write a description after a date, which will be used in
all of that day's transactions.
# 1.16.2 2020-01-14 # 1.16.2 2020-01-14