mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-18 17:57:11 +03:00
;doc: draft changelogs
[ci skip]
This commit is contained in:
parent
000434083a
commit
04fb132496
34
CHANGES.md
34
CHANGES.md
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 platform — most platforms should
|
||||
-- > be able to represent unsigned integers up to 64 bits, i.e. 19 digits.
|
||||
--
|
||||
-- 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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user