mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
Merge branch 'master' into ExceptTLayer
This commit is contained in:
commit
2cbc41e088
@ -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
|
||||
|
||||
|
2
Shake.hs
2
Shake.hs
@ -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
|
||||
|
106
doc/ANNOUNCE
106
doc/ANNOUNCE
@ -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
|
||||
|
129
doc/CHANGES
129
doc/CHANGES
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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"
|
||||
|
@ -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+
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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.
|
||||
.
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -249,4 +249,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.10.99 September 2018 hledger_csv(5)
|
||||
hledger 1.11.99 September 2018 hledger_csv(5)
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -1151,4 +1151,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.10.99 September 2018 hledger_journal(5)
|
||||
hledger 1.11.99 September 2018 hledger_journal(5)
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -77,4 +77,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.10.99 September 2018 hledger_timeclock(5)
|
||||
hledger 1.11.99 September 2018 hledger_timeclock(5)
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -124,4 +124,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.10.99 September 2018 hledger_timedot(5)
|
||||
hledger 1.11.99 September 2018 hledger_timedot(5)
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
120
hledger/CHANGES
120
hledger/CHANGES
@ -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).
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -2230,4 +2230,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.10.99 September 2018 hledger(1)
|
||||
hledger 1.11.99 September 2018 hledger(1)
|
||||
|
@ -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
|
||||
|
@ -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\$
|
||||
|
||||
|
@ -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\$
|
||||
|
||||
|
@ -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\$
|
||||
|
||||
|
@ -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\$
|
||||
|
||||
|
@ -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\$
|
||||
|
||||
|
BIN
site/doc/1.11/images/.DS_Store
vendored
BIN
site/doc/1.11/images/.DS_Store
vendored
Binary file not shown.
BIN
site/doc/1.11/images/hledger-web/.DS_Store
vendored
BIN
site/doc/1.11/images/hledger-web/.DS_Store
vendored
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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\$
|
||||
|
||||
|
@ -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\$
|
||||
|
||||
|
337
site/download.md
337
site/download.md
@ -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, Ubuntu: | **`sudo apt install hledger hledger-ui hledger-web`**
|
||||
| Fedora, 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 version<br>([as of 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
|
||||
| |
|
||||
| [Arch Linux][] | **`pacman -S hledger`** | 1.11
|
||||
| CentOS | <span class=warnings>?</span> |
|
||||
| [Debian][] | **`sudo apt install hledger hledger-ui hledger-web`** | 1.0.1 (Stable), 1.5 (Testing), 1.10 (Unstable)
|
||||
| [Fedora][] | **`sudo dnf install hledger`** | 1.2 (27), 1.4 (28), 1.5 (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 (16.04 Xenial), 1.2 (18.04 Bionic), 1.5 (18.10 Cosmic)
|
||||
| [Void Linux][] | **`xbps-install -S hledger hledger-ui hledger-web hledger-api`** | 1.10
|
||||
| |
|
||||
| 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
|
||||
| |
|
||||
| [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 (stable), 1.11 (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 Linux]: https://www.archlinux.org/packages/?sort=&q=hledger
|
||||
[Arch 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 Linux]: https://voidlinux.org/packages/?q=hledger
|
||||
[Void 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 `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").
|
||||
|
||||
|
@ -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
81
stack-ghc8.6.yaml
Normal 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]
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user