Merge branch 'master' into ExceptTLayer

This commit is contained in:
Alex Chen 2018-10-09 11:19:45 -06:00
commit 2cbc41e088
67 changed files with 815 additions and 624 deletions

View File

@ -41,10 +41,13 @@ install:
#- dir
# install latest stack release
# - curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
# - 7z x stack.zip stack.exe
# - copy stack.exe stack-release.exe
# - stack --version
#- curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
#- 7z x stack.zip stack.exe
# install latest stack prerelease
- curl -skLO https://github.com/commercialhaskell/stack/releases/download/v1.9.0.1/stack-1.9.0.1-windows-x86_64.tar.gz
- 7z x stack-1.9.0.1-windows-x86_64.tar.gz -so | 7z e -si -ttar stack-1.9.0.1-windows-x86_64/stack.exe -aoa
- stack --version
# install latest stack 4125-cabal-style-build-tools branch
# - set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
@ -53,24 +56,25 @@ install:
# - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe
# install latest stack master
- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
#- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
# show the stack-installed binares that were restored from cache, can vary by instance
- dir C:\Users\appveyor\AppData\Roaming\local\bin
#- dir C:\Users\appveyor\AppData\Roaming\local\bin
# - stack-release upgrade --git
#- copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe C:\Users\appveyor\AppData\Roaming\local\bin\stack-master.exe
# - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe
- stack --version
#- stack --version
#- dir
#
# install ghc
#- stack setup
# use ghc 8.2 to avoid a hledger-web -> network/stack build issue on windows,
# network 2.7.0.1 should work around it when released
# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue
# https://github.com/haskell/network/issues/313
# https://github.com/commercialhaskell/stack/issues/3944
- stack --stack-yaml=stack-ghc8.2.yaml setup
# network 2.7.0.1 is supposed to work around it
- stack setup --stack-yaml=stack-ghc8.2.yaml
#- stack setup
#- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
#- stack install shelltestrunner
@ -79,9 +83,13 @@ install:
# hledger-ui's vty dep isn't available on windows
# hledger-api not tried recently
build_script:
#- stack build --test --copy-bins --local-bin-path=. hledger hledger-web
- stack build --test --copy-bins --local-bin-path=. hledger hledger-web --stack-yaml=stack-ghc8.2.yaml
# use network 2.7.0.1+ to avoid https://github.com/haskell/network/issues/313
#- stack build --test --copy-bins --local-bin-path=. hledger hledger-web network-2.7.0.2
# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue
# don't run test suites to avoid easytest/windows utf8 issue
- stack build --copy-bins --local-bin-path=. hledger hledger-web --stack-yaml=stack-ghc8.2.yaml
- 7z a -tzip hledger.zip hledger.exe hledger-web.exe
#- hledger-install/hledger-install.sh
#- make stacktest

View File

@ -1 +1 @@
1.11
1.11.99

View File

@ -138,7 +138,7 @@ main = do
webmanpages = ["site" </> manpageNameToUri m <.> "md" | m <- manpageNames]
-- versions of documentation (excluding 0.27)
docversions = [ "1.0" , "1.1" , "1.2" , "1.3" , "1.4" , "1.5" , "1.9", "1.10" ]
docversions = [ "1.0" , "1.1" , "1.2" , "1.3" , "1.4" , "1.5" , "1.9", "1.10", "1.11" ]
-- manuals rendered to html by pandoc
webhtmlpages

View File

@ -1,73 +1,65 @@
hledger (http://hledger.org) is a friendly, robust, cross-platform
program for tracking money, time or other commodities, using
double-entry accounting, simple plain text file formats, and
command-line, curses or web UIs.
hledger is a robust, cross-platform "plain text accounting" tool, for
tracking money, time, stocks, cryptocurrencies or any other commodity,
using double-entry accounting, private or shared plain text files,
revision control, and command-line, curses or web UIs.
I'm very pleased to announce hledger 1.10, including work by release
contributors:
Alex Chen,
Everett Hildenbrandt,
Jakub Zárybnický,
Nolan Darilek,
Dmitry Astapov,
Jacob Weisz,
Peter Simons,
Stephen Morgan,
Pavlo Kerestey,
Trevor Riles,
Léo Gaspard,
Mykola Orliuk,
Wad,
Nana Amfo.
You'll note this is not 2.0 as previously planned - we will spend a
bit more time on that. The next major release is expected to be on
2018/09/30.
Please see http://hledger.org/release-notes#hledger-1.10 for the changes
(as soon as I can get to those; until then, the package changelogs):
http://hackage.haskell.org/package/hledger-1.10/changelog
http://hackage.haskell.org/package/hledger-ui-1.10/changelog
http://hackage.haskell.org/package/hledger-web-1.10/changelog
http://hackage.haskell.org/package/hledger-api-1.10/changelog
http://hackage.haskell.org/package/hledger-lib-1.10/changelog
I'm pleased to announce the on-schedule release of hledger 1.12.
Thanks to release contributors: A, B.
What's new
----------
How to get started:
-------------------
hledger 1.12
See http://hledger.org/download for all install methods.
-
One of the easiest is the hledger-install script, which requires only
bash and will build and install the hledger tools in $HOME/.local/bin/:
-
$ curl -O https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh
$ less hledger-install.sh # do security review
Full release notes are at http://hledger.org/release-notes.html#hledger-1.12
Install
-------
All install methods are described at http://hledger.org/download .
You can download windows binaries, or use a package manager, though in
some cases these will install an older hledger version.
You can build the latest hledger packages with stack:
$ stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11
hledger-1.11 [hledger-ui-1.11] [hledger-web-1.11] [hledger-api-1.11]
or with cabal:
$ cabal update && cabal install hledger-1.11 [hledger-ui-1.11]
[hledger-web-1.11] [hledger-api-1.11]
If you don't have stack or cabal, or if you are having trouble,
on systems with bash installed (mac, linux, unix-like windows..)
hledger-install.sh is an easy and reliable way to get the latest hledger:
$ curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh
$ less hledger-install.sh # satisfy yourself that the script is safe
$ bash hledger-install.sh
or (insecure; add -x flag to bash to see commands that were run):
$ curl https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh | bash
Getting started
---------------
After installation, ensure $HOME/.local/bin is in your $PATH, and try some commands:
$ hledger -h # quick help
$ hledger help # list built-in manuals
$ hledger add # record some transactions
$ hledger add # record some transactions, with guidance
$ hledger print # show recorded transactions
$ hledger balance # show totals by account
$ hledger -h # show quick help
$ hledger # list available commands
$ hledger help # list built-in manuals
Next, I encourage you to at least skim the tutorials and docs at
http://hledger.org.
Say hello and ask questions in the #hledger IRC channel on Freenode:
http://irc.hledger.org.
New users and contributors are always welcome! Give feedback, report
bugs, send pull requests, write, evangelise, help sustain us by donating.
To get oriented, see the tutorials and manuals at http://hledger.org .
To get help, say hello and ask questions in the #hledger IRC channel
on Freenode, accessible at http://irc.hledger.org .
New users and all forms of help are always welcome!
Best!
Best,
-Simon

View File

@ -1,129 +0,0 @@
Project-wide changes in the hledger project.
See also the package change logs.
# 1.1 (2016/12/31) and newer:
project changes are now kept at http://hledger.org/release-notes .
# 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.

View File

@ -8,7 +8,7 @@ m4_define({{_webcombined_}}, m4_ifdef({{WEB && COMBINED}},{{$1}}) )m4_dnl
m4_dnl
m4_define({{_author_}}, {{}})m4_dnl
m4_define({{_monthyear_}}, {{September 2018}})m4_dnl
m4_define({{_version_}}, {{1.10.99}})m4_dnl
m4_define({{_version_}}, {{1.11.99}})m4_dnl
m4_dnl
m4_dnl Links to dev and recent release versions of a manual.
m4_dnl $1 is the manual's web slug: hledger, hledger-ui, journal, csv etc.

View File

@ -1,6 +1,11 @@
User-visible changes in hledger-api. See also hledger, hledger-lib.
# 1.11.1 (2018/10/06)
* use hledger 1.11.1
# 1.11 (2018/9/30)
* use hledger 1.11

View File

@ -1,5 +1,5 @@
.TH "hledger\-api" "1" "September 2018" "hledger\-api 1.10.99" "hledger User Manuals"
.TH "hledger\-api" "1" "September 2018" "hledger\-api 1.11.99" "hledger User Manuals"

View File

@ -2,10 +2,10 @@
--
-- see: https://github.com/sol/hpack
--
-- hash: 7f5a11be3e9db0d4fcebb5b663ee988461de6d815042a7785f9076e083dde205
-- hash: 79786a2effbdf3258e88ee988c7cbbab5951550bac768bab7cbd1c9080fd198d
name: hledger-api
version: 1.11
version: 1.11.99
synopsis: Web API server for the hledger accounting tool
description: This is a simple web API server for hledger data.
It comes with a series of simple client-side web app examples.
@ -45,7 +45,7 @@ executable hledger-api
other-modules:
Paths_hledger_api
ghc-options: -threaded
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
Decimal
, aeson
@ -55,8 +55,8 @@ executable hledger-api
, data-default >=0.5
, docopt
, either
, hledger >=1.11 && <1.12
, hledger-lib >=1.11 && <1.12
, hledger >=1.11.99 && <1.12
, hledger-lib >=1.11.99 && <1.12
, microlens >=0.4
, microlens-platform >=0.2.3.1
, safe

View File

@ -37,12 +37,12 @@ import Text.Printf
import Hledger.Query
import Hledger.Cli hiding (Reader, version)
hledgerApiVersion="1.11"
hledgerApiVersion="1.11.99"
-- https://github.com/docopt/docopt.hs#readme
doc :: Docopt
doc = [docopt|
hledger-api 1.11
hledger-api 1.11.99
Serves hledger data and reports as a JSON web API.

View File

@ -3,7 +3,7 @@ This is hledger-api.info, produced by makeinfo version 6.5 from stdin.

File: hledger-api.info, Node: Top, Next: OPTIONS, Up: (dir)
hledger-api(1) hledger-api 1.10.99
hledger-api(1) hledger-api 1.11.99
**********************************
hledger-api is a simple web API server, intended to support client-side

View File

@ -117,4 +117,4 @@ SEE ALSO
hledger-api 1.10.99 September 2018 hledger-api(1)
hledger-api 1.11.99 September 2018 hledger-api(1)

View File

@ -1,5 +1,5 @@
name: hledger-api
version: '1.11'
version: '1.11.99'
synopsis: Web API server for the hledger accounting tool
description: |
This is a simple web API server for hledger data.
@ -32,8 +32,8 @@ extra-source-files:
#data-files:
dependencies:
- hledger-lib >=1.11 && <1.12
- hledger >=1.11 && <1.12
- hledger-lib >=1.11.99 && <1.12
- hledger >=1.11.99 && <1.12
- base >=4.8 && <4.12
- aeson
- bytestring
@ -58,4 +58,4 @@ executables:
hledger-api:
main: hledger-api.hs
ghc-options: -threaded
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"

View File

@ -50,7 +50,7 @@ HERE
HLEDGER_INSTALL_TOOL=hledger-install.sh
# this script's version
HLEDGER_INSTALL_VERSION=20181001
HLEDGER_INSTALL_VERSION=20181006
# stackage version to install from when using stack
# You can specify a different stackage version here, or comment out
@ -77,7 +77,7 @@ hledger-interest \
"
# latest hledger package versions, update often:
HLEDGER_VERSION=1.11
HLEDGER_VERSION=1.11.1
HLEDGER_LIB_VERSION=$HLEDGER_VERSION
HLEDGER_UI_VERSION=$HLEDGER_VERSION
HLEDGER_WEB_VERSION=$HLEDGER_VERSION
@ -768,15 +768,58 @@ trap cleanup_temp_dir EXIT
# hledger routines
# Compare dotted number version strings, based on https://stackoverflow.com/a/4025065/84401.
# cmpver A B's exit status *and* output is
# 0 for A ~= B (1 is equivalent to 1.0, 1.0.0 etc.)
# 1 for A > B
# 2 for A < B.
cmpver () {
if [[ $1 == $2 ]]
then
echo 0; return 0
fi
local IFS=.
local i ver1=($1) ver2=($2)
# fill empty fields in ver1 with zeros
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
do
ver1[i]=0
done
for ((i=0; i<${#ver1[@]}; i++))
do
if [[ -z ${ver2[i]} ]]
then
# fill empty fields in ver2 with zeros
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]}))
then
echo 1; return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
echo 2; return 2
fi
done
echo 0; return 0
}
# install stack or a newer version of stack if needed,
# or always with --force-install-stack,
# in $HOME/.local/bin
# in $HOME/.local/bin.
# After installing, check that a new-enough stack is now the first in $PATH,
# and if it's not, exit with a warning advising the user to remove the old one.
ensure_stack() {
if ! has_good_stack || [[ "$FORCE_INSTALL_STACK" == "true" ]] ; then
echo "Installing stack"
do_os
if ! has_good_stack ; then
echo "Error: an older stack ($(cmd_version stack)) is first in \$PATH, shadowing the new version."
echo "Please delete or rename $(which stack) and run hledger-install again."
exit 1
fi
fi
echo "using stack $(stack --version)"
echo "Using stack $(stack --version)"
}
# get a sed command that supports EREs
@ -791,10 +834,10 @@ cmd_location() {
command -v "$1"
}
# Get the given command's version, ie the first number in its --version output,
# Get the given command's version, ie the first number in the first line of its --version output,
# or empty string if there's a problem.
cmd_version() {
(command "$1" --version 2>/dev/null | grep -E '[0-9]' | $SED -e 's/[^0-9]*([0-9][0-9.]*).*/\1/') || ""
(command "$1" --version 2>/dev/null | head -n1 | grep -E '[0-9]' | $SED -e 's/[^0-9]*([0-9][0-9.]*).*/\1/') || ""
}
# Check whether the given command exists with given version
@ -811,9 +854,9 @@ print_cmd_version() {
fi
}
# Show the current installation status of the hledger packages and install tools.
# Show the current installation status of the hledger packages.
print_installed_versions() {
for cmd in $HLEDGER_MAIN_TOOLS $HLEDGER_OTHER_TOOLS $HLEDGER_INSTALL_TOOL stack cabal ; do print_cmd_version "$cmd"; done
for cmd in $HLEDGER_MAIN_TOOLS $HLEDGER_OTHER_TOOLS $HLEDGER_INSTALL_TOOL ; do print_cmd_version "$cmd"; done
}
# Run a command, but first log it with "Trying" prepended.
@ -827,29 +870,21 @@ quietly_run() {
"$@" 2>/dev/null || true
}
# Try to install the executables of the given package(s) to $HOME/.local/bin,
# trying several methods, generally from quickest to most reliable, continuing on failure.
# Current the installation methods are:
# - if stack is not installed and cabal is, try cabal install
# - otherwise install stack if needed and try stack install with specific resolver and ghc
# For the stack method, it's necessary to provide not only the package(s) you want to
# install but also all dependencies which are not in the specified stackage $RESOLVER.
# Try to install the executables of the given haskell package(s) and versions,
# using stack or cabal, logging the commands, continuing on failure.
# It's assumed that either a new-enough stack or cabal-install is already installed.
# stack is preferred.
# For stack, you must specify the package(s) you want to install, plus any additional
# dependency packages which are not in the stackage $RESOLVER configured above.
try_install() {
(cd # ensure we install at user level, not in some project's stack/cabal setup
# cabal and not stack installed ? use cabal
(! has_cmd stack && has_cmd cabal && (
echo "no stack installed, cabal $(cabal --numeric-version) installed; trying cabal install" && # cf cabal update step
try_info cabal install "$@" --verbose="$CABAL_VERBOSITY" )
) ||
# use stack, installing it if missing or too old
(ensure_stack && (
#(try_info stack install --install-ghc "$@" --verbosity=$STACK_VERBOSITY ) || # existing resolver
(try_info stack install --install-ghc $RESOLVER "$@" --verbosity="$STACK_VERBOSITY" ) # specific resolver
)
) ||
# or give up
echo "Failed to install $@"
)
cd # ensure we install at user level, not in some project's stack/cabal setup
if has_cmd stack ; then
try_info stack install --install-ghc $RESOLVER "$@" --verbosity="$STACK_VERBOSITY"
elif has_cmd cabal ; then
try_info cabal install "$@" --verbose="$CABAL_VERBOSITY"
else
echo "Failed to install $@"
fi
}
# start
@ -911,7 +946,49 @@ fi
echo "hledger-install.sh $HLEDGER_INSTALL_VERSION $(date)"
# show system info
echo
echo "System info:"
quietly_run uname -rsv
quietly_run lsb_release -a
# show current installed hledger packages
echo
echo "Install status before:"
print_installed_versions
if [[ $STATUSFLAG ]] ; then
exit 0
fi
# explain the planned install method
echo
echo "Install method:"
# if stack is installed, use stack
# || [[ "$FORCE_INSTALL_STACK" == "true" ]] #--force-install-stack
if has_stack ; then
echo "stack $(cmd_version stack) is installed, using stack to install hledger in $HOME/.local/bin"
# if it's too old, explain that we'll be installing the latest
if ! has_good_stack ; then
echo "Note: stack $(cmd_version stack) is too old, a newer version will be installed"
fi
# install stack now (or if new enough, just print its precise version)
ensure_stack
# else if cabal is installed, use cabal
elif has_cmd cabal ; then
echo "no stack installed, cabal $(cabal --numeric-version) installed; using cabal to install hledger in $HOME/.cabal/bin"
echo Using $(cabal --version) # unquoted to squash cabal version to one line
# run cabal update to make sure it knows about latest packages
try_info cabal update
# else use stack
else
echo "no stack or cabal installed; stack will be installed and used to install hledger in $HOME/.local/bin"
# install stack now
ensure_stack
fi
# ensure ~/.local/bin/ in PATH
# TODO should check ~/.cabal/bin if using cabal
if ! on_path "$HOME_LOCAL_BIN" ; then
echo "WARNING: this script installs hledger (and perhaps stack) in '$HOME_LOCAL_BIN'"
echo " but this directory is not in your PATH. Adding it temporarily. To run"
@ -921,63 +998,9 @@ if ! on_path "$HOME_LOCAL_BIN" ; then
export PATH=$HOME_LOCAL_BIN:$PATH
fi
# show system info
echo "System info:"
quietly_run uname -rsv
quietly_run lsb_release -a
# show current installed hledger packages
echo "Install status before:"
print_installed_versions
if [[ $STATUSFLAG ]] ; then
exit 0
fi
# if we'll be using cabal, run cabal update once at the start
(! has_cmd stack && has_cmd cabal &&
echo "no stack installed, cabal $(cabal --numeric-version) installed; trying cabal update" && # cf try-install()
try_info cabal update
)
# Compare dotted number version strings, based on https://stackoverflow.com/a/4025065/84401.
# cmpver A B's exit status *and* output is
# 0 for A ~= B (1 is equivalent to 1.0, 1.0.0 etc.)
# 1 for A > B
# 2 for A < B.
cmpver () {
if [[ $1 == $2 ]]
then
echo 0; return 0
fi
local IFS=.
local i ver1=($1) ver2=($2)
# fill empty fields in ver1 with zeros
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
do
ver1[i]=0
done
for ((i=0; i<${#ver1[@]}; i++))
do
if [[ -z ${ver2[i]} ]]
then
# fill empty fields in ver2 with zeros
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]}))
then
echo 1; return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
echo 2; return 2
fi
done
echo 0; return 0
}
# try installing each package that needs installing, in turn
echo ----------
echo
echo Installing hledger packages:
if [[ $(cmpver "$(cmd_version hledger 2>/dev/null)" $HLEDGER_VERSION) = 2 ]]; then
echo Installing hledger
@ -1003,7 +1026,7 @@ if [[ $(cmpver "$(cmd_version hledger-api 2>/dev/null)" $HLEDGER_API_VERSION) =
try_install hledger-api-$HLEDGER_API_VERSION hledger-$HLEDGER_VERSION hledger-lib-$HLEDGER_LIB_VERSION $EXTRA_DEPS
echo
fi
exit
# Third-party addons. We sometimes build these with an older version
# of hledger[-lib], if their bounds have not been updated yet.
if [[ $(cmpver "$(cmd_version hledger-diff 2>/dev/null)" $HLEDGER_DIFF_VERSION) = 2 ]]; then
@ -1024,14 +1047,14 @@ if [[ $(cmpver "$(cmd_version hledger-interest 2>/dev/null)" $HLEDGER_INTEREST_V
echo
fi
echo ----------
# show new installation status
echo
echo "Install status after:"
print_installed_versions
# warn if $HOME/.local/bin isn't in $PATH
check_home_local_bin_on_path
# TODO if we installed with cabal, we should check $HOME/.cabal/bin instead
# TODO
# check/require ghc-8.0.2+/lts-8+ on osx sierra+

View File

@ -2,6 +2,12 @@ API-ish changes in the hledger-lib package.
Most user-visible changes are noted in the hledger changelog, instead.
# 1.11.1 (2018/10/06)
* add, lib: fix wrong transaction rendering in balance assertion errors
and when using the add command
# 1.11 (2018/9/30)
* compilation now works when locale is unset (#849)

View File

@ -554,7 +554,7 @@ checkBalanceAssertion p@Posting{ pbalanceassertion = Just (ass,_)} amt
(case ptransaction p of
Nothing -> ":" -- shouldn't happen
Just t -> printf " in %s:\nin transaction:\n%s"
(showGenericSourcePos pos) (chomp $ show t) :: String
(showGenericSourcePos pos) (chomp $ showTransaction t) :: String
where pos = snd $ fromJust $ pbalanceassertion p)
(showPostingLine p)
(showDate $ postingDate p)

View File

@ -627,7 +627,7 @@ tests_JournalReader = tests "JournalReader" [
,ptpostings = []
}
-- TODO #807
-- TODO some weaknesses in periodic transaction parsing, https://github.com/simonmichael/hledger/pull/807#issuecomment-396994403
,_test "more period text in description after two spaces" $ expectParseEq periodictransactionp
"~ monthly from 2018/6 In 2019 we will change this\n"
nullperiodictransaction {

View File

@ -2,10 +2,10 @@
--
-- see: https://github.com/sol/hpack
--
-- hash: ec4f3b835e224318ad3608ab36126e3e07d3c54075f648eba27476bb51db15f4
-- hash: 22a6817292c6f2d53f935ce939331bea06b956c94b4e391d198760704ec294b3
name: hledger-lib
version: 1.11
version: 1.11.99
synopsis: Core data types, parsers and functionality for the hledger accounting tools
description: This is a reusable library containing hledger's core functionality.
.

View File

@ -1,5 +1,5 @@
.TH "hledger_csv" "5" "September 2018" "hledger 1.10.99" "hledger User Manuals"
.TH "hledger_csv" "5" "September 2018" "hledger 1.11.99" "hledger User Manuals"

View File

@ -3,7 +3,7 @@ This is hledger_csv.info, produced by makeinfo version 6.5 from stdin.

File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir)
hledger_csv(5) hledger 1.10.99
hledger_csv(5) hledger 1.11.99
******************************
hledger can read CSV (comma-separated value) files as if they were

View File

@ -249,4 +249,4 @@ SEE ALSO
hledger 1.10.99 September 2018 hledger_csv(5)
hledger 1.11.99 September 2018 hledger_csv(5)

View File

@ -1,6 +1,6 @@
.\"t
.TH "hledger_journal" "5" "September 2018" "hledger 1.10.99" "hledger User Manuals"
.TH "hledger_journal" "5" "September 2018" "hledger 1.11.99" "hledger User Manuals"

View File

@ -4,7 +4,7 @@ stdin.

File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir)
hledger_journal(5) hledger 1.10.99
hledger_journal(5) hledger 1.11.99
**********************************
hledger's usual data source is a plain text file containing journal

View File

@ -1151,4 +1151,4 @@ SEE ALSO
hledger 1.10.99 September 2018 hledger_journal(5)
hledger 1.11.99 September 2018 hledger_journal(5)

View File

@ -1,5 +1,5 @@
.TH "hledger_timeclock" "5" "September 2018" "hledger 1.10.99" "hledger User Manuals"
.TH "hledger_timeclock" "5" "September 2018" "hledger 1.11.99" "hledger User Manuals"

View File

@ -4,7 +4,7 @@ stdin.

File: hledger_timeclock.info, Node: Top, Up: (dir)
hledger_timeclock(5) hledger 1.10.99
hledger_timeclock(5) hledger 1.11.99
************************************
hledger can read timeclock files. As with Ledger, these are (a subset

View File

@ -77,4 +77,4 @@ SEE ALSO
hledger 1.10.99 September 2018 hledger_timeclock(5)
hledger 1.11.99 September 2018 hledger_timeclock(5)

View File

@ -1,5 +1,5 @@
.TH "hledger_timedot" "5" "September 2018" "hledger 1.10.99" "hledger User Manuals"
.TH "hledger_timedot" "5" "September 2018" "hledger 1.11.99" "hledger User Manuals"

View File

@ -4,7 +4,7 @@ stdin.

File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir)
hledger_timedot(5) hledger 1.10.99
hledger_timedot(5) hledger 1.11.99
**********************************
Timedot is a plain text format for logging dated, categorised quantities

View File

@ -124,4 +124,4 @@ SEE ALSO
hledger 1.10.99 September 2018 hledger_timedot(5)
hledger 1.11.99 September 2018 hledger_timedot(5)

View File

@ -1,5 +1,5 @@
name: hledger-lib
version: '1.11'
version: '1.11.99'
synopsis: Core data types, parsers and functionality for the hledger accounting tools
description: |
This is a reusable library containing hledger's core functionality.

View File

@ -1,6 +1,11 @@
User-visible changes in hledger-ui. See also hledger, hledger-lib.
# 1.11.1 (2018/10/06)
* use hledger 1.11.1
# 1.11 (2018/9/30)
* use hledger 1.11

View File

@ -1,5 +1,5 @@
.TH "hledger\-ui" "1" "September 2018" "hledger\-ui 1.10.99" "hledger User Manuals"
.TH "hledger\-ui" "1" "September 2018" "hledger\-ui 1.11.99" "hledger User Manuals"

View File

@ -2,10 +2,10 @@
--
-- see: https://github.com/sol/hpack
--
-- hash: 61b73ed221f9d6964b622e7b8ea40259e9c82efd8b28dadc89d6a643ea947b94
-- hash: fb0ef2467dcf115f1fc7a6f9d7781ec6912e7545a52921968067666c1747fff4
name: hledger-ui
version: 1.11
version: 1.11.99
synopsis: Curses-style user interface for the hledger accounting tool
description: This is hledger's curses-style interface.
It is simpler and more convenient for browsing data than the command-line interface,
@ -63,7 +63,7 @@ executable hledger-ui
hs-source-dirs:
./.
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
ansi-terminal >=0.6.2.3
, async
@ -75,8 +75,8 @@ executable hledger-ui
, directory
, filepath
, fsnotify >=0.2.1.2 && <0.4
, hledger >=1.11 && <1.12
, hledger-lib >=1.11 && <1.12
, hledger >=1.11.99 && <1.12
, hledger-lib >=1.11.99 && <1.12
, megaparsec >=7.0.0 && <8
, microlens >=0.4
, microlens-platform >=0.2.3.1

View File

@ -3,7 +3,7 @@ This is hledger-ui.info, produced by makeinfo version 6.5 from stdin.

File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
hledger-ui(1) hledger-ui 1.10.99
hledger-ui(1) hledger-ui 1.11.99
********************************
hledger-ui is hledger's curses-style interface, providing an efficient

View File

@ -387,4 +387,4 @@ SEE ALSO
hledger-ui 1.10.99 September 2018 hledger-ui(1)
hledger-ui 1.11.99 September 2018 hledger-ui(1)

View File

@ -1,5 +1,5 @@
name : hledger-ui
version : '1.11'
version : '1.11.99'
synopsis : Curses-style user interface for the hledger accounting tool
description : |
This is hledger's curses-style interface.
@ -37,11 +37,11 @@ flags:
manual: false
default: true
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
dependencies:
- hledger >=1.11 && <1.12
- hledger-lib >=1.11 && <1.12
- hledger >=1.11.99 && <1.12
- hledger-lib >=1.11.99 && <1.12
- ansi-terminal >=0.6.2.3
- async
- base >=4.8 && <4.12

View File

@ -1,6 +1,11 @@
User-visible changes in hledger-web. See also hledger, hledger-lib.
# 1.11.1 (2018/10/06)
* use hledger 1.11.1
# 1.11 (2018/9/30)
* use hledger 1.11

View File

@ -1,5 +1,5 @@
.TH "hledger\-web" "1" "September 2018" "hledger\-web 1.10.99" "hledger User Manuals"
.TH "hledger\-web" "1" "September 2018" "hledger\-web 1.11.99" "hledger User Manuals"

View File

@ -2,10 +2,10 @@
--
-- see: https://github.com/sol/hpack
--
-- hash: 60eb9cb226968eed42b507637364f5960aa6b6fb91dff8a46fcbd40295780df6
-- hash: 443e668fdd64fb57d1d9488224df0bc6ee4e796bcc75f81655a92850ff809d34
name: hledger-web
version: 1.11
version: 1.11.99
synopsis: Web interface for the hledger accounting tool
description: This is hledger's web interface.
It provides a more user-friendly and collaborative UI than the
@ -149,7 +149,7 @@ library
hs-source-dirs:
./.
ghc-options: -Wall -fwarn-tabs
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
base >=4.8 && <4.12
, blaze-html
@ -164,8 +164,8 @@ library
, directory
, filepath
, hjsmin
, hledger >=1.11 && <1.12
, hledger-lib >=1.11 && <1.12
, hledger >=1.11.99 && <1.12
, hledger-lib >=1.11.99 && <1.12
, http-client
, http-conduit
, json
@ -201,7 +201,7 @@ executable hledger-web
hs-source-dirs:
app
ghc-options: -Wall -fwarn-tabs
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
base
, hledger-web

View File

@ -3,7 +3,7 @@ This is hledger-web.info, produced by makeinfo version 6.5 from stdin.

File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
hledger-web(1) hledger-web 1.10.99
hledger-web(1) hledger-web 1.11.99
**********************************
hledger-web is hledger's web interface. It starts a simple web

View File

@ -251,4 +251,4 @@ SEE ALSO
hledger-web 1.10.99 September 2018 hledger-web(1)
hledger-web 1.11.99 September 2018 hledger-web(1)

View File

@ -1,5 +1,5 @@
name: hledger-web
version: '1.11'
version: '1.11.99'
synopsis: Web interface for the hledger accounting tool
description: |
This is hledger's web interface.
@ -77,7 +77,7 @@ when:
library:
source-dirs: .
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
exposed-modules:
- Hledger.Web
- Hledger.Web.Application
@ -96,8 +96,8 @@ library:
- Hledger.Web.Widget.AddForm
- Hledger.Web.Widget.Common
dependencies:
- hledger-lib >=1.11 && <1.12
- hledger >=1.11 && <1.12
- hledger-lib >=1.11.99 && <1.12
- hledger >=1.11.99 && <1.12
- base >=4.8 && <4.12
- blaze-html
- blaze-markup
@ -143,7 +143,7 @@ executables:
hledger-web:
source-dirs: app
main: main.hs
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
dependencies:
- base
- hledger-web
@ -161,7 +161,7 @@ executables:
# test:
# source-dirs: tests
# main: main.hs
# cpp-options: -DVERSION="1.11"
# cpp-options: -DVERSION="1.11.99"
# dependencies:
# - base
# - hledger-web

View File

@ -1,6 +1,12 @@
User-visible changes in the hledger command line tool.
# 1.11.1 (2018/10/06)
* fix wrong transaction rendering in balance assertion errors and when
using the add command
# 1.11 (2018/9/30)
* The default display order of accounts is now influenced by
@ -584,6 +590,83 @@ Allow megaparsec 5.2 (#503)
- stack-ify extra/hledger-rewrite.hs
## 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
@ -598,9 +681,42 @@ Account aliases:
Documentation:
- The hledger packages now have man pages, based on the current user
manual, thanks to the mighty pandoc (#282).
- 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. (#282).
- The site is now built with hakyll-std, a generic hakyll script.
- hledger once again has a HCAR entry.
Tools:
- 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.
Journal format:
- Dates must now begin with a digit (not /, eg).

View File

@ -244,6 +244,10 @@ FLAGS
testcmd :: CliOpts -> Journal -> IO ()
testcmd opts _undefined = do
let args = words' $ query_ $ reportopts_ opts
-- workaround for https://github.com/joelburget/easytest/issues/11
-- import System.IO (hSetEncoding, stdout, stderr, utf8)
-- hSetEncoding stdout utf8
-- hSetEncoding stderr utf8
e <- runEasytests args $ EasyTest.tests [tests_Hledger, tests_Commands]
if e then exitFailure else exitSuccess

View File

@ -141,7 +141,7 @@ getAndAddTransactions es@EntryState{..} = (do
confirmedTransactionWizard es@EntryState{..} = do
t <- transactionWizard es
-- liftIO $ hPrintf stderr {- "Transaction entered:\n%s" -} (show t)
output $ show t
output $ showTransaction t
y <- let def = "y" in
retryMsg "Please enter y or n." $
parser ((fmap ('y' ==)) . headMay . map toLower . strip) $
@ -155,7 +155,7 @@ transactionWizard es@EntryState{..} = do
let es1@EntryState{esArgs=args1} = es{esArgs=drop 1 esArgs, esDefDate=date}
(desc,comment) <- descriptionAndCommentWizard es1
let mbaset = similarTransaction es1 desc
when (isJust mbaset) $ liftIO $ hPrintf stderr "Using this similar transaction for defaults:\n%s" (show $ fromJust mbaset)
when (isJust mbaset) $ liftIO $ hPrintf stderr "Using this similar transaction for defaults:\n%s" (showTransaction $ fromJust mbaset)
let es2 = es1{esArgs=drop 1 args1, esSimilarTransaction=mbaset}
balancedPostingsWizard = do
ps <- postingsWizard es2{esPostings=[]}
@ -379,7 +379,7 @@ journalAddTransaction j@Journal{jtxns=ts} opts t = do
-- unelided shows all amounts explicitly, in case there's a price, cf #283
when (debug_ opts > 0) $ do
putStrLn $ printf "\nAdded transaction to %s:" f
putStrLn =<< registerFromString (show t)
putStrLn =<< registerFromString (showTransaction t)
return j{jtxns=ts++[t]}
-- | Append a string, typically one or more transactions, to a journal

View File

@ -1,6 +1,6 @@
.\"t
.TH "hledger" "1" "September 2018" "hledger 1.10.99" "hledger User Manuals"
.TH "hledger" "1" "September 2018" "hledger 1.11.99" "hledger User Manuals"

View File

@ -2,10 +2,10 @@
--
-- see: https://github.com/sol/hpack
--
-- hash: e89846e17f78017f83d440cb2fcfe10caba2b0c4c6a61195b4faffcdd2b7a100
-- hash: 78515e93d6f08be6d098bdd697b951a1577e4e71c6b24ad64cf69916d3af191c
name: hledger
version: 1.11
version: 1.11.99
synopsis: Command-line interface for the hledger accounting tool
description: This is hledger's command-line interface.
Its basic function is to read a plain text file describing
@ -111,7 +111,7 @@ library
other-modules:
Paths_hledger
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans -optP-Wno-nonportable-include-path
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
Decimal
, Diff
@ -129,7 +129,7 @@ library
, hashable >=1.2.4
, haskeline >=0.6
, here
, hledger-lib >=1.11 && <1.12
, hledger-lib >=1.11.99 && <1.12
, lucid
, megaparsec >=7.0.0 && <8
, mtl
@ -164,7 +164,7 @@ executable hledger
hs-source-dirs:
app
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans -optP-Wno-nonportable-include-path
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
Decimal
, ansi-terminal >=0.6.2.3
@ -181,7 +181,7 @@ executable hledger
, haskeline >=0.6
, here
, hledger
, hledger-lib >=1.11 && <1.12
, hledger-lib >=1.11.99 && <1.12
, megaparsec >=7.0.0 && <8
, mtl
, mtl-compat
@ -218,7 +218,7 @@ test-suite test
hs-source-dirs:
test
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans -optP-Wno-nonportable-include-path
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
build-depends:
Decimal
, ansi-terminal >=0.6.2.3
@ -235,7 +235,7 @@ test-suite test
, haskeline >=0.6
, here
, hledger
, hledger-lib >=1.11 && <1.12
, hledger-lib >=1.11.99 && <1.12
, megaparsec >=7.0.0 && <8
, mtl
, mtl-compat
@ -289,7 +289,7 @@ benchmark bench
, haskeline >=0.6
, here
, hledger
, hledger-lib >=1.11 && <1.12
, hledger-lib >=1.11.99 && <1.12
, html
, megaparsec >=7.0.0 && <8
, mtl

View File

@ -3,7 +3,7 @@ This is hledger.info, produced by makeinfo version 6.5 from stdin.

File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
hledger(1) hledger 1.10.99
hledger(1) hledger 1.11.99
**************************
This is hledger's command-line interface (there are also curses and web

View File

@ -2230,4 +2230,4 @@ SEE ALSO
hledger 1.10.99 September 2018 hledger(1)
hledger 1.11.99 September 2018 hledger(1)

View File

@ -1,5 +1,5 @@
name: hledger
version: '1.11'
version: '1.11.99'
synopsis: Command-line interface for the hledger accounting tool
description: |
This is hledger's command-line interface.
@ -78,7 +78,7 @@ ghc-options:
- -optP-Wno-nonportable-include-path
dependencies:
- hledger-lib >=1.11 && <1.12
- hledger-lib >=1.11.99 && <1.12
- ansi-terminal >=0.6.2.3
- base >=4.8 && <4.12
- base-compat-batteries >=0.10.1 && <0.11
@ -121,7 +121,7 @@ when:
- terminfo
library:
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
exposed-modules:
- Hledger.Cli
- Hledger.Cli.Main
@ -163,7 +163,7 @@ executables:
hledger:
source-dirs: app
main: hledger-cli.hs
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
when:
- condition: flag(threaded)
ghc-options: -threaded
@ -174,7 +174,7 @@ tests:
test:
source-dirs: test
main: test.hs
cpp-options: -DVERSION="1.11"
cpp-options: -DVERSION="1.11.99"
dependencies:
- hledger
- test-framework

View File

@ -1,6 +1,6 @@
# csv format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

View File

@ -1,6 +1,6 @@
# hledger-api
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

View File

@ -1,6 +1,6 @@
# hledger-ui
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

View File

@ -1,6 +1,6 @@
# hledger-web
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

View File

@ -1,6 +1,6 @@
# hledger
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,6 @@
# journal format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$
@ -234,9 +234,9 @@ toggle transaction status with C-c C-e, or posting status with C-c C-c.
What "uncleared", "pending", and "cleared" actually mean is up to you.
Here's one suggestion:
-------------------------------------------------------------------------
------------------------------------------------------------------------
status meaning
----------- -------------------------------------------------------------
----------- ------------------------------------------------------------
uncleared recorded but not yet reconciled; needs review
pending tentatively reconciled (if needed, eg during a big
@ -244,7 +244,7 @@ Here's one suggestion:
cleared complete, reconciled as far as possible, and considered
correct
-------------------------------------------------------------------------
------------------------------------------------------------------------
With this scheme, you would use `-PC` to see the current balance at your
bank, `-U` to see things which will probably hit your bank soon (like

View File

@ -2,7 +2,7 @@
## hledger
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -2435,7 +2435,7 @@ accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
## hledger-ui
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -2847,7 +2847,7 @@ program is restarted.
## hledger-web
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -3100,7 +3100,7 @@ Does not work well on small screens.
## hledger-api
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -3202,7 +3202,7 @@ awkward.
## journal format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -4515,7 +4515,7 @@ https://twitter.com/LedgerTips/status/501767602067472384
## csv format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -4789,7 +4789,7 @@ rules file will be used for all the CSV files being read.
## timeclock format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME
@ -4858,7 +4858,7 @@ To generate time logs, ie to clock in and clock out, you could:
## timedot format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
### NAME

View File

@ -1,6 +1,6 @@
# timeclock format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

View File

@ -1,6 +1,6 @@
# timedot format
This doc is for version **1.10.99** (dev). []{.docversions}
This doc is for version **1.11** (dev). []{.docversions}
\$toc\$

View File

@ -1,14 +1,21 @@
\$toc\$
# Download
Adventurer, choose your path! No, really it's quite easy. Often. Do you want to..
There are several ways to install hledger:
a. [Download the binary or system package for your platform](#a.-download-a-binary-or-system-package) (quick install, often not up to date)
b. [Build the latest release with hledger-install](#b.-build-the-latest-release)
or [with stack](#b2.-with-stack)
or [with cabal](#b3.-with-cabal) (slow install, up to date)
c. [Build the development version with stack or cabal](#c.-build-the-development-version) (slow install, super-fresh)
<a name="a"></a>
## a. download a binary/system package
## a. Download a binary or system package for your platform
<style>
table { margin-left:1em; }
tr { border-top:thin solid #ddd; border-bottom:thin solid #ddd; }
div > p > strong > code { margin-left:1em; } /* top-level code lines */
code { white-space:nowrap; }
tr { vertical-align:top; }
@ -19,190 +26,224 @@ td:first-of-type {
}
a { white-space:nowrap; }
.warnings {
display:inline-block;
margin-left:1em;
font-style:italic;
font-size:small;
}
.warnings > a:before {
content: "⚠ ";
content: " ⚠ ";
color:red;
}
</style>
hledger binaries or system packages are quickest to install,
but they can be [out of date](https://repology.org/metapackage/hledger/badges) or incomplete.
(Please help your local packagers with this!).
Binaries or system packages are quickest to install, but they can be outdated or incomplete.
|
|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Windows: | [1.10](https://ci.appveyor.com/api/buildjobs/5n63x22wvd4j24ee/artifacts/hledger.zip) or [latest nightly dev build](https://ci.appveyor.com/api/projects/simonmichael/hledger/artifacts/hledger.zip?branch=master) (<span class=warnings>[no hledger-ui](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444), [doesn't work on old windows ?](https://github.com/simonmichael/hledger/issues/774), [unusually many files in PATH causing hangs](https://github.com/simonmichael/hledger/issues/791), [appveyor builds have been failing again](https://github.com/simonmichael/hledger/issues/832) )</span>
| Mac: | **`brew install hledger`** <span class=warnings>([only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520))</span>
| Arch Linux: | **`pacman -S hledger`**
| Debian,&nbsp;Ubuntu: | **`sudo apt install hledger hledger-ui hledger-web`**
| Fedora,&nbsp;RHEL: | **`sudo dnf install hledger`**
| Gentoo: | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`**
| Void Linux: | **`xbps-install -S hledger hledger-ui hledger-web hledger-api`**
| OpenBSD: | Third-party binaries: [OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html). Ports tree entries: [https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104)
| NixOS: | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`** <span class=warnings>([problems with hledger-ui on MacOS ?](https://github.com/simonmichael/hledger/issues/613))</span>
| Sandstorm: | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90) -> demo** - a hledger-web server in 3 clicks <span class=warnings>([features needed](https://github.com/simonmichael/hledger/issues/425))</span>
**Available binaries / system packages:**
<div style="float:right; font-size:small;">
(please [update this page](https://github.com/simonmichael/hledger/edit/master/site/download.md) /
<br>report issues to packagers)
</div>
| Platform | Command/Link | Installs&nbsp;version<br>([as&nbsp;of&nbsp;20181006](https://repology.org/metapackage/hledger/badges), latest is [1.11](http://hledger.org/release-notes))
|----------------------|------------------------|----------------------------------------------------------------------------------------
| [Mac][] | **`brew install hledger`** <br><span class=warnings>[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520)</span> | 1.11
| [Windows][] | Developer binaries: **[1.11](https://ci.appveyor.com/api/buildjobs/rppu7oo05u283p0w/artifacts/hledger.zip)** <!-- or [latest nightly dev build](https://ci.appveyor.com/api/projects/simonmichael/hledger/artifacts/hledger.zip?branch=master) --> <br><span class=warnings> [no hledger-ui](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444),[doesn't work on old windows ?](https://github.com/simonmichael/hledger/issues/774),[many files in PATH causing hangs](https://github.com/simonmichael/hledger/issues/791)<!-- ,[appveyor builds failing](https://github.com/simonmichael/hledger/issues/832) --> </span> | 1.11
| &nbsp; |
| [Arch&nbsp;Linux][] | **`pacman -S hledger`** | 1.11
| CentOS | <span class=warnings>?</span> |
| [Debian][] | **`sudo apt install hledger hledger-ui hledger-web`** | 1.0.1&nbsp;(Stable), 1.5&nbsp;(Testing), 1.10&nbsp;(Unstable)
| [Fedora][] | **`sudo dnf install hledger`** | 1.2&nbsp;(27), 1.4&nbsp;(28), 1.5&nbsp;(Rawhide)
| [Gentoo][] | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`** | 1.11
| RHEL | **`sudo dnf install hledger`** <span class=warnings>?</span> | <span class=warnings>?</span>
| [Ubuntu][] | **`sudo apt install hledger hledger-ui hledger-web`** | 0.26&nbsp;(16.04&nbsp;Xenial), 1.2&nbsp;(18.04&nbsp;Bionic), 1.5&nbsp;(18.10&nbsp;Cosmic)
| [Void&nbsp;Linux][] | **`xbps-install -S hledger hledger-ui hledger-web hledger-api`** | 1.10
| &nbsp; |
| FreeBSD | <span class=warnings>?</span> |
| NetBSD | <span class=warnings>?</span> |
| OpenBSD | Ports: **[https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104)** <br>Third-party binaries: **[OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html)** | 1.10
| &nbsp; |
| [Nix][] | **<span style="font-size:small;">`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`</span>** <br><span class=warnings>[problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613)</span> | 1.5&nbsp;(stable), 1.11&nbsp;(unstable)
| Sandstorm | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)** <br><span class=warnings>[features needed](https://github.com/simonmichael/hledger/issues/425)</span> | 1.9.2
[Mac]: https://formulae.brew.sh/formula/hledger
[Mac contact]: mailto:
[Windows]: https://ci.appveyor.com/project/simonmichael/hledger
[Windows contact]: mailto:simon@joyful.com
[Arch&nbsp;Linux]: https://www.archlinux.org/packages/?sort=&q=hledger
[Arch&nbsp;Linux contact]: mailto:
[Debian]: https://packages.debian.org/search?searchon=names&keywords=hledger
[Debian contact]: mailto:debian-haskell@lists.debian.org
[Fedora]: https://apps.fedoraproject.org/packages/s/hledger
[Fedora contact]: mailto:
[Gentoo]: https://gentoo.zugaina.org/Search?search=hledger
[Gentoo contact]: mailto:
[Ubuntu]: https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=hledger
[Ubuntu contact]: mailto:
[Void&nbsp;Linux]: https://voidlinux.org/packages/?q=hledger
[Void&nbsp;Linux contact]: mailto:
[Nix]: http://hydra.nixos.org/search?query=hledger
[Nix contact]: mailto:
<a name="b"></a>
## b. build the latest release
## b. Build the latest release
Good choice! You'll get the latest features mentioned in the [release notes](release-notes.html).
Good choice! You'll get the latest features and fixes mentioned in the [release notes](release-notes.html),
and you'll be in a good position to give feedback and get support.
Below are three ways to build the latest release, in order of preference.
But first, some tips:
Note, building all hledger tools for the first time could take as much
as an hour, 1G of free memory, and 1G of disk space.
(We're not bloated; we just sit atop a lot of fine Haskell engineering!)
You can kill and restart it without losing progress, and subsequent builds will be much faster.
Also, here are some known build issues and workarounds:\
<span class=warnings>
[arch: advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\
[arch: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\
<!-- [arch: some past problems](https://github.com/simonmichael/hledger/issues/668) -->
[freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\
[openbsd 6: exec permission denied](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html)\
[openbsd: how to get stack](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816)\
</span>
- Building all hledger tools and dependencies for the first time could
take as much as an hour, 1-2G of free memory, and 1-2G of disk
space. You can kill and restart the build without losing progress,
and future builds will be much faster.
- If you get link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"),
you might need to install some extra system packages and try again.
To find the right system package, check the list below, or do a web search for the error message
(and please send updates for this list):
|
|-----------------|-------------------------------------------------------------------
| CentOS: | **`sudo yum install -y libstdc++-devel ncurses-devel zlib-devel`** <!-- https://github.com/simonmichael/hledger/issues/715 -->
| Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`**
| Fedora, RHEL: | **`sudo dnf install -y gmp-devel ncurses-devel`**
- Here are some known build issues and workarounds on certain platforms:
<span class=warnings>
[arch: advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\
[arch: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\
<!-- [arch: some past problems](https://github.com/simonmichael/hledger/issues/668) -->
[freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\
[openbsd 6: exec permission denied](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html)\
[openbsd: how to get stack](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816)\
[windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\
</span>
- If you have trouble, please send me a copy/paste of the output,
including the commands you typed, at least up to the first error, via
[paste](http://paste.hledger.org) + [IRC](http://irc.hledger.org),
or the [issue tracker](http://bugs.hledger.org),
or [email](docs.html#helpfeedback).
<div style="margin-left:1em; margin-bottom:2em;">
<a name="b1"></a>
### b1. with hledger-install
The latest version of our [hledger-install script](https://github.com/simonmichael/hledger/tree/master/hledger-install)
([changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh))
is recommended as the easiest and most-likely-to-just-work build method,
on GNU/linux, mac and freeBSD
(and possibly other BSDs if you install cabal-install first, or on unixlike environments on windows):
On systems with bash installed (mac, linux, unix-like windows..),
if you don't already have stack or cabal, or if you are having trouble with them,
[hledger-install](https://github.com/simonmichael/hledger/tree/master/hledger-install)
is an easy and reliable way to get the latest hledger.
It automates the install process using stack or cabal, avoiding common pitfalls:
- it requires only bash and curl/wget, and internet access
- it automates the install process using stack or cabal, avoiding common pitfalls
- it installs stack and GHC in ~/.stack, if needed
- it installs the latest release of hledger and addon tools in ~/.local/bin or ~/.cabal/bin
Here's the quick, non-secure way to run it:
**`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh | bash`**
And here's the more responsible way:
**`curl -sO https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh`**\
**`less hledger-install.sh`** *# do security review*\
**`bash hledger-install.sh`**
#### Link errors ?
If you see link errors (like "/bin/ld.gold: error: cannot find -ltinfo"),
you might need to install some extra system packages, such as the below, and try again.
Please do a web search for the error and send corrections for this list:
|
|-----------------|-------------------------------------------------------
| Centos: | **`sudo yum install -y libstdc++-devel ncurses-devel zlib-devel`** *# [?](https://github.com/simonmichael/hledger/issues/715)*
| Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`** *# ?*
| Fedora, RHEL: | **`sudo dnf install -y gmp-devel ncurses-devel`** *# ?*
#### Set up $PATH
You should
[extend your \$PATH with `~/.local/bin`](https://docs.haskellstack.org/en/stable/install_and_upgrade/#path) (for stack)
and/or `~/.cabal/bin` (for cabal).
Eg, if you use bash:
**`echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc`**
#### Test
Now you should be able to run the hledger tools and see the expected versions. Eg:
```shell
$ hledger --version
hledger 1.11
$ hledger-ui --version
hledger-ui 1.11
$ hledger web --version
hledger-web 1.11
$ hledger iadd --version
This is hledger-iadd version 1.3.6
```
#### Need help ?
If you are having trouble, please capture a debug log and send it to me via
[paste](http://paste.hledger.org) & [IRC](http://irc.hledger.org),
the [issue tracker](http://bugs.hledger.org),
or [email](docs.html#helpfeedback):
**`bash -x hledger-install.sh 2>&1 | tee hledger-install.log`**
**`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh`**\
**`less hledger-install.sh`** *# satisfy yourself that the script is safe*\
**`bash hledger-install.sh`**
<a name="b2"></a>
### b2. with stack
[`stack`](http://haskell-lang.org/get-started) is the newer and easier of the Haskell build tools.
If you prefer more control or if hledger-install failed, here's how to use stack yourself:
[`stack`](http://haskell-lang.org/get-started) is the more reliable of Haskell's two build tools, for new users.
You need stack 1.7.1 or newer; the latest release is best.
On 64-bit Windows, use the 64-bit version of stack.
The following command installs the main hledger packages;
you can save some time by omitting hledger-ui, hledger-web and/or hledger-api (optional user interfaces).
On Windows, hledger-ui is not available.
To estimate the build time, add `--dry-run`:
1. **Install or upgrade to the latest stack**\
The latest version of stack (1.7.1) is recommended, for best avoidance of ecosystem breakages.
If an older version fails to install hledger, you should install the latest release of stack and try again.
If you can get at least stack 1.3 installed, eg from your system packages, you can usually run `stack upgrade` to quickly upgrade it to the latest.
**`stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 hledger-1.11 hledger-ui-1.11 hledger-web-1.11 hledger-api-1.11`**\
On Windows, the 64-bit version of stack is [preferred](https://github.com/simonmichael/hledger/issues/275#issuecomment-123834252).
2. **`stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 hledger-1.11 hledger-ui-1.11 hledger-web-1.11 hledger-api-1.11`**\
This installs the main hledger packages (and dependencies) from [Stackage](https://www.stackage.org) and/or [Hackage](http://hackage.haskell.org).
You can save some time by omitting hledger-* packages you don't want.\
<span class=warnings>([windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444))</span>
You can kill and restart this without losing progress.
To estimate the build time, add `--dry-run`.
If you see "was generated with a newer version of hpack, please upgrade and try again" errors, you can ignore them.
(Upgrade to the latest stack release to stop them.)
<!--
If you need to build with an older GHC version for some reason, these commands should work
(except on Mac Sierra which [requires at least GHC 8.0.2/lts-8](https://ghc.haskell.org/trac/ghc/ticket/12479)):\
`stack install --resolver=lts-7 hledger-lib-1.3 hledger-1.3 hledger-ui-1.3 hledger-web-1.3 hledger-api-1.3 brick-0.19 vty-5.15.1 data-clist-0.1.2.0` *# (GHC 8.0.1)* \
`stack install --resolver=lts-6 hledger-lib-1.3 hledger-1.3 hledger-ui-1.3 hledger-web-1.3 hledger-api-1.3 megaparsec-5.3.1 brick-0.19 vty-5.15.1 data-clist-0.1.2.0 text-zipper-0.10` *# (GHC 7.10.3)* \
--> <!-- keep synced with stack.yaml files -->
3. **[If you see link errors..](#link-errors)**
4. **[Set up \$PATH](#set-up-path)**
5. **Install addons ?**\
Additional [add-on commands](/hledger.html#third-party-add-ons),
such as
[hledger-diff](http://hackage.haskell.org/package/hledger-diff),
[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd),
[hledger-interest](http://hackage.haskell.org/package/hledger-interest),
and [hledger-irr](http://hackage.haskell.org/package/hledger-irr)
can be installed similarly to the above.
6. **[Test](#test)**
Other [add-ons](/hledger.html#third-party-add-ons)
like
[hledger-diff](http://hackage.haskell.org/package/hledger-diff),
[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd),
or [hledger-interest](http://hackage.haskell.org/package/hledger-interest)
can be installed like so:
**`stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 hledger-diff-0.2.0.14 hledger-iadd-1.3.6 hledger-interest-1.5.2`**\
<a name="b3"></a>
### b3. with cabal
[cabal](https://www.haskell.org/cabal/) is the other Haskell build tool. If you're a cabal expert, feel free to use this in the usual way.
[cabal](https://www.haskell.org/cabal/) is the other Haskell build tool. If you're a cabal expert, use it in the usual way, eg:
**`cabal update`**\
**`cabal install hledger-1.11 hledger-ui-1.11 hledger-web-1.11 hledger-api-1.11 hledger-diff-0.2.0.14 hledger-iadd-1.3.6 hledger-interest-1.5.2`**\
</div>
#### Set up PATH
You will probably see a message about where the executables were installed.
After installation, make sure this install directory is configured in your shell's \$PATH
(preferably near the start of it, to preempt older hledger system packages you may have installed).
The install directory is:
| | on non-Windows systems | on Windows
|--------------------|------------------------|------------------------------------------
| If stack was used | `$HOME/.local/bin` | `%APPDATA%\local\bin` (eg&nbsp;`C:\Users\Joe\AppData\Roaming\local\bin`)
| If cabal was used | `$HOME/.cabal/bin` | `%APPDATA%\cabal\bin`
How to configure \$PATH is platform- and shell-specific.
If you are using bash, this should take care of it:
**`echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc`**
\
#### Test the installation
You should now be able to run the hledger tools (whichever ones you installed) and see the expected versions:
`$`**`hledger --version`**\
`hledger 1.11`\
`$`**`hledger-ui --version`**\
`hledger-ui 1.11`\
`$`**`hledger web --version`**\
`hledger-web 1.11`\
`$`**`hledger iadd --version`**\
`This is hledger-iadd version 1.3.6`\
And you can check that the unit tests pass (just for fun):
`$`**`hledger test`**\
`...`\
`✅ 176 tests passed, no failures! 👍 🎉`\
<a name="c"></a>
## c. build the development version
## c. Build the development version
Also a good choice. Our master branch is stable enough for daily use,
and includes the [latest improvements](https://github.com/simonmichael/hledger/commits/master).
You'll need [git](https://en.wikipedia.org/wiki/Git) and
[`stack`](http://haskell-lang.org/get-started) or [cabal](https://www.haskell.org/cabal/).
Eg, this will build and install all of the main hledger tools using stack:
1. **Install [git](https://en.wikipedia.org/wiki/Git) and [`stack`](#b2)**
2. **`git clone https://github.com/simonmichael/hledger`**
3. **`cd hledger`**
4. **`stack install [hledger]`** *# build all (or, just the command line UI)*
5. **[If you see link errors..](#link-errors)**
6. **[Set up \$PATH](#set-up-path)**
7. **[Test](#test)**
(Development versions will have a .99 suffix, 1.10.99 means 1.11-dev)
**`git clone https://github.com/simonmichael/hledger`**\
**`cd hledger`**\
**`stack install`**\
cabal users may find the `cabal-install.sh` or `cabal.project` files useful.
See the troubleshooting, PATH, and test tips [above](#b).
Note development builds will have a .99 suffix (eg 1.11.99 means "1.12-dev").

View File

@ -57,15 +57,14 @@ is updated frequently; here are the
[latest changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh).
<!--
## Latest minor release
<http://hackage.haskell.org/package/hledger-lib-1.9.1/changelog>
<http://hackage.haskell.org/package/hledger-1.9.1/changelog>
<http://hackage.haskell.org/package/hledger-ui-1.9.1/changelog>
<http://hackage.haskell.org/package/hledger-web-1.9.2/changelog>
<http://hackage.haskell.org/package/hledger-api-1.9.1/changelog>
-->
<http://hackage.haskell.org/package/hledger-lib-1.11.1/changelog>
<http://hackage.haskell.org/package/hledger-1.11.1/changelog>
<http://hackage.haskell.org/package/hledger-ui-1.11.1/changelog>
<http://hackage.haskell.org/package/hledger-web-1.11.1/changelog>
<http://hackage.haskell.org/package/hledger-api-1.11.1/changelog>
## 2018/9/30 hledger 1.11
@ -81,9 +80,9 @@ fixes
<!-- [project](#project-wide-changes-for-1.11) -->
[hledger](#hledger-1.11-1)
<!-- | [hledger-ui](#hledger-ui-1.11) -->
<!-- | [hledger-web](#hledger-web-1.11) -->
<!-- | [hledger-api](#hledger-api-1.11) -->
| [hledger-ui](#hledger-ui-1.11)
| [hledger-web](#hledger-web-1.11)
| [hledger-api](#hledger-api-1.11)
| [hledger-lib](#hledger-lib-1.11)
| [credits](#credits-1.11)
@ -115,7 +114,7 @@ fixes
* prices: query arguments are now supported. Prices can be filtered by
date, and postings providing transaction prices can also be filtered.
* rewrite: help clarifies relation to print --auto (#745)
* rewrite: help clarifies relation to print --auto ([#745](https://github.com/simonmichael/hledger/issues/745))
* roi: a new command to compute return on investment, based on hledger-irr
@ -124,7 +123,7 @@ fixes
* csv: We use a more robust CSV lib (cassava) and now support
non-comma separators, eg --separator ';' (experimental, this flag
will probably become a CSV rule) (#829)
will probably become a CSV rule) ([#829](https://github.com/simonmichael/hledger/issues/829))
* csv: interpolated field names in values are now properly case insensitive, so
this works:
@ -133,20 +132,36 @@ fixes
date %Transaction_Date
* journal: D (default commodity) directives no longer break multiplier
amounts in transaction modifiers (AKA automated postings) (#860)
amounts in transaction modifiers (AKA automated postings) ([#860](https://github.com/simonmichael/hledger/issues/860))
* journal: "Automated Postings" have been renamed to "Transaction Modifiers".
* journal: transaction comments in transaction modifier rules are now parsed correctly. (#745)
* journal: transaction comments in transaction modifier rules are now parsed correctly. ([#745](https://github.com/simonmichael/hledger/issues/745))
* journal: when include files form a cycle, we give an error instead
of hanging.
* upper-case day/month names in period expressions no longer give an error (#847, #852)
* upper-case day/month names in period expressions no longer give an error ([#847](https://github.com/simonmichael/hledger/issues/847), [#852](https://github.com/simonmichael/hledger/issues/852))
### hledger-ui 1.11
* uses hledger-lib 1.11
### hledger-web 1.11
* uses hledger-lib 1.11
### hledger-api 1.11
* uses hledger-lib 1.11
### hledger-lib 1.11
* compilation now works when locale is unset (#849)
* compilation now works when locale is unset ([#849](https://github.com/simonmichael/hledger/issues/849))
* all unit tests have been converted from HUnit+test-framework to easytest
@ -260,7 +275,7 @@ misc fixes
* readJournalFile(s) cleanup, these now use InputOpts
* doctests now run a bit faster (#802)
* doctests now run a bit faster ([#802](https://github.com/simonmichael/hledger/issues/802))
### hledger 1.10
@ -268,16 +283,16 @@ misc fixes
* journal: many parse error messages have become more informative, and
some now show the source line and error location.
* journal: `;tag:` is no longer parsed as a tag named ";tag" (#655)
* journal: `;tag:` is no longer parsed as a tag named ";tag" ([#655](https://github.com/simonmichael/hledger/issues/655))
* journal: transaction price amounts having their own price amounts is
now a parse error
* journal: amounts with space as digit group separator and trailing whitespace
now parse correctly (#780)
now parse correctly ([#780](https://github.com/simonmichael/hledger/issues/780))
* journal: in amounts containing digits and a single space, the space
is now interpreted as a digit group separator, not a decimal separator (#749)
is now interpreted as a digit group separator, not a decimal separator ([#749](https://github.com/simonmichael/hledger/issues/749))
* journal: in commodity/format/D directives, the amount must now include a decimal separator.
@ -298,7 +313,7 @@ misc fixes
semantics, especially with multiple files. The manual now describes
their behaviour precisely.
* journal: `alias` and `apply account` directives now affect `account` directives (#825)
* journal: `alias` and `apply account` directives now affect `account` directives ([#825](https://github.com/simonmichael/hledger/issues/825))
* journal: periodic transactions can now have all the usual transaction fields
(status mark, code, description, comment), for generating more expressive
@ -308,18 +323,18 @@ misc fixes
expression attached as a tag named "recur".
* journal: periodic transactions now start on the first instance of the
recurring date, rather than the day after the last regular transaction (#750)
recurring date, rather than the day after the last regular transaction ([#750](https://github.com/simonmichael/hledger/issues/750))
* journal: periodic transaction rules now allow period expressions relative to today's date
* csv: amount-in/amount-out errors are more detailed
* balance: --drop is now ignored when not in flat mode,
rather than producing a corrupted report (#754)
rather than producing a corrupted report ([#754](https://github.com/simonmichael/hledger/issues/754))
* budget: --drop now preserves the <unbudgeted> top-level account in --budget reports
* register: in CSV output, the code field is now included (#746)
* register: in CSV output, the code field is now included ([#746](https://github.com/simonmichael/hledger/issues/746))
* smart dates now allow the YYYYMM format, and are better documented
@ -328,7 +343,7 @@ misc fixes
### hledger-ui 1.10
* the effect of --value, --forecast, and --anon flags is now preserved on reload (#753)
* the effect of --value, --forecast, and --anon flags is now preserved on reload ([#753](https://github.com/simonmichael/hledger/issues/753))
* edit-at-transaction-position is now also supported when $EDITOR is neovim
@ -422,7 +437,7 @@ found when reading files.
customize sorting. bal/bs/cf/is will sort accounts by account code,
if any, then account name.
* journal: support scientific number notation (#704, #706)
* journal: support scientific number notation ([#704](https://github.com/simonmichael/hledger/issues/704), [#706](https://github.com/simonmichael/hledger/issues/706))
* csv: reading a CSV file containing no records is no longer an error
@ -530,23 +545,23 @@ Alvaro Fernando García.
### hledger-lib 1.5
* -V/--value uses today's market prices by default, not those of last transaction date. #683, #648)
* -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648))
* csv: allow balance assignment (balance assertion only, no amount) in csv records (Nadrieril)
* journal: allow space as digit group separator character, #330 (Mykola Orliuk)
* journal: allow space as digit group separator character, [#330](https://github.com/simonmichael/hledger/issues/330) (Mykola Orliuk)
* journal: balance assertion errors now show line of failed assertion posting, #481 (Sam Jeeves)
* journal: balance assertion errors now show line of failed assertion posting, [#481](https://github.com/simonmichael/hledger/issues/481) (Sam Jeeves)
* journal: better errors for directives, #402 (Mykola Orliuk)
* journal: better errors for directives, [#402](https://github.com/simonmichael/hledger/issues/402) (Mykola Orliuk)
* journal: better errors for included files, #660 (Mykola Orliuk)
* journal: better errors for included files, [#660](https://github.com/simonmichael/hledger/issues/660) (Mykola Orliuk)
* journal: commodity directives in parent files are inherited by included files, #487 (Mykola Orliuk)
* journal: commodity directives in parent files are inherited by included files, [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk)
* journal: commodity directives limits precision even after -B, #509 (Mykola Orliuk)
* journal: commodity directives limits precision even after -B, [#509](https://github.com/simonmichael/hledger/issues/509) (Mykola Orliuk)
* journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. #399, #487 (Mykola Orliuk)
* journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. [#399](https://github.com/simonmichael/hledger/issues/399), [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk)
* journal: numbers are parsed more strictly (Mykola Orliuk)
@ -572,7 +587,7 @@ Alvaro Fernando García.
* --forecast generates Ledger-style periodic transactions in the future (Dmitry Astapov, Mykola Orliuk)
* -V/--value uses today's market prices by default, not those of last transaction date. #683, #648
* -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648)
* add: suggest implied (parent) and declared (by account directives) account names also
@ -585,14 +600,14 @@ Alvaro Fernando García.
* import: the output of --dry-run is now valid journal format
* print: -B shows converted amounts again, as in 1.1, even without
-x. #551 (Mykola Orliuk, Simon Michael)
-x. [#551](https://github.com/simonmichael/hledger/issues/551) (Mykola Orliuk, Simon Michael)
* tag: the first argument now filters tag names, additional arguments
filter transactions (#261)
filter transactions ([#261](https://github.com/simonmichael/hledger/issues/261))
### hledger-ui 1.5
* fix help -> view manual (on posix platforms) #623
* fix help -> view manual (on posix platforms) [#623](https://github.com/simonmichael/hledger/issues/623)
* support -V/--value, --forecast, --auto
@ -664,7 +679,7 @@ all major hledger packages. See http://hledger.org/download for details.
* add readJournalFile[s]WithOpts, with simpler arguments and support
for detecting new transactions since the last read.
* query: add payee: and note: query terms, improve description/payee/note docs (Jakub Zárybnický, Simon Michael, #598, #608)
* query: add payee: and note: query terms, improve description/payee/note docs (Jakub Zárybnický, Simon Michael, [#598](https://github.com/simonmichael/hledger/issues/598), [#608](https://github.com/simonmichael/hledger/issues/608))
* journal, cli: make trailing whitespace significant in regex account aliases
Trailing whitespace in the replacement part of a regular expression
@ -685,7 +700,7 @@ This simplifies things and facilitates future improvements.
* deps: allow ansi-terminal 0.7
* deps: add missing parsec lower bound, possibly related to #596, fpco/stackage#2835
* deps: add missing parsec lower bound, possibly related to [#596](https://github.com/simonmichael/hledger/issues/596), [fpco/stackage#2835](https://github.com/fpco/stackage/issues/2835)
* deps: drop oldtime flag, require time 1.5+
@ -695,18 +710,18 @@ This simplifies things and facilitates future improvements.
<!-- 1.3.1 (2017/8/25) -->
* Fix a bug with -H showing nothing for empty periods (#583, Nicholas Niro)
* Fix a bug with -H showing nothing for empty periods ([#583](https://github.com/simonmichael/hledger/issues/583), Nicholas Niro)
This patch fixes a bug that happened when using the -H option on
a period without any transaction. Previously, the behavior was no
output at all even though it should have shown the previous ending balances
of past transactions. (This is similar to previously using -H with -E,
but with the extra advantage of not showing empty accounts)
* allow megaparsec 6 (#594)
* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594))
* allow megaparsec-6.1 (Hans-Peter Deifel)
* fix test suite with Cabal 2 (#596)
* fix test suite with Cabal 2 ([#596](https://github.com/simonmichael/hledger/issues/596))
### hledger 1.4
@ -720,9 +735,9 @@ but with the extra advantage of not showing empty accounts)
* cli: accept -NUM as a shortcut for --depth=NUM (eg: -2)
* cli: improve command-line help for --date2 (#604)
* cli: improve command-line help for --date2 ([#604](https://github.com/simonmichael/hledger/issues/604))
* cli: make --help and -h the same, drop --man and --info for now (#579)
* cli: make --help and -h the same, drop --man and --info for now ([#579](https://github.com/simonmichael/hledger/issues/579))
* help: offers multiple formats, accepts topic substrings.
The separate info/man commands have been dropped. help now
@ -734,7 +749,7 @@ but with the extra advantage of not showing empty accounts)
- otherwise it prints on stdout
- (and it always prints on stdout when piped).
You can override this with the `--info`/`--man`/`--pager`/`--cat` flags.
(#579)
([#579](https://github.com/simonmichael/hledger/issues/579))
* bal/bs/cf/is: --sort-amount/-S sorts by largest amount instead of
account name
@ -747,9 +762,9 @@ but with the extra advantage of not showing empty accounts)
single final blank line. Previously, amounts wider than the column
headings would be separated by only a single space.
* bs/is: don't let an empty subreport disable the grand totals (fixes #588)
* bs/is: don't let an empty subreport disable the grand totals (fixes [#588](https://github.com/simonmichael/hledger/issues/588))
* cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, #584)
* cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, [#584](https://github.com/simonmichael/hledger/issues/584))
* new balancesheetequity command: like balancesheet but also shows
equity accounts (Nicholas Niro)
@ -785,9 +800,9 @@ but with the extra advantage of not showing empty accounts)
<!-- 1.3.1 (2017/8/25) -->
* bs/is: don't let an empty subreport disable the grand totals (#588)
* bs/is: don't let an empty subreport disable the grand totals ([#588](https://github.com/simonmichael/hledger/issues/588))
* allow megaparsec 6 (#594)
* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594))
* allow megaparsec-6.1 (Hans-Peter Deifel)
@ -797,7 +812,7 @@ but with the extra advantage of not showing empty accounts)
* a @FILE argument reads flags & args from FILE, one per line
* enable --pivot and --anon options, like hledger CLI (#474) (Jakub Zárybnický)
* enable --pivot and --anon options, like hledger CLI ([#474](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický)
* accept -NUM as a shortcut for --depth NUM
@ -807,7 +822,7 @@ but with the extra advantage of not showing empty accounts)
<!-- # 1.3.1 (2017/8/25) -->
* allow megaparsec 6 (#594, Simon Michael, Hans-Peter Deifel)
* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594), Simon Michael, Hans-Peter Deifel)
* allow megaparsec-6.1 (Hans-Peter Deifel)
@ -821,9 +836,9 @@ but with the extra advantage of not showing empty accounts)
* a @FILE argument reads flags & args from FILE, one per line
* enable --pivot and --anon options, like hledger CLI (#474) (Jakub Zárybnický)
* enable --pivot and --anon options, like hledger CLI ([#474](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický)
* web: Make "Add transaction" button tabbable (#430) (Jakub Zárybnický)
* web: Make "Add transaction" button tabbable ([#430](https://github.com/simonmichael/hledger/issues/430)) (Jakub Zárybnický)
* accept -NUM as a shortcut for --depth NUM
@ -835,7 +850,7 @@ but with the extra advantage of not showing empty accounts)
<!-- # 1.3.1 (2017/8/25) -->
* allow megaparsec 6 (#594, Simon Michael, Hans-Peter Deifel)
* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594), Simon Michael, Hans-Peter Deifel)
* allow megaparsec-6.1 (Hans-Peter Deifel)
@ -843,7 +858,7 @@ but with the extra advantage of not showing empty accounts)
### hledger-api 1.4
* api: add support for swagger2 2.1.5+ (fixes #612)
* api: add support for swagger2 2.1.5+ (fixes [#612](https://github.com/simonmichael/hledger/issues/612))
<!-- # 1.3.1 (2017/8/25) -->
@ -911,19 +926,19 @@ make changelog-draft shows the commits since last tag as org nodes
The "uncleared" transaction/posting status (and associated UI flags
and keys) has been renamed to "unmarked" to remove ambiguity and
confusion. See the issue and linked mail list discussion for more
background. (#564)
background. ([#564](https://github.com/simonmichael/hledger/issues/564))
#### csv format
In CSV conversion rules, assigning to the "balance" field name
creates balance assertions (#537, Dmitry Astapov).
creates balance assertions ([#537](https://github.com/simonmichael/hledger/issues/537), Dmitry Astapov).
Doubled minus signs are handled more robustly (fixes #524, Nicolas
Doubled minus signs are handled more robustly (fixes [#524](https://github.com/simonmichael/hledger/issues/524), Nicolas
Wavrant, Simon Michael)
#### Misc
Multiple status: query terms are now OR'd together. (#564)
Multiple status: query terms are now OR'd together. ([#564](https://github.com/simonmichael/hledger/issues/564))
Deps: allow megaparsec 5.3.
@ -936,21 +951,21 @@ and keys, have been renamed to "unmarked" to remove ambiguity and
confusion. This means that we have dropped the `--uncleared` flag,
and our `-U` flag now matches only unmarked things and not pending
ones. See the issue and linked mail list discussion for more
background. (#564)
background. ([#564](https://github.com/simonmichael/hledger/issues/564))
Also the -P short flag has been added for --pending, and the -U/-P/-C
flags can be combined.
bs/is: fix "Ratio has zero denominator" error (#535)
bs/is: fix "Ratio has zero denominator" error ([#535](https://github.com/simonmichael/hledger/issues/535))
bs/is/cf: fix --flat (#552) (Justin Le, Simon Michael)
bs/is/cf: fix --flat ([#552](https://github.com/simonmichael/hledger/issues/552)) (Justin Le, Simon Michael)
bal/bs/is/cf: show negative amounts in red (Simon Michael, Justin Le).
These commands now show negative amounts in red, when hledger detects
that ANSI codes are supported, (ie when TERM is not "dumb" and stdout
is not being redirected or piped).
print: show pending mark on postings (fixes #563).
print: show pending mark on postings (fixes [#563](https://github.com/simonmichael/hledger/issues/563)).
A pending mark on postings is now displayed, just like a cleared mark.
Also there will now be a space between the mark and account name.
@ -964,7 +979,7 @@ prices: add --inverted-costs flag, sort output, increase precision
rewrite: add support for rewriting multipler postings into different
commodities. For example, postings in hours can be used to generate
postings in USD. (#557) (Christian G. Warden)
postings in USD. ([#557](https://github.com/simonmichael/hledger/issues/557)) (Christian G. Warden)
`make addons` compiles the experimental add-ons.
@ -976,11 +991,11 @@ The "uncleared" status, and associated UI flags and keys, have been
renamed to "unmarked" to remove ambiguity and confusion. This means
that we have dropped the `--uncleared` flag, and our `-U` flag now
matches only unmarked things and not pending ones. See the issue and
linked mail list discussion for more background. (#564)
linked mail list discussion for more background. ([#564](https://github.com/simonmichael/hledger/issues/564))
The P key toggles pending mode, consistent with U (unmarked) and C
(cleared). There is also a temporary --status-toggles flag for testing
other toggle styles; see `hledger-ui -h`. (#564)
other toggle styles; see `hledger-ui -h`. ([#564](https://github.com/simonmichael/hledger/issues/564))
There is now less "warping" of selection when lists change:
@ -1013,7 +1028,7 @@ Emacs movement keys are now supported, as well as VI keys.
In the transaction screen, amounts are now better aligned, eg when
there are posting status marks or virtual postings.
Deps: allow brick 0.19 (#575, Felix Yan, Simon Michael)
Deps: allow brick 0.19 ([#575](https://github.com/simonmichael/hledger/issues/575), Felix Yan, Simon Michael)
### hledger-web 1.3
@ -1067,7 +1082,7 @@ Michael Walker.
bump stack config to latest lts,
bump brick to 0.15.2 to allow hledger-iadd install in hledger dir,
update cabal files to latest hpack 0.17.0/stack 1.4 format (#512),
update cabal files to latest hpack 0.17.0/stack 1.4 format ([#512](https://github.com/simonmichael/hledger/issues/512)),
use more accurate license tag in Cabal file (Peter Simons).
#### Finance
@ -1133,13 +1148,13 @@ been disabled, reducing build dependencies.
#### Misc
Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% (#483) (Mykola Orliuk)
Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% ([#483](https://github.com/simonmichael/hledger/issues/483)) (Mykola Orliuk)
Fix a few spaceleaks (#413) (Moritz Kiefer)
Fix a few spaceleaks ([#413](https://github.com/simonmichael/hledger/issues/413)) (Moritz Kiefer)
Add Ledger.Parse.Text to package.yaml, fixing a potential build failure.
Allow megaparsec 5.2 (#503)
Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503))
Rename optserror -> usageError, consolidate with other error functions
@ -1148,7 +1163,7 @@ Rename optserror -> usageError, consolidate with other error functions
#### CLI
"hledger" and "hledger -h" now print a better organised commands list
and general usage message respectively (#297).
and general usage message respectively ([#297](https://github.com/simonmichael/hledger/issues/297)).
The common reporting flags can now be used anywhere on the command line.
@ -1212,7 +1227,7 @@ handles prices better, and adds balance assertions (Mykola Orliuk).
The rewrite command is more robust and powerful (Mykola Orliuk):
- in addition to command-line rewrite options, it understands rewrite rules
defined in the journal, similar to Ledger's automated transactions (#99).
defined in the journal, similar to Ledger's automated transactions ([#99](https://github.com/simonmichael/hledger/issues/99)).
Eg:
```journal
= ^income
@ -1237,7 +1252,7 @@ The rewrite command is more robust and powerful (Mykola Orliuk):
#### balance
A new --pretty-tables option uses unicode characters for rendering
table borders in multicolumn reports (#522) (Moritz Kiefer)
table borders in multicolumn reports ([#522](https://github.com/simonmichael/hledger/issues/522)) (Moritz Kiefer)
#### balancesheet/cashflow/incomestatement
@ -1246,43 +1261,43 @@ and generally having the same features as the balance command. (Justin Le)
balancesheet has always ignored a begin date specified with a `-b` or
`-p` option; now it also ignores a begin date specified with a `date:`
query. (Related discussion at #531)
query. (Related discussion at [#531](https://github.com/simonmichael/hledger/issues/531))
#### print
The output of print is now always a valid journal (fixes #465) (Mykola Orliuk).
The output of print is now always a valid journal (fixes [#465](https://github.com/simonmichael/hledger/issues/465)) (Mykola Orliuk).
print now tries to preserves the format of implicit/explicit balancing
amounts and prices, by default. To print with all amounts explicit,
use the new `--explicit/-x` flag (fixes #442). (Mykola Orliuk)
use the new `--explicit/-x` flag (fixes [#442](https://github.com/simonmichael/hledger/issues/442)). (Mykola Orliuk)
Don't lose the commodity of zero amounts/zero balance assertions (fixes #475) (Mykola Orliuk)
Don't lose the commodity of zero amounts/zero balance assertions (fixes [#475](https://github.com/simonmichael/hledger/issues/475)) (Mykola Orliuk)
#### Misc
Fix a regression in the readability of option parsing errors (#478) (Hans-Peter Deifel)
Fix a regression in the readability of option parsing errors ([#478](https://github.com/simonmichael/hledger/issues/478)) (Hans-Peter Deifel)
Fix an example in Cli/Main.hs (Steven R. Baker)
Allow megaparsec 5.2 (#503)
Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503))
### hledger-ui 1.2
Fix a pattern match failure when pressing E on the transaction screen (fixes #508)
Fix a pattern match failure when pressing E on the transaction screen (fixes [#508](https://github.com/simonmichael/hledger/issues/508))
Accounts with ? in name had empty registers (fixes #498) (Bryan Richter)
Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter)
Allow brick 0.16 (Joshua Chia) and brick 0.17/vty 0.15 (Peter Simons)
Allow megaparsec 5.2 (fixes #503)
Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503))
Allow text-zipper 0.10
### hledger-web 1.2
Accounts with ? in name had empty registers (fixes #498) (Bryan Richter)
Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter)
Allow megaparsec 5.2 (fixes #503)
Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503))
<!-- ### hledger-api 1.2 -->

81
stack-ghc8.6.yaml Normal file
View File

@ -0,0 +1,81 @@
# stack build plan using GHC 8.6.1 and recent stackage nightly (WIP)
resolver: nightly-2018-10-08
packages:
- hledger-lib
- hledger
- hledger-ui
- hledger-web
- hledger-api
allow-newer: true
extra-deps:
# hledger-lib
- cassava-megaparsec-1.0.0
- easytest-0.2
- uglymemo-0.1.0.1
# hledger
- control-monad-free-0.6.2
- haskell-src-meta-0.8.0.3
- here-1.2.13
- lucid-2.9.10
- statistics-0.14.0.2
- vector-binary-instances-0.2.5
- wizards-1.0.2
# hledger-ui
- brick-0.41.2
- config-ini-0.2.3.0
- data-clist-0.1.2.1
- text-zipper-0.10.1
- vty-5.24
- word-wrap-0.4.1
# hledger-web
- asn1-encoding-0.9.5
- asn1-parse-0.9.4
- asn1-types-0.3.2
- byteable-0.1.1
- cipher-aes-0.2.11
- clientsession-0.9.1.2
- connection-0.2.8
- cprng-aes-0.6.1
- crypto-cipher-types-0.0.9
- crypto-random-0.0.9
- cryptonite-conduit-0.2.2
- email-validate-2.3.2.7
- http-client-tls-0.3.5.3
- http-conduit-2.3.2
- json-0.9.2
- pem-0.2.4
- persistent-2.8.2
- persistent-template-2.5.4
- securemem-0.1.10
- skein-1.0.9.4
- tls-1.4.1
- wai-app-static-3.1.6.2
- wai-handler-launch-3.0.2.4
- x509-1.7.4
- x509-store-1.6.6
- x509-system-1.6.6
- x509-validation-1.6.10
- yesod-1.6.0
- yesod-core-1.6.6
- yesod-form-1.6.2
- yesod-persistent-1.6.0
- yesod-static-1.6.0
# hledger-api
- http-media-0.7.1.3
- servant-0.14.1
- servant-server-0.14.1
- servant-swagger-1.1.5
- swagger2-2.3
nix:
pure: false
packages: [perl gmp ncurses zlib]

View File

@ -104,3 +104,22 @@ hledger register -b 2015-12 -e 2017-02 -f - assets:cash --forecast
2017/01/01 assets:cash $10000 $9390
>>>2
>>>=0
# TODO
# 5. Y should affect the partial date in this periodic transaction.
# Also the recur tag's value ?
#hledger -f - print --forecast desc:forecast
#<<<
#Y 2000
#
#~ 2/1 forecast
#
#; a real transaction to set --forecast's start date
#2000/1/1 real
#
#>>>
#2000/02/01 forecast
# ; recur: 2000/2/1
#
#>>>2
#>>>=0

View File

@ -20,7 +20,7 @@
# the command name.
#
# - RawOpts: the command name, options, and arguments parsed by cmdargs,
# as an assocation list of strings. Eg:
# as an association list of strings. Eg:
# [("command","register"),("args","a"),("debug",""),("help","")]
#
# - CliOpts: a RawOpts, plus the same information with some additional