;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.
For package-specific changes, see the package changelogs.
- documentation updates
# 00043408
- streamlined hledger.org sidebar & manuals structure
- hledger manual: new Common Tasks section in
- hledger-install: re-enable installation of hledger-iadd & hledger-interest.
- 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)
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)
- examples: 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
Spain must support.
Having these example rules enables easens bootstraping for users with a
Spanish bank account.
- install: re-enable hledger-iadd & hledger-interest
hledger-iadd has been revised on hackage, and hledger-interest has no upper bound.
- doc: simpler, clearer structure in the manuals and hledger.org sidebar
- install: always do stack update, to help ensure we get the latest
https://github.com/commercialhaskell/stack/issues/5112
- doc: a new [Quick Start](https://hledger.org/start.html) page
- 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

View File

@ -1,32 +1,54 @@
Internal/api/developer-ish changes in the hledger-lib (and hledger) packages.
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)
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 nubSort instead of nub . sort. (Stephen Morgan)
- Use PeriodicReport in place of MultiBalanceReport. (Stephen Morgan)
- Calculate MultiReportBalance columns more efficiently. (Stephen Morgan)
Only calculate posting date once for each posting, and calculate their
columns instead of checking each DateSpan separately.
- 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.
- Moved JSON instances from hledger-web to hledger-lib (Hledger.Data.Json),
and added ToJSON instances for all (?) remaining data types, up to Ledger.
- Dropped nullassertion's "assertion" alias, fixing a warning.
Perhaps we'll stick with the null* naming convention.
# 1.16.2 2020-01-14

View File

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

View File

@ -1,9 +1,19 @@
User-visible changes in hledger-ui.
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

View File

@ -1,28 +1,38 @@
User-visible changes in hledger-web.
See also the hledger changelog.
# 445e8aa3
# 4c321cee
- web: Add option --socket to use UNIX socket file (Carl Richard Theodor Schneider)
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.
- Fonts have been improved on certain platforms. (David Zhang)
It also introduces the following dependencies:
- IPv6 is supported (Amarandus) (#1145)
- network
- 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
- The --host option can now take a local hostname (Amarandus) (#1145)
- 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

View File

@ -1,25 +1,49 @@
User-visible changes in the hledger command line tool and library.
# 445e8aa3
# 2c8a6e98
- Fix timeclock format parsing (Jakob Schöttl)
Fix presumably copy-paste errors
## General
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)
- Fix issue 457 (Jacek Generowicz)
- Fix issue 457. (Jacek Generowicz)
Issue #457 pointed out that commands such as
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
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
quotes) already existed. This solution simply adds shell stdio
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