hledger/doc/CHANGES
2016-12-20 09:30:32 -08:00

230 lines
7.9 KiB
Plaintext

Project-wide changes in the hledger project.
See also the package change logs.
# 1.1 (unreleased)
(Changes in all packages - move to package changelogs before release:)
## misc
- fix non-existent "oldtime" dependency in hledger package (#431)
- update base lower bound to enforce GHC 7.10+
hledger-lib had a valid install plan with GHC 7.8, but currently requires GHC 7.10 to compile.
Now we require base 4.8+ everywhere to ensure the right GHC version at the start.
- Hledger.Read api cleanups
- rename dbgIO to dbg0IO, consistent with dbg0, and document a bug in dbg*IO
- make readJournalFiles [f] equivalent to readJournalFile f (#437)
- more general parser types enabling reuse outside of IO (#439)
## cli
- more predictable file format detection
When we don't recognise a file's extension, instead of choosing a subset of
readers to try based on content sniffing, now we just try them all.
Also, this can be overridden by prepending the reader name and a
colon to the file path (eg timedot:file.dat, csv:-).
- don't show stack trace details in errors with GHC 8+
## ui
- mark hledger-ui as "stable"
- allow brick 0.15, vty 5.14, text-zipper 0.9
- with --watch, the display updates automatically to show file or date changes
hledger-ui --watch will reload data when the journal file (or any included file) changes.
Also, when viewing a current standard period (ie this day/week/month/quarter/year),
the period will move as needed to track the current system date.
- the --change flag shows period changes at startup instead of historical ending balances
- the A key runs the hledger-iadd tool, if installed
- always reload when g is pressed
Previously it would check the modification time and reload only if
it looked newer than the last reload.
## web
- add --host option (#429)
This came up in the context of Docker, but it seems it wasn't
possible for hledger-web to serve remote clients directly (without
a proxy) because of 127.0.0.1 being hardcoded. That can now be
changed with --host=IPADDR. Also, the default base url uses this
address rather than a hard-coded "localhost".
- rename --server to --serve
The --server flag sounded too close in meaning to --host so
I've renamed it to --serve. The old spelling is still accepted,
but deprecated and will be removed in the next release.
## api
- serves on 127.0.0.1 by default, --host option added (#432)
Consistent with hledger-web: serves only local requests by default,
use --host=IPADDR to change this.
- fixed the version string in command-line help and swagger info
## csv format
- create default rules file only if CSV reader succeeds
## journal format
- balance assignments are now supported (#438, #129, #157, #288)
This feature also brings a slight performance drop (~5%);
optimisations welcome.
- also recognise `*.hledger` files as hledger journal format
## ledger format
- use ledger-parse from the ledger4 project as an alternate reader for C++ Ledger journals
The idea is that some day we might get better compatibility with Ledger files this way.
Right now this reader is not very useful and will be used only if you explicitly select it with a `ledger:` prefix.
It parses transaction dates, descriptions, accounts and amounts, and ignores everything else.
Amount parsing is delegated to hledger's journal parser, and malformed amounts might be silently ignored.
This adds at least some of the following as new dependencies for hledger-lib:
parsers, parsec, attoparsec, trifecta.
# 1.0.1 (2016/10/27)
- change log/release note fixes
# 1.0 (2016/10/26)
## misc
- added GHC 8 support, dropped GHC 7.6 and 7.8 support.
GHC 7.8 support could be restored with small code changes and a maintainer.
- a cabal.project file has been added (Moritz Kiefer)
- use hpack for maintaining cabal files (#371).
Instead of editing cabal files directly, we now edit the less
verbose and less redundant package.yaml files and let stack (or
hpack) update the cabal files. We commit both the .yaml and
.cabal files.
- clean up some old cabal flags
- tools/simplebench has been spun off as the quickbench package.
- add Appveyor CI builds, provide up-to-date binaries for Windows
- extra: add a bunch of CSV rules examples
## docs
- the website is simpler, clearer, and more mobile-friendly.
Docs are now collected on a single page and organised by type: getting started, reference, more.
- reference docs have been split into one manual for each executable and file format.
This helps with maintenance and packaging and also should make it
easier to see what's available and to read just what you need.
- manuals are now provided in html, plain text, man and info formats
generated from the same source by a new Shake-based docs build system. (#292)
- versioned manuals are provided on the website, covering recent releases and the latest dev version (#385, #387)
- manuals are built in to the hledger executables, allowing easy offline reading on all platforms.
PROG -h shows PROG's command-line usage
PROG --help shows PROG's manual (fixed width)
PROG --man shows PROG's manual with man (formatted/paged)
PROG --info shows PROG's manual with info (hypertext)
hledger help [TOPIC] shows any manual
hledger man [TOPIC] shows any manual with man
hledger info [TOPIC] shows any manual with info
- the general and reporting options are now listed in all executable manuals.
We assume any of them which are unsupported are harmlessly ignored.
- demo.hledger.org is using beancount's example journal.
This is the somewhat realistic example journal from the beancount
project, tweaked for hledger.
- minor copyedits (jungle-boogie)
## cli
- parsing multiple input files is now robust.
When multiple -f options are provided, we now parse each file
individually rather than just concatenating them, so they can
have different formats (#320). Note this also means that
directives (like \`Y\` or \`alias\`) no longer carry over from one
file to the next.
- -I has been added as the short flag for --ignore-assertions
(this is different from Ledger's CLI, but useful for hledger-ui).
- parsing an argument-less --debug option is more robust
0.27 (2015/10/31)
- The site is now built with hakyll-std, a generic hakyll script.
- The hledger cabal files are now generated from package.yaml files by
hpack, in principle, removing a lot of error-prone duplication and
boilerplate. (In practice, both files are being updated manually
for the moment, until hpack supports flags and conditional blocks.)
- Time/allocation and heap profiling is working again, and easier:
- `make quickprof-CMD` generates a profile for CMD, which runs
against one of the sample journals. (CMD must be one word,
enclosing in double quotes isn't working here for some reason).
- `make quickheap-CMD` generates a heap profile for CMD, in
hledgerprof.ps, and tries to open it in a viewer (currently the
mac-friendly "open" executable, so you may need to adjust this in
the makefile). As with quickprof, CMD must be one word and runs
against one of the sample journals.
- `make hledgerprof` builds the hledgerprof executable used for
time/allocation profiling. `make hledgercov` builds the hledgercov
executable used for coverage reports.
- Travis CI now tests the build on each github push and announces
status changes by email and on #hledger.
- hledger once again has a HCAR entry.
- Each hledger package now includes one or more man pages, generated
from markdown by the mighty pandoc. Currently there are six: one
for each main executable and each input file format. Currently these
somewhat duplicate the manual on the website; this will be resolved
somehow.