Merge branch 'master' into ExceptTLayer
This commit is contained in:
commit
2cbc41e088
@ -43,8 +43,11 @@ install:
|
|||||||
# install latest stack release
|
# install latest stack release
|
||||||
#- curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
|
#- curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
|
||||||
#- 7z x stack.zip stack.exe
|
#- 7z x stack.zip stack.exe
|
||||||
# - copy stack.exe stack-release.exe
|
|
||||||
# - stack --version
|
# 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
|
# install latest stack 4125-cabal-style-build-tools branch
|
||||||
# - set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
|
# - 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
|
# - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe
|
||||||
|
|
||||||
# install latest stack master
|
# 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
|
# 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
|
# - 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 C:\Users\appveyor\AppData\Roaming\local\bin\stack-master.exe
|
||||||
# - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe
|
# - copy C:\Users\appveyor\AppData\Roaming\local\bin\stack.exe stack.exe
|
||||||
- stack --version
|
#- stack --version
|
||||||
|
|
||||||
#- dir
|
#- dir
|
||||||
|
|
||||||
#
|
#
|
||||||
# install ghc
|
# install ghc
|
||||||
#- stack setup
|
#- stack setup
|
||||||
# use ghc 8.2 to avoid a hledger-web -> network/stack build issue on windows,
|
# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue
|
||||||
# network 2.7.0.1 should work around it when released
|
|
||||||
# https://github.com/haskell/network/issues/313
|
# https://github.com/haskell/network/issues/313
|
||||||
# https://github.com/commercialhaskell/stack/issues/3944
|
# 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%
|
#- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
|
||||||
#- stack install shelltestrunner
|
#- stack install shelltestrunner
|
||||||
|
|
||||||
@ -79,9 +83,13 @@ install:
|
|||||||
# hledger-ui's vty dep isn't available on windows
|
# hledger-ui's vty dep isn't available on windows
|
||||||
# hledger-api not tried recently
|
# hledger-api not tried recently
|
||||||
build_script:
|
build_script:
|
||||||
#- stack build --test --copy-bins --local-bin-path=. hledger hledger-web
|
# 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 --stack-yaml=stack-ghc8.2.yaml
|
#- 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
|
- 7z a -tzip hledger.zip hledger.exe hledger-web.exe
|
||||||
|
|
||||||
#- hledger-install/hledger-install.sh
|
#- hledger-install/hledger-install.sh
|
||||||
#- make stacktest
|
#- make stacktest
|
||||||
|
|
||||||
|
|||||||
2
Shake.hs
2
Shake.hs
@ -138,7 +138,7 @@ main = do
|
|||||||
webmanpages = ["site" </> manpageNameToUri m <.> "md" | m <- manpageNames]
|
webmanpages = ["site" </> manpageNameToUri m <.> "md" | m <- manpageNames]
|
||||||
|
|
||||||
-- versions of documentation (excluding 0.27)
|
-- 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
|
-- manuals rendered to html by pandoc
|
||||||
webhtmlpages
|
webhtmlpages
|
||||||
|
|||||||
106
doc/ANNOUNCE
106
doc/ANNOUNCE
@ -1,73 +1,65 @@
|
|||||||
hledger (http://hledger.org) is a friendly, robust, cross-platform
|
hledger is a robust, cross-platform "plain text accounting" tool, for
|
||||||
program for tracking money, time or other commodities, using
|
tracking money, time, stocks, cryptocurrencies or any other commodity,
|
||||||
double-entry accounting, simple plain text file formats, and
|
using double-entry accounting, private or shared plain text files,
|
||||||
command-line, curses or web UIs.
|
revision control, and command-line, curses or web UIs.
|
||||||
|
|
||||||
I'm very pleased to announce hledger 1.10, including work by release
|
I'm pleased to announce the on-schedule release of hledger 1.12.
|
||||||
contributors:
|
Thanks to release contributors: A, B.
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
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
|
Full release notes are at http://hledger.org/release-notes.html#hledger-1.12
|
||||||
$ less hledger-install.sh # do security review
|
|
||||||
|
|
||||||
|
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
|
$ 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 add # record some transactions, with guidance
|
||||||
|
$ hledger print # show recorded transactions
|
||||||
$ hledger -h # quick help
|
$ hledger balance # show totals by account
|
||||||
$ hledger help # list built-in manuals
|
$ hledger -h # show quick help
|
||||||
$ hledger add # record some transactions
|
|
||||||
$ hledger # list available commands
|
$ hledger # list available commands
|
||||||
|
$ hledger help # list built-in manuals
|
||||||
|
|
||||||
Next, I encourage you to at least skim the tutorials and docs at
|
To get oriented, see the tutorials and manuals at http://hledger.org .
|
||||||
http://hledger.org.
|
To get help, say hello and ask questions in the #hledger IRC channel
|
||||||
|
on Freenode, accessible at http://irc.hledger.org .
|
||||||
Say hello and ask questions in the #hledger IRC channel on Freenode:
|
New users and all forms of help are always welcome!
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Best!
|
Best,
|
||||||
-Simon
|
-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_dnl
|
||||||
m4_define({{_author_}}, {{}})m4_dnl
|
m4_define({{_author_}}, {{}})m4_dnl
|
||||||
m4_define({{_monthyear_}}, {{September 2018}})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
|
||||||
m4_dnl Links to dev and recent release versions of a manual.
|
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.
|
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.
|
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)
|
# 1.11 (2018/9/30)
|
||||||
|
|
||||||
* use hledger 1.11
|
* 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
|
-- see: https://github.com/sol/hpack
|
||||||
--
|
--
|
||||||
-- hash: 7f5a11be3e9db0d4fcebb5b663ee988461de6d815042a7785f9076e083dde205
|
-- hash: 79786a2effbdf3258e88ee988c7cbbab5951550bac768bab7cbd1c9080fd198d
|
||||||
|
|
||||||
name: hledger-api
|
name: hledger-api
|
||||||
version: 1.11
|
version: 1.11.99
|
||||||
synopsis: Web API server for the hledger accounting tool
|
synopsis: Web API server for the hledger accounting tool
|
||||||
description: This is a simple web API server for hledger data.
|
description: This is a simple web API server for hledger data.
|
||||||
It comes with a series of simple client-side web app examples.
|
It comes with a series of simple client-side web app examples.
|
||||||
@ -45,7 +45,7 @@ executable hledger-api
|
|||||||
other-modules:
|
other-modules:
|
||||||
Paths_hledger_api
|
Paths_hledger_api
|
||||||
ghc-options: -threaded
|
ghc-options: -threaded
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
build-depends:
|
build-depends:
|
||||||
Decimal
|
Decimal
|
||||||
, aeson
|
, aeson
|
||||||
@ -55,8 +55,8 @@ executable hledger-api
|
|||||||
, data-default >=0.5
|
, data-default >=0.5
|
||||||
, docopt
|
, docopt
|
||||||
, either
|
, either
|
||||||
, hledger >=1.11 && <1.12
|
, hledger >=1.11.99 && <1.12
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, microlens >=0.4
|
, microlens >=0.4
|
||||||
, microlens-platform >=0.2.3.1
|
, microlens-platform >=0.2.3.1
|
||||||
, safe
|
, safe
|
||||||
|
|||||||
@ -37,12 +37,12 @@ import Text.Printf
|
|||||||
import Hledger.Query
|
import Hledger.Query
|
||||||
import Hledger.Cli hiding (Reader, version)
|
import Hledger.Cli hiding (Reader, version)
|
||||||
|
|
||||||
hledgerApiVersion="1.11"
|
hledgerApiVersion="1.11.99"
|
||||||
|
|
||||||
-- https://github.com/docopt/docopt.hs#readme
|
-- https://github.com/docopt/docopt.hs#readme
|
||||||
doc :: Docopt
|
doc :: Docopt
|
||||||
doc = [docopt|
|
doc = [docopt|
|
||||||
hledger-api 1.11
|
hledger-api 1.11.99
|
||||||
|
|
||||||
Serves hledger data and reports as a JSON web API.
|
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)
|
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
|
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
|
name: hledger-api
|
||||||
version: '1.11'
|
version: '1.11.99'
|
||||||
synopsis: Web API server for the hledger accounting tool
|
synopsis: Web API server for the hledger accounting tool
|
||||||
description: |
|
description: |
|
||||||
This is a simple web API server for hledger data.
|
This is a simple web API server for hledger data.
|
||||||
@ -32,8 +32,8 @@ extra-source-files:
|
|||||||
#data-files:
|
#data-files:
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- hledger-lib >=1.11 && <1.12
|
- hledger-lib >=1.11.99 && <1.12
|
||||||
- hledger >=1.11 && <1.12
|
- hledger >=1.11.99 && <1.12
|
||||||
- base >=4.8 && <4.12
|
- base >=4.8 && <4.12
|
||||||
- aeson
|
- aeson
|
||||||
- bytestring
|
- bytestring
|
||||||
@ -58,4 +58,4 @@ executables:
|
|||||||
hledger-api:
|
hledger-api:
|
||||||
main: hledger-api.hs
|
main: hledger-api.hs
|
||||||
ghc-options: -threaded
|
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
|
HLEDGER_INSTALL_TOOL=hledger-install.sh
|
||||||
|
|
||||||
# this script's version
|
# this script's version
|
||||||
HLEDGER_INSTALL_VERSION=20181001
|
HLEDGER_INSTALL_VERSION=20181006
|
||||||
|
|
||||||
# stackage version to install from when using stack
|
# stackage version to install from when using stack
|
||||||
# You can specify a different stackage version here, or comment out
|
# You can specify a different stackage version here, or comment out
|
||||||
@ -77,7 +77,7 @@ hledger-interest \
|
|||||||
"
|
"
|
||||||
|
|
||||||
# latest hledger package versions, update often:
|
# latest hledger package versions, update often:
|
||||||
HLEDGER_VERSION=1.11
|
HLEDGER_VERSION=1.11.1
|
||||||
HLEDGER_LIB_VERSION=$HLEDGER_VERSION
|
HLEDGER_LIB_VERSION=$HLEDGER_VERSION
|
||||||
HLEDGER_UI_VERSION=$HLEDGER_VERSION
|
HLEDGER_UI_VERSION=$HLEDGER_VERSION
|
||||||
HLEDGER_WEB_VERSION=$HLEDGER_VERSION
|
HLEDGER_WEB_VERSION=$HLEDGER_VERSION
|
||||||
@ -768,15 +768,58 @@ trap cleanup_temp_dir EXIT
|
|||||||
|
|
||||||
# hledger routines
|
# 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,
|
# install stack or a newer version of stack if needed,
|
||||||
# or always with --force-install-stack,
|
# 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() {
|
ensure_stack() {
|
||||||
if ! has_good_stack || [[ "$FORCE_INSTALL_STACK" == "true" ]] ; then
|
if ! has_good_stack || [[ "$FORCE_INSTALL_STACK" == "true" ]] ; then
|
||||||
echo "Installing stack"
|
echo "Installing stack"
|
||||||
do_os
|
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)"
|
fi
|
||||||
|
echo "Using stack $(stack --version)"
|
||||||
}
|
}
|
||||||
|
|
||||||
# get a sed command that supports EREs
|
# get a sed command that supports EREs
|
||||||
@ -791,10 +834,10 @@ cmd_location() {
|
|||||||
command -v "$1"
|
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.
|
# or empty string if there's a problem.
|
||||||
cmd_version() {
|
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
|
# Check whether the given command exists with given version
|
||||||
@ -811,9 +854,9 @@ print_cmd_version() {
|
|||||||
fi
|
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() {
|
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.
|
# Run a command, but first log it with "Trying" prepended.
|
||||||
@ -827,29 +870,21 @@ quietly_run() {
|
|||||||
"$@" 2>/dev/null || true
|
"$@" 2>/dev/null || true
|
||||||
}
|
}
|
||||||
|
|
||||||
# Try to install the executables of the given package(s) to $HOME/.local/bin,
|
# Try to install the executables of the given haskell package(s) and versions,
|
||||||
# trying several methods, generally from quickest to most reliable, continuing on failure.
|
# using stack or cabal, logging the commands, continuing on failure.
|
||||||
# Current the installation methods are:
|
# It's assumed that either a new-enough stack or cabal-install is already installed.
|
||||||
# - if stack is not installed and cabal is, try cabal install
|
# stack is preferred.
|
||||||
# - otherwise install stack if needed and try stack install with specific resolver and ghc
|
# For stack, you must specify the package(s) you want to install, plus any additional
|
||||||
# For the stack method, it's necessary to provide not only the package(s) you want to
|
# dependency packages which are not in the stackage $RESOLVER configured above.
|
||||||
# install but also all dependencies which are not in the specified stackage $RESOLVER.
|
|
||||||
try_install() {
|
try_install() {
|
||||||
(cd # ensure we install at user level, not in some project's stack/cabal setup
|
cd # ensure we install at user level, not in some project's stack/cabal setup
|
||||||
# cabal and not stack installed ? use cabal
|
if has_cmd stack ; then
|
||||||
(! has_cmd stack && has_cmd cabal && (
|
try_info stack install --install-ghc $RESOLVER "$@" --verbosity="$STACK_VERBOSITY"
|
||||||
echo "no stack installed, cabal $(cabal --numeric-version) installed; trying cabal install" && # cf cabal update step
|
elif has_cmd cabal ; then
|
||||||
try_info cabal install "$@" --verbose="$CABAL_VERBOSITY" )
|
try_info cabal install "$@" --verbose="$CABAL_VERBOSITY"
|
||||||
) ||
|
else
|
||||||
# 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 $@"
|
echo "Failed to install $@"
|
||||||
)
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# start
|
# start
|
||||||
@ -911,7 +946,49 @@ fi
|
|||||||
|
|
||||||
echo "hledger-install.sh $HLEDGER_INSTALL_VERSION $(date)"
|
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
|
# ensure ~/.local/bin/ in PATH
|
||||||
|
# TODO should check ~/.cabal/bin if using cabal
|
||||||
if ! on_path "$HOME_LOCAL_BIN" ; then
|
if ! on_path "$HOME_LOCAL_BIN" ; then
|
||||||
echo "WARNING: this script installs hledger (and perhaps stack) in '$HOME_LOCAL_BIN'"
|
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"
|
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
|
export PATH=$HOME_LOCAL_BIN:$PATH
|
||||||
fi
|
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
|
# 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
|
if [[ $(cmpver "$(cmd_version hledger 2>/dev/null)" $HLEDGER_VERSION) = 2 ]]; then
|
||||||
echo Installing hledger
|
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
|
try_install hledger-api-$HLEDGER_API_VERSION hledger-$HLEDGER_VERSION hledger-lib-$HLEDGER_LIB_VERSION $EXTRA_DEPS
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
exit
|
|
||||||
# Third-party addons. We sometimes build these with an older version
|
# Third-party addons. We sometimes build these with an older version
|
||||||
# of hledger[-lib], if their bounds have not been updated yet.
|
# 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
|
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
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ----------
|
|
||||||
|
|
||||||
# show new installation status
|
# show new installation status
|
||||||
|
echo
|
||||||
echo "Install status after:"
|
echo "Install status after:"
|
||||||
print_installed_versions
|
print_installed_versions
|
||||||
|
|
||||||
# warn if $HOME/.local/bin isn't in $PATH
|
# warn if $HOME/.local/bin isn't in $PATH
|
||||||
check_home_local_bin_on_path
|
check_home_local_bin_on_path
|
||||||
|
# TODO if we installed with cabal, we should check $HOME/.cabal/bin instead
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
# check/require ghc-8.0.2+/lts-8+ on osx sierra+
|
# 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.
|
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)
|
# 1.11 (2018/9/30)
|
||||||
|
|
||||||
* compilation now works when locale is unset (#849)
|
* compilation now works when locale is unset (#849)
|
||||||
|
|||||||
@ -554,7 +554,7 @@ checkBalanceAssertion p@Posting{ pbalanceassertion = Just (ass,_)} amt
|
|||||||
(case ptransaction p of
|
(case ptransaction p of
|
||||||
Nothing -> ":" -- shouldn't happen
|
Nothing -> ":" -- shouldn't happen
|
||||||
Just t -> printf " in %s:\nin transaction:\n%s"
|
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)
|
where pos = snd $ fromJust $ pbalanceassertion p)
|
||||||
(showPostingLine p)
|
(showPostingLine p)
|
||||||
(showDate $ postingDate p)
|
(showDate $ postingDate p)
|
||||||
|
|||||||
@ -627,7 +627,7 @@ tests_JournalReader = tests "JournalReader" [
|
|||||||
,ptpostings = []
|
,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
|
,_test "more period text in description after two spaces" $ expectParseEq periodictransactionp
|
||||||
"~ monthly from 2018/6 In 2019 we will change this\n"
|
"~ monthly from 2018/6 In 2019 we will change this\n"
|
||||||
nullperiodictransaction {
|
nullperiodictransaction {
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
--
|
--
|
||||||
-- see: https://github.com/sol/hpack
|
-- see: https://github.com/sol/hpack
|
||||||
--
|
--
|
||||||
-- hash: ec4f3b835e224318ad3608ab36126e3e07d3c54075f648eba27476bb51db15f4
|
-- hash: 22a6817292c6f2d53f935ce939331bea06b956c94b4e391d198760704ec294b3
|
||||||
|
|
||||||
name: hledger-lib
|
name: hledger-lib
|
||||||
version: 1.11
|
version: 1.11.99
|
||||||
synopsis: Core data types, parsers and functionality for the hledger accounting tools
|
synopsis: Core data types, parsers and functionality for the hledger accounting tools
|
||||||
description: This is a reusable library containing hledger's core functionality.
|
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)
|
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
|
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
|
.\"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)
|
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
|
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)
|
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
|
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)
|
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
|
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
|
name: hledger-lib
|
||||||
version: '1.11'
|
version: '1.11.99'
|
||||||
synopsis: Core data types, parsers and functionality for the hledger accounting tools
|
synopsis: Core data types, parsers and functionality for the hledger accounting tools
|
||||||
description: |
|
description: |
|
||||||
This is a reusable library containing hledger's core functionality.
|
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.
|
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)
|
# 1.11 (2018/9/30)
|
||||||
|
|
||||||
* use hledger 1.11
|
* 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
|
-- see: https://github.com/sol/hpack
|
||||||
--
|
--
|
||||||
-- hash: 61b73ed221f9d6964b622e7b8ea40259e9c82efd8b28dadc89d6a643ea947b94
|
-- hash: fb0ef2467dcf115f1fc7a6f9d7781ec6912e7545a52921968067666c1747fff4
|
||||||
|
|
||||||
name: hledger-ui
|
name: hledger-ui
|
||||||
version: 1.11
|
version: 1.11.99
|
||||||
synopsis: Curses-style user interface for the hledger accounting tool
|
synopsis: Curses-style user interface for the hledger accounting tool
|
||||||
description: This is hledger's curses-style interface.
|
description: This is hledger's curses-style interface.
|
||||||
It is simpler and more convenient for browsing data than the command-line 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:
|
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
|
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:
|
build-depends:
|
||||||
ansi-terminal >=0.6.2.3
|
ansi-terminal >=0.6.2.3
|
||||||
, async
|
, async
|
||||||
@ -75,8 +75,8 @@ executable hledger-ui
|
|||||||
, directory
|
, directory
|
||||||
, filepath
|
, filepath
|
||||||
, fsnotify >=0.2.1.2 && <0.4
|
, fsnotify >=0.2.1.2 && <0.4
|
||||||
, hledger >=1.11 && <1.12
|
, hledger >=1.11.99 && <1.12
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, megaparsec >=7.0.0 && <8
|
, megaparsec >=7.0.0 && <8
|
||||||
, microlens >=0.4
|
, microlens >=0.4
|
||||||
, microlens-platform >=0.2.3.1
|
, 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)
|
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
|
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
|
name : hledger-ui
|
||||||
version : '1.11'
|
version : '1.11.99'
|
||||||
synopsis : Curses-style user interface for the hledger accounting tool
|
synopsis : Curses-style user interface for the hledger accounting tool
|
||||||
description : |
|
description : |
|
||||||
This is hledger's curses-style interface.
|
This is hledger's curses-style interface.
|
||||||
@ -37,11 +37,11 @@ flags:
|
|||||||
manual: false
|
manual: false
|
||||||
default: true
|
default: true
|
||||||
|
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- hledger >=1.11 && <1.12
|
- hledger >=1.11.99 && <1.12
|
||||||
- hledger-lib >=1.11 && <1.12
|
- hledger-lib >=1.11.99 && <1.12
|
||||||
- ansi-terminal >=0.6.2.3
|
- ansi-terminal >=0.6.2.3
|
||||||
- async
|
- async
|
||||||
- base >=4.8 && <4.12
|
- base >=4.8 && <4.12
|
||||||
|
|||||||
@ -1,6 +1,11 @@
|
|||||||
User-visible changes in hledger-web. See also hledger, hledger-lib.
|
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)
|
# 1.11 (2018/9/30)
|
||||||
|
|
||||||
* use hledger 1.11
|
* 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
|
-- see: https://github.com/sol/hpack
|
||||||
--
|
--
|
||||||
-- hash: 60eb9cb226968eed42b507637364f5960aa6b6fb91dff8a46fcbd40295780df6
|
-- hash: 443e668fdd64fb57d1d9488224df0bc6ee4e796bcc75f81655a92850ff809d34
|
||||||
|
|
||||||
name: hledger-web
|
name: hledger-web
|
||||||
version: 1.11
|
version: 1.11.99
|
||||||
synopsis: Web interface for the hledger accounting tool
|
synopsis: Web interface for the hledger accounting tool
|
||||||
description: This is hledger's web interface.
|
description: This is hledger's web interface.
|
||||||
It provides a more user-friendly and collaborative UI than the
|
It provides a more user-friendly and collaborative UI than the
|
||||||
@ -149,7 +149,7 @@ library
|
|||||||
hs-source-dirs:
|
hs-source-dirs:
|
||||||
./.
|
./.
|
||||||
ghc-options: -Wall -fwarn-tabs
|
ghc-options: -Wall -fwarn-tabs
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
build-depends:
|
build-depends:
|
||||||
base >=4.8 && <4.12
|
base >=4.8 && <4.12
|
||||||
, blaze-html
|
, blaze-html
|
||||||
@ -164,8 +164,8 @@ library
|
|||||||
, directory
|
, directory
|
||||||
, filepath
|
, filepath
|
||||||
, hjsmin
|
, hjsmin
|
||||||
, hledger >=1.11 && <1.12
|
, hledger >=1.11.99 && <1.12
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, http-client
|
, http-client
|
||||||
, http-conduit
|
, http-conduit
|
||||||
, json
|
, json
|
||||||
@ -201,7 +201,7 @@ executable hledger-web
|
|||||||
hs-source-dirs:
|
hs-source-dirs:
|
||||||
app
|
app
|
||||||
ghc-options: -Wall -fwarn-tabs
|
ghc-options: -Wall -fwarn-tabs
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
build-depends:
|
build-depends:
|
||||||
base
|
base
|
||||||
, hledger-web
|
, 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)
|
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
|
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
|
name: hledger-web
|
||||||
version: '1.11'
|
version: '1.11.99'
|
||||||
synopsis: Web interface for the hledger accounting tool
|
synopsis: Web interface for the hledger accounting tool
|
||||||
description: |
|
description: |
|
||||||
This is hledger's web interface.
|
This is hledger's web interface.
|
||||||
@ -77,7 +77,7 @@ when:
|
|||||||
|
|
||||||
library:
|
library:
|
||||||
source-dirs: .
|
source-dirs: .
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
exposed-modules:
|
exposed-modules:
|
||||||
- Hledger.Web
|
- Hledger.Web
|
||||||
- Hledger.Web.Application
|
- Hledger.Web.Application
|
||||||
@ -96,8 +96,8 @@ library:
|
|||||||
- Hledger.Web.Widget.AddForm
|
- Hledger.Web.Widget.AddForm
|
||||||
- Hledger.Web.Widget.Common
|
- Hledger.Web.Widget.Common
|
||||||
dependencies:
|
dependencies:
|
||||||
- hledger-lib >=1.11 && <1.12
|
- hledger-lib >=1.11.99 && <1.12
|
||||||
- hledger >=1.11 && <1.12
|
- hledger >=1.11.99 && <1.12
|
||||||
- base >=4.8 && <4.12
|
- base >=4.8 && <4.12
|
||||||
- blaze-html
|
- blaze-html
|
||||||
- blaze-markup
|
- blaze-markup
|
||||||
@ -143,7 +143,7 @@ executables:
|
|||||||
hledger-web:
|
hledger-web:
|
||||||
source-dirs: app
|
source-dirs: app
|
||||||
main: main.hs
|
main: main.hs
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
dependencies:
|
dependencies:
|
||||||
- base
|
- base
|
||||||
- hledger-web
|
- hledger-web
|
||||||
@ -161,7 +161,7 @@ executables:
|
|||||||
# test:
|
# test:
|
||||||
# source-dirs: tests
|
# source-dirs: tests
|
||||||
# main: main.hs
|
# main: main.hs
|
||||||
# cpp-options: -DVERSION="1.11"
|
# cpp-options: -DVERSION="1.11.99"
|
||||||
# dependencies:
|
# dependencies:
|
||||||
# - base
|
# - base
|
||||||
# - hledger-web
|
# - hledger-web
|
||||||
|
|||||||
120
hledger/CHANGES
120
hledger/CHANGES
@ -1,6 +1,12 @@
|
|||||||
User-visible changes in the hledger command line tool.
|
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)
|
# 1.11 (2018/9/30)
|
||||||
|
|
||||||
* The default display order of accounts is now influenced by
|
* 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
|
- 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,8 +681,41 @@ Account aliases:
|
|||||||
|
|
||||||
Documentation:
|
Documentation:
|
||||||
|
|
||||||
- The hledger packages now have man pages, based on the current user
|
- Each hledger package now includes one or more man pages, generated
|
||||||
manual, thanks to the mighty pandoc (#282).
|
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:
|
Journal format:
|
||||||
|
|
||||||
|
|||||||
@ -244,6 +244,10 @@ FLAGS
|
|||||||
testcmd :: CliOpts -> Journal -> IO ()
|
testcmd :: CliOpts -> Journal -> IO ()
|
||||||
testcmd opts _undefined = do
|
testcmd opts _undefined = do
|
||||||
let args = words' $ query_ $ reportopts_ opts
|
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]
|
e <- runEasytests args $ EasyTest.tests [tests_Hledger, tests_Commands]
|
||||||
if e then exitFailure else exitSuccess
|
if e then exitFailure else exitSuccess
|
||||||
|
|
||||||
|
|||||||
@ -141,7 +141,7 @@ getAndAddTransactions es@EntryState{..} = (do
|
|||||||
confirmedTransactionWizard es@EntryState{..} = do
|
confirmedTransactionWizard es@EntryState{..} = do
|
||||||
t <- transactionWizard es
|
t <- transactionWizard es
|
||||||
-- liftIO $ hPrintf stderr {- "Transaction entered:\n%s" -} (show t)
|
-- liftIO $ hPrintf stderr {- "Transaction entered:\n%s" -} (show t)
|
||||||
output $ show t
|
output $ showTransaction t
|
||||||
y <- let def = "y" in
|
y <- let def = "y" in
|
||||||
retryMsg "Please enter y or n." $
|
retryMsg "Please enter y or n." $
|
||||||
parser ((fmap ('y' ==)) . headMay . map toLower . strip) $
|
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}
|
let es1@EntryState{esArgs=args1} = es{esArgs=drop 1 esArgs, esDefDate=date}
|
||||||
(desc,comment) <- descriptionAndCommentWizard es1
|
(desc,comment) <- descriptionAndCommentWizard es1
|
||||||
let mbaset = similarTransaction es1 desc
|
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}
|
let es2 = es1{esArgs=drop 1 args1, esSimilarTransaction=mbaset}
|
||||||
balancedPostingsWizard = do
|
balancedPostingsWizard = do
|
||||||
ps <- postingsWizard es2{esPostings=[]}
|
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
|
-- unelided shows all amounts explicitly, in case there's a price, cf #283
|
||||||
when (debug_ opts > 0) $ do
|
when (debug_ opts > 0) $ do
|
||||||
putStrLn $ printf "\nAdded transaction to %s:" f
|
putStrLn $ printf "\nAdded transaction to %s:" f
|
||||||
putStrLn =<< registerFromString (show t)
|
putStrLn =<< registerFromString (showTransaction t)
|
||||||
return j{jtxns=ts++[t]}
|
return j{jtxns=ts++[t]}
|
||||||
|
|
||||||
-- | Append a string, typically one or more transactions, to a journal
|
-- | Append a string, typically one or more transactions, to a journal
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.\"t
|
.\"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
|
-- see: https://github.com/sol/hpack
|
||||||
--
|
--
|
||||||
-- hash: e89846e17f78017f83d440cb2fcfe10caba2b0c4c6a61195b4faffcdd2b7a100
|
-- hash: 78515e93d6f08be6d098bdd697b951a1577e4e71c6b24ad64cf69916d3af191c
|
||||||
|
|
||||||
name: hledger
|
name: hledger
|
||||||
version: 1.11
|
version: 1.11.99
|
||||||
synopsis: Command-line interface for the hledger accounting tool
|
synopsis: Command-line interface for the hledger accounting tool
|
||||||
description: This is hledger's command-line interface.
|
description: This is hledger's command-line interface.
|
||||||
Its basic function is to read a plain text file describing
|
Its basic function is to read a plain text file describing
|
||||||
@ -111,7 +111,7 @@ library
|
|||||||
other-modules:
|
other-modules:
|
||||||
Paths_hledger
|
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
|
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:
|
build-depends:
|
||||||
Decimal
|
Decimal
|
||||||
, Diff
|
, Diff
|
||||||
@ -129,7 +129,7 @@ library
|
|||||||
, hashable >=1.2.4
|
, hashable >=1.2.4
|
||||||
, haskeline >=0.6
|
, haskeline >=0.6
|
||||||
, here
|
, here
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, lucid
|
, lucid
|
||||||
, megaparsec >=7.0.0 && <8
|
, megaparsec >=7.0.0 && <8
|
||||||
, mtl
|
, mtl
|
||||||
@ -164,7 +164,7 @@ executable hledger
|
|||||||
hs-source-dirs:
|
hs-source-dirs:
|
||||||
app
|
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
|
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:
|
build-depends:
|
||||||
Decimal
|
Decimal
|
||||||
, ansi-terminal >=0.6.2.3
|
, ansi-terminal >=0.6.2.3
|
||||||
@ -181,7 +181,7 @@ executable hledger
|
|||||||
, haskeline >=0.6
|
, haskeline >=0.6
|
||||||
, here
|
, here
|
||||||
, hledger
|
, hledger
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, megaparsec >=7.0.0 && <8
|
, megaparsec >=7.0.0 && <8
|
||||||
, mtl
|
, mtl
|
||||||
, mtl-compat
|
, mtl-compat
|
||||||
@ -218,7 +218,7 @@ test-suite test
|
|||||||
hs-source-dirs:
|
hs-source-dirs:
|
||||||
test
|
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
|
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:
|
build-depends:
|
||||||
Decimal
|
Decimal
|
||||||
, ansi-terminal >=0.6.2.3
|
, ansi-terminal >=0.6.2.3
|
||||||
@ -235,7 +235,7 @@ test-suite test
|
|||||||
, haskeline >=0.6
|
, haskeline >=0.6
|
||||||
, here
|
, here
|
||||||
, hledger
|
, hledger
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, megaparsec >=7.0.0 && <8
|
, megaparsec >=7.0.0 && <8
|
||||||
, mtl
|
, mtl
|
||||||
, mtl-compat
|
, mtl-compat
|
||||||
@ -289,7 +289,7 @@ benchmark bench
|
|||||||
, haskeline >=0.6
|
, haskeline >=0.6
|
||||||
, here
|
, here
|
||||||
, hledger
|
, hledger
|
||||||
, hledger-lib >=1.11 && <1.12
|
, hledger-lib >=1.11.99 && <1.12
|
||||||
, html
|
, html
|
||||||
, megaparsec >=7.0.0 && <8
|
, megaparsec >=7.0.0 && <8
|
||||||
, mtl
|
, 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)
|
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
|
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
|
name: hledger
|
||||||
version: '1.11'
|
version: '1.11.99'
|
||||||
synopsis: Command-line interface for the hledger accounting tool
|
synopsis: Command-line interface for the hledger accounting tool
|
||||||
description: |
|
description: |
|
||||||
This is hledger's command-line interface.
|
This is hledger's command-line interface.
|
||||||
@ -78,7 +78,7 @@ ghc-options:
|
|||||||
- -optP-Wno-nonportable-include-path
|
- -optP-Wno-nonportable-include-path
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- hledger-lib >=1.11 && <1.12
|
- hledger-lib >=1.11.99 && <1.12
|
||||||
- ansi-terminal >=0.6.2.3
|
- ansi-terminal >=0.6.2.3
|
||||||
- base >=4.8 && <4.12
|
- base >=4.8 && <4.12
|
||||||
- base-compat-batteries >=0.10.1 && <0.11
|
- base-compat-batteries >=0.10.1 && <0.11
|
||||||
@ -121,7 +121,7 @@ when:
|
|||||||
- terminfo
|
- terminfo
|
||||||
|
|
||||||
library:
|
library:
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
exposed-modules:
|
exposed-modules:
|
||||||
- Hledger.Cli
|
- Hledger.Cli
|
||||||
- Hledger.Cli.Main
|
- Hledger.Cli.Main
|
||||||
@ -163,7 +163,7 @@ executables:
|
|||||||
hledger:
|
hledger:
|
||||||
source-dirs: app
|
source-dirs: app
|
||||||
main: hledger-cli.hs
|
main: hledger-cli.hs
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
when:
|
when:
|
||||||
- condition: flag(threaded)
|
- condition: flag(threaded)
|
||||||
ghc-options: -threaded
|
ghc-options: -threaded
|
||||||
@ -174,7 +174,7 @@ tests:
|
|||||||
test:
|
test:
|
||||||
source-dirs: test
|
source-dirs: test
|
||||||
main: test.hs
|
main: test.hs
|
||||||
cpp-options: -DVERSION="1.11"
|
cpp-options: -DVERSION="1.11.99"
|
||||||
dependencies:
|
dependencies:
|
||||||
- hledger
|
- hledger
|
||||||
- test-framework
|
- test-framework
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# csv format
|
# csv format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$toc\$
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# hledger-api
|
# hledger-api
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$toc\$
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# hledger-ui
|
# hledger-ui
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$toc\$
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# hledger-web
|
# hledger-web
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$toc\$
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# hledger
|
# hledger
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$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
|
# journal format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$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.
|
What "uncleared", "pending", and "cleared" actually mean is up to you.
|
||||||
Here's one suggestion:
|
Here's one suggestion:
|
||||||
|
|
||||||
-------------------------------------------------------------------------
|
|
||||||
status meaning
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
status meaning
|
||||||
|
----------- ------------------------------------------------------------
|
||||||
uncleared recorded but not yet reconciled; needs review
|
uncleared recorded but not yet reconciled; needs review
|
||||||
|
|
||||||
pending tentatively reconciled (if needed, eg during a big
|
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
|
cleared complete, reconciled as far as possible, and considered
|
||||||
correct
|
correct
|
||||||
-------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
With this scheme, you would use `-PC` to see the current balance at your
|
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
|
bank, `-U` to see things which will probably hit your bank soon (like
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## hledger
|
## hledger
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -2435,7 +2435,7 @@ accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
|
|||||||
|
|
||||||
## hledger-ui
|
## hledger-ui
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -2847,7 +2847,7 @@ program is restarted.
|
|||||||
|
|
||||||
## hledger-web
|
## hledger-web
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -3100,7 +3100,7 @@ Does not work well on small screens.
|
|||||||
|
|
||||||
## hledger-api
|
## hledger-api
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -3202,7 +3202,7 @@ awkward.
|
|||||||
|
|
||||||
## journal format
|
## journal format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -4515,7 +4515,7 @@ https://twitter.com/LedgerTips/status/501767602067472384
|
|||||||
|
|
||||||
## csv format
|
## csv format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -4789,7 +4789,7 @@ rules file will be used for all the CSV files being read.
|
|||||||
|
|
||||||
## timeclock format
|
## timeclock format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
@ -4858,7 +4858,7 @@ To generate time logs, ie to clock in and clock out, you could:
|
|||||||
|
|
||||||
## timedot format
|
## timedot format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
### NAME
|
### NAME
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# timeclock format
|
# timeclock format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$toc\$
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# timedot format
|
# timedot format
|
||||||
|
|
||||||
This doc is for version **1.10.99** (dev). []{.docversions}
|
This doc is for version **1.11** (dev). []{.docversions}
|
||||||
|
|
||||||
\$toc\$
|
\$toc\$
|
||||||
|
|
||||||
|
|||||||
313
site/download.md
313
site/download.md
@ -1,14 +1,21 @@
|
|||||||
\$toc\$
|
|
||||||
|
|
||||||
# Download
|
# 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 name="a"></a>
|
||||||
|
|
||||||
## a. download a binary/system package
|
## a. Download a binary or system package for your platform
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
table { margin-left:1em; }
|
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 */
|
div > p > strong > code { margin-left:1em; } /* top-level code lines */
|
||||||
code { white-space:nowrap; }
|
code { white-space:nowrap; }
|
||||||
tr { vertical-align:top; }
|
tr { vertical-align:top; }
|
||||||
@ -19,7 +26,10 @@ td:first-of-type {
|
|||||||
}
|
}
|
||||||
a { white-space:nowrap; }
|
a { white-space:nowrap; }
|
||||||
.warnings {
|
.warnings {
|
||||||
|
display:inline-block;
|
||||||
|
margin-left:1em;
|
||||||
font-style:italic;
|
font-style:italic;
|
||||||
|
font-size:small;
|
||||||
}
|
}
|
||||||
.warnings > a:before {
|
.warnings > a:before {
|
||||||
content: " ⚠ ";
|
content: " ⚠ ";
|
||||||
@ -27,36 +37,90 @@ a { white-space:nowrap; }
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
hledger binaries or system packages are quickest to install,
|
Binaries or system packages are quickest to install, but they can be outdated or incomplete.
|
||||||
but they can be [out of date](https://repology.org/metapackage/hledger/badges) or incomplete.
|
|
||||||
(Please help your local packagers with this!).
|
|
||||||
|
|
||||||
|
|
**Available binaries / system packages:**
|
||||||
|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
<div style="float:right; font-size:small;">
|
||||||
| 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>
|
(please [update this page](https://github.com/simonmichael/hledger/edit/master/site/download.md) /
|
||||||
| Mac: | **`brew install hledger`** <span class=warnings>([only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520))</span>
|
<br>report issues to packagers)
|
||||||
| Arch Linux: | **`pacman -S hledger`**
|
</div>
|
||||||
| Debian, Ubuntu: | **`sudo apt install hledger hledger-ui hledger-web`**
|
|
||||||
| Fedora, RHEL: | **`sudo dnf install hledger`**
|
| Platform | Command/Link | Installs version<br>([as of 20181006](https://repology.org/metapackage/hledger/badges), latest is [1.11](http://hledger.org/release-notes))
|
||||||
| Gentoo: | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`**
|
|----------------------|------------------------|----------------------------------------------------------------------------------------
|
||||||
| Void Linux: | **`xbps-install -S hledger hledger-ui hledger-web hledger-api`**
|
| [Mac][] | **`brew install hledger`** <br><span class=warnings>[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520)</span> | 1.11
|
||||||
| 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)
|
| [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
|
||||||
| 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>
|
| [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>
|
<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.
|
Below are three ways to build the latest release, in order of preference.
|
||||||
|
But first, some tips:
|
||||||
|
|
||||||
|
- 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:
|
||||||
|
|
||||||
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>
|
<span class=warnings>
|
||||||
[arch: advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\
|
[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: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\
|
||||||
@ -64,145 +128,122 @@ Also, here are some known build issues and workarounds:\
|
|||||||
[freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\
|
[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 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)\
|
[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>
|
</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>
|
<a name="b1"></a>
|
||||||
|
|
||||||
### b1. with hledger-install
|
### b1. with hledger-install
|
||||||
|
|
||||||
The latest version of our [hledger-install script](https://github.com/simonmichael/hledger/tree/master/hledger-install)
|
On systems with bash installed (mac, linux, unix-like windows..),
|
||||||
([changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh))
|
if you don't already have stack or cabal, or if you are having trouble with them,
|
||||||
is recommended as the easiest and most-likely-to-just-work build method,
|
[hledger-install](https://github.com/simonmichael/hledger/tree/master/hledger-install)
|
||||||
on GNU/linux, mac and freeBSD
|
is an easy and reliable way to get the latest hledger.
|
||||||
(and possibly other BSDs if you install cabal-install first, or on unixlike environments on windows):
|
It automates the install process using stack or cabal, avoiding common pitfalls:
|
||||||
|
|
||||||
- it requires only bash and curl/wget, and internet access
|
**`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh`**\
|
||||||
- it automates the install process using stack or cabal, avoiding common pitfalls
|
**`less hledger-install.sh`** *# satisfy yourself that the script is safe*\
|
||||||
- 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`**
|
**`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`**
|
|
||||||
|
|
||||||
<a name="b2"></a>
|
<a name="b2"></a>
|
||||||
|
|
||||||
### b2. with stack
|
### b2. with stack
|
||||||
|
|
||||||
[`stack`](http://haskell-lang.org/get-started) is the newer and easier of the Haskell build tools.
|
[`stack`](http://haskell-lang.org/get-started) is the more reliable of Haskell's two build tools, for new users.
|
||||||
If you prefer more control or if hledger-install failed, here's how to use stack yourself:
|
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**\
|
**`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`**\
|
||||||
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.
|
|
||||||
|
|
||||||
On Windows, the 64-bit version of stack is [preferred](https://github.com/simonmichael/hledger/issues/275#issuecomment-123834252).
|
Other [add-ons](/hledger.html#third-party-add-ons)
|
||||||
|
like
|
||||||
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-diff](http://hackage.haskell.org/package/hledger-diff),
|
||||||
[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd),
|
[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd),
|
||||||
[hledger-interest](http://hackage.haskell.org/package/hledger-interest),
|
or [hledger-interest](http://hackage.haskell.org/package/hledger-interest)
|
||||||
and [hledger-irr](http://hackage.haskell.org/package/hledger-irr)
|
can be installed like so:
|
||||||
can be installed similarly to the above.
|
|
||||||
|
|
||||||
6. **[Test](#test)**
|
|
||||||
|
|
||||||
|
**`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>
|
<a name="b3"></a>
|
||||||
|
|
||||||
### b3. with cabal
|
### 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>
|
<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,
|
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).
|
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)**
|
**`git clone https://github.com/simonmichael/hledger`**\
|
||||||
2. **`git clone https://github.com/simonmichael/hledger`**
|
**`cd hledger`**\
|
||||||
3. **`cd hledger`**
|
**`stack install`**\
|
||||||
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)
|
|
||||||
|
|
||||||
cabal users may find the `cabal-install.sh` or `cabal.project` files useful.
|
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 changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh).
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
## Latest minor release
|
## Latest minor release
|
||||||
|
|
||||||
<http://hackage.haskell.org/package/hledger-lib-1.9.1/changelog>
|
<http://hackage.haskell.org/package/hledger-lib-1.11.1/changelog>
|
||||||
<http://hackage.haskell.org/package/hledger-1.9.1/changelog>
|
<http://hackage.haskell.org/package/hledger-1.11.1/changelog>
|
||||||
<http://hackage.haskell.org/package/hledger-ui-1.9.1/changelog>
|
<http://hackage.haskell.org/package/hledger-ui-1.11.1/changelog>
|
||||||
<http://hackage.haskell.org/package/hledger-web-1.9.2/changelog>
|
<http://hackage.haskell.org/package/hledger-web-1.11.1/changelog>
|
||||||
<http://hackage.haskell.org/package/hledger-api-1.9.1/changelog>
|
<http://hackage.haskell.org/package/hledger-api-1.11.1/changelog>
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
## 2018/9/30 hledger 1.11
|
## 2018/9/30 hledger 1.11
|
||||||
@ -81,9 +80,9 @@ fixes
|
|||||||
|
|
||||||
<!-- [project](#project-wide-changes-for-1.11) -->
|
<!-- [project](#project-wide-changes-for-1.11) -->
|
||||||
[hledger](#hledger-1.11-1)
|
[hledger](#hledger-1.11-1)
|
||||||
<!-- | [hledger-ui](#hledger-ui-1.11) -->
|
| [hledger-ui](#hledger-ui-1.11)
|
||||||
<!-- | [hledger-web](#hledger-web-1.11) -->
|
| [hledger-web](#hledger-web-1.11)
|
||||||
<!-- | [hledger-api](#hledger-api-1.11) -->
|
| [hledger-api](#hledger-api-1.11)
|
||||||
| [hledger-lib](#hledger-lib-1.11)
|
| [hledger-lib](#hledger-lib-1.11)
|
||||||
| [credits](#credits-1.11)
|
| [credits](#credits-1.11)
|
||||||
|
|
||||||
@ -115,7 +114,7 @@ fixes
|
|||||||
* prices: query arguments are now supported. Prices can be filtered by
|
* prices: query arguments are now supported. Prices can be filtered by
|
||||||
date, and postings providing transaction prices can also be filtered.
|
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
|
* 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
|
* csv: We use a more robust CSV lib (cassava) and now support
|
||||||
non-comma separators, eg --separator ';' (experimental, this flag
|
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
|
* csv: interpolated field names in values are now properly case insensitive, so
|
||||||
this works:
|
this works:
|
||||||
@ -133,20 +132,36 @@ fixes
|
|||||||
date %Transaction_Date
|
date %Transaction_Date
|
||||||
|
|
||||||
* journal: D (default commodity) directives no longer break multiplier
|
* 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: "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
|
* journal: when include files form a cycle, we give an error instead
|
||||||
of hanging.
|
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
|
### 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
|
* 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
|
* 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
|
### hledger 1.10
|
||||||
@ -268,16 +283,16 @@ misc fixes
|
|||||||
* journal: many parse error messages have become more informative, and
|
* journal: many parse error messages have become more informative, and
|
||||||
some now show the source line and error location.
|
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
|
* journal: transaction price amounts having their own price amounts is
|
||||||
now a parse error
|
now a parse error
|
||||||
|
|
||||||
* journal: amounts with space as digit group separator and trailing whitespace
|
* 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
|
* 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.
|
* 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
|
semantics, especially with multiple files. The manual now describes
|
||||||
their behaviour precisely.
|
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
|
* journal: periodic transactions can now have all the usual transaction fields
|
||||||
(status mark, code, description, comment), for generating more expressive
|
(status mark, code, description, comment), for generating more expressive
|
||||||
@ -308,18 +323,18 @@ misc fixes
|
|||||||
expression attached as a tag named "recur".
|
expression attached as a tag named "recur".
|
||||||
|
|
||||||
* journal: periodic transactions now start on the first instance of the
|
* 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
|
* journal: periodic transaction rules now allow period expressions relative to today's date
|
||||||
|
|
||||||
* csv: amount-in/amount-out errors are more detailed
|
* csv: amount-in/amount-out errors are more detailed
|
||||||
|
|
||||||
* balance: --drop is now ignored when not in flat mode,
|
* 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
|
* 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
|
* smart dates now allow the YYYYMM format, and are better documented
|
||||||
|
|
||||||
@ -328,7 +343,7 @@ misc fixes
|
|||||||
|
|
||||||
### hledger-ui 1.10
|
### 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
|
* 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,
|
customize sorting. bal/bs/cf/is will sort accounts by account code,
|
||||||
if any, then account name.
|
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
|
* 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
|
### 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)
|
* 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)
|
* 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)
|
* --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
|
* 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
|
* import: the output of --dry-run is now valid journal format
|
||||||
|
|
||||||
* print: -B shows converted amounts again, as in 1.1, even without
|
* 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
|
* 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
|
### 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
|
* 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
|
* add readJournalFile[s]WithOpts, with simpler arguments and support
|
||||||
for detecting new transactions since the last read.
|
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
|
* journal, cli: make trailing whitespace significant in regex account aliases
|
||||||
Trailing whitespace in the replacement part of a regular expression
|
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: 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+
|
* 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) -->
|
<!-- 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
|
This patch fixes a bug that happened when using the -H option on
|
||||||
a period without any transaction. Previously, the behavior was no
|
a period without any transaction. Previously, the behavior was no
|
||||||
output at all even though it should have shown the previous ending balances
|
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,
|
of past transactions. (This is similar to previously using -H with -E,
|
||||||
but with the extra advantage of not showing empty accounts)
|
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)
|
* 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
|
### 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: 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.
|
* help: offers multiple formats, accepts topic substrings.
|
||||||
The separate info/man commands have been dropped. help now
|
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
|
- otherwise it prints on stdout
|
||||||
- (and it always prints on stdout when piped).
|
- (and it always prints on stdout when piped).
|
||||||
You can override this with the `--info`/`--man`/`--pager`/`--cat` flags.
|
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
|
* bal/bs/cf/is: --sort-amount/-S sorts by largest amount instead of
|
||||||
account name
|
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
|
single final blank line. Previously, amounts wider than the column
|
||||||
headings would be separated by only a single space.
|
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
|
* new balancesheetequity command: like balancesheet but also shows
|
||||||
equity accounts (Nicholas Niro)
|
equity accounts (Nicholas Niro)
|
||||||
@ -785,9 +800,9 @@ but with the extra advantage of not showing empty accounts)
|
|||||||
|
|
||||||
<!-- 1.3.1 (2017/8/25) -->
|
<!-- 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)
|
* 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
|
* 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
|
* 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) -->
|
<!-- # 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)
|
* 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
|
* 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
|
* 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) -->
|
<!-- # 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)
|
* 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
|
### 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) -->
|
<!-- # 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
|
The "uncleared" transaction/posting status (and associated UI flags
|
||||||
and keys) has been renamed to "unmarked" to remove ambiguity and
|
and keys) has been renamed to "unmarked" to remove ambiguity and
|
||||||
confusion. See the issue and linked mail list discussion for more
|
confusion. See the issue and linked mail list discussion for more
|
||||||
background. (#564)
|
background. ([#564](https://github.com/simonmichael/hledger/issues/564))
|
||||||
|
|
||||||
#### csv format
|
#### csv format
|
||||||
|
|
||||||
In CSV conversion rules, assigning to the "balance" field name
|
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)
|
Wavrant, Simon Michael)
|
||||||
|
|
||||||
#### Misc
|
#### 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.
|
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,
|
confusion. This means that we have dropped the `--uncleared` flag,
|
||||||
and our `-U` flag now matches only unmarked things and not pending
|
and our `-U` flag now matches only unmarked things and not pending
|
||||||
ones. See the issue and linked mail list discussion for more
|
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
|
Also the -P short flag has been added for --pending, and the -U/-P/-C
|
||||||
flags can be combined.
|
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).
|
bal/bs/is/cf: show negative amounts in red (Simon Michael, Justin Le).
|
||||||
These commands now show negative amounts in red, when hledger detects
|
These commands now show negative amounts in red, when hledger detects
|
||||||
that ANSI codes are supported, (ie when TERM is not "dumb" and stdout
|
that ANSI codes are supported, (ie when TERM is not "dumb" and stdout
|
||||||
is not being redirected or piped).
|
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.
|
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.
|
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
|
rewrite: add support for rewriting multipler postings into different
|
||||||
commodities. For example, postings in hours can be used to generate
|
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.
|
`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
|
renamed to "unmarked" to remove ambiguity and confusion. This means
|
||||||
that we have dropped the `--uncleared` flag, and our `-U` flag now
|
that we have dropped the `--uncleared` flag, and our `-U` flag now
|
||||||
matches only unmarked things and not pending ones. See the issue and
|
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
|
The P key toggles pending mode, consistent with U (unmarked) and C
|
||||||
(cleared). There is also a temporary --status-toggles flag for testing
|
(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:
|
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
|
In the transaction screen, amounts are now better aligned, eg when
|
||||||
there are posting status marks or virtual postings.
|
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
|
### hledger-web 1.3
|
||||||
|
|
||||||
@ -1067,7 +1082,7 @@ Michael Walker.
|
|||||||
|
|
||||||
bump stack config to latest lts,
|
bump stack config to latest lts,
|
||||||
bump brick to 0.15.2 to allow hledger-iadd install in hledger dir,
|
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).
|
use more accurate license tag in Cabal file (Peter Simons).
|
||||||
|
|
||||||
#### Finance
|
#### Finance
|
||||||
@ -1133,13 +1148,13 @@ been disabled, reducing build dependencies.
|
|||||||
|
|
||||||
#### Misc
|
#### 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.
|
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
|
Rename optserror -> usageError, consolidate with other error functions
|
||||||
|
|
||||||
@ -1148,7 +1163,7 @@ Rename optserror -> usageError, consolidate with other error functions
|
|||||||
#### CLI
|
#### CLI
|
||||||
|
|
||||||
"hledger" and "hledger -h" now print a better organised commands list
|
"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.
|
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):
|
The rewrite command is more robust and powerful (Mykola Orliuk):
|
||||||
|
|
||||||
- in addition to command-line rewrite options, it understands rewrite rules
|
- 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:
|
Eg:
|
||||||
```journal
|
```journal
|
||||||
= ^income
|
= ^income
|
||||||
@ -1237,7 +1252,7 @@ The rewrite command is more robust and powerful (Mykola Orliuk):
|
|||||||
#### balance
|
#### balance
|
||||||
|
|
||||||
A new --pretty-tables option uses unicode characters for rendering
|
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
|
#### 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
|
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:`
|
`-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
|
#### 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
|
print now tries to preserves the format of implicit/explicit balancing
|
||||||
amounts and prices, by default. To print with all amounts explicit,
|
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
|
#### 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)
|
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
|
### 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 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
|
Allow text-zipper 0.10
|
||||||
|
|
||||||
### hledger-web 1.2
|
### 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 -->
|
<!-- ### 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
|
2017/01/01 assets:cash $10000 $9390
|
||||||
>>>2
|
>>>2
|
||||||
>>>=0
|
>>>=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.
|
# the command name.
|
||||||
#
|
#
|
||||||
# - RawOpts: the command name, options, and arguments parsed by cmdargs,
|
# - 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","")]
|
# [("command","register"),("args","a"),("debug",""),("help","")]
|
||||||
#
|
#
|
||||||
# - CliOpts: a RawOpts, plus the same information with some additional
|
# - CliOpts: a RawOpts, plus the same information with some additional
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user