Merge branch 'master' into ExceptTLayer
This commit is contained in:
		
						commit
						2cbc41e088
					
				| @ -41,10 +41,13 @@ install: | |||||||
| #- dir | #- dir | ||||||
| 
 | 
 | ||||||
| # 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 |   fi | ||||||
|   echo "using stack $(stack --version)" |   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 |     echo "Failed to install $@" | ||||||
|    (ensure_stack && ( |   fi | ||||||
|     #(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 $@" |  | ||||||
|   ) |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # 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,9 +681,42 @@ 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: | ||||||
| 
 | 
 | ||||||
| - Dates must now begin with a digit (not /, eg). | - Dates must now begin with a digit (not /, eg). | ||||||
|  | |||||||
| @ -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\$ | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										337
									
								
								site/download.md
									
									
									
									
									
								
							
							
						
						
									
										337
									
								
								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,190 +26,224 @@ 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: " ⚠ "; | ||||||
|     color:red; |     color:red; | ||||||
| } | } | ||||||
| </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: | ||||||
| 
 | 
 | ||||||
| Note, building all hledger tools for the first time could take as much | - Building all hledger tools and dependencies for the first time could | ||||||
| as an hour, 1G of free memory, and 1G of disk space.  |   take as much as an hour, 1-2G of free memory, and 1-2G of disk | ||||||
| (We're not bloated; we just sit atop a lot of fine Haskell engineering!) |   space.  You can kill and restart the build without losing progress, | ||||||
| You can kill and restart it without losing progress, and subsequent builds will be much faster. |   and future builds will be much faster. | ||||||
| Also, here are some known build issues and workarounds:\ | 
 | ||||||
| <span class=warnings> | - If you get link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"),  | ||||||
| [arch: advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\ |   you might need to install some extra system packages and try again. | ||||||
| [arch: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\ |   To find the right system package, check the list below, or do a web search for the error message | ||||||
| <!-- [arch: some past problems](https://github.com/simonmichael/hledger/issues/668) --> |   (and please send updates for this list): | ||||||
| [freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\ | 
 | ||||||
| [openbsd 6: exec permission denied](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html)\ |     | | ||||||
| [openbsd: how to get stack](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816)\ |     |-----------------|------------------------------------------------------------------- | ||||||
| </span> |     | CentOS:         | **`sudo yum install -y libstdc++-devel ncurses-devel zlib-devel`** <!-- https://github.com/simonmichael/hledger/issues/715 --> | ||||||
|  |     | Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`** | ||||||
|  |     | Fedora, RHEL:   | **`sudo dnf install -y gmp-devel ncurses-devel`** | ||||||
|  | 
 | ||||||
|  | - Here are some known build issues and workarounds on certain platforms: | ||||||
|  | 
 | ||||||
|  |     <span class=warnings> | ||||||
|  |     [arch: advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\ | ||||||
|  |     [arch: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\ | ||||||
|  |     <!-- [arch: some past problems](https://github.com/simonmichael/hledger/issues/668) --> | ||||||
|  |     [freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\ | ||||||
|  |     [openbsd 6: exec permission denied](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html)\ | ||||||
|  |     [openbsd: how to get stack](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816)\ | ||||||
|  |     [windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\ | ||||||
|  |     </span> | ||||||
|  | 
 | ||||||
|  | - If you have trouble, please send me a copy/paste of the output, | ||||||
|  |   including the commands you typed, at least up to the first error, via | ||||||
|  |       [paste](http://paste.hledger.org) + [IRC](http://irc.hledger.org), | ||||||
|  |   or the [issue tracker](http://bugs.hledger.org),  | ||||||
|  |   or [email](docs.html#helpfeedback). | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div style="margin-left:1em; margin-bottom:2em;"> | ||||||
| 
 | 
 | ||||||
| <a name="b1"></a> | <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 |   **`bash hledger-install.sh`** | ||||||
| - it installs the latest release of hledger and addon tools in ~/.local/bin or ~/.cabal/bin |  | ||||||
| 
 |  | ||||||
| Here's the quick, non-secure way to run it: |  | ||||||
| 
 |  | ||||||
|  **`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh | bash`** |  | ||||||
| 
 |  | ||||||
| And here's the more responsible way: |  | ||||||
| 
 |  | ||||||
|  **`curl -sO https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh`**\ |  | ||||||
|  **`less hledger-install.sh`**  *# do security review*\ |  | ||||||
|  **`bash hledger-install.sh`** |  | ||||||
| 
 |  | ||||||
| #### Link errors ? |  | ||||||
| 
 |  | ||||||
| If you see link errors (like "/bin/ld.gold: error: cannot find -ltinfo"),  |  | ||||||
| you might need to install some extra system packages, such as the below, and try again. |  | ||||||
| Please do a web search for the error and send corrections for this list: |  | ||||||
| 
 |  | ||||||
|  | |  | ||||||
|  |-----------------|------------------------------------------------------- |  | ||||||
|  | Centos:         | **`sudo yum install -y libstdc++-devel ncurses-devel zlib-devel`** *# [?](https://github.com/simonmichael/hledger/issues/715)* |  | ||||||
|  | Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`** *# ?* |  | ||||||
|  | Fedora, RHEL:   | **`sudo dnf install -y gmp-devel ncurses-devel`** *# ?* |  | ||||||
| 
 |  | ||||||
| #### Set up $PATH |  | ||||||
| 
 |  | ||||||
| You should |  | ||||||
| [extend your \$PATH with `~/.local/bin`](https://docs.haskellstack.org/en/stable/install_and_upgrade/#path) (for stack) |  | ||||||
| and/or `~/.cabal/bin` (for cabal). |  | ||||||
| Eg, if you use bash: |  | ||||||
| 
 |  | ||||||
| **`echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc`** |  | ||||||
| 
 |  | ||||||
| #### Test |  | ||||||
| 
 |  | ||||||
| Now you should be able to run the hledger tools and see the expected versions. Eg: |  | ||||||
| ```shell |  | ||||||
| $ hledger --version |  | ||||||
| hledger 1.11 |  | ||||||
| $ hledger-ui --version |  | ||||||
| hledger-ui 1.11 |  | ||||||
| $ hledger web --version |  | ||||||
| hledger-web 1.11 |  | ||||||
| $ hledger iadd --version |  | ||||||
| This is hledger-iadd version 1.3.6 |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| #### Need help ? |  | ||||||
| 
 |  | ||||||
| If you are having trouble, please capture a debug log and send it to me via  |  | ||||||
| [paste](http://paste.hledger.org) & [IRC](http://irc.hledger.org), |  | ||||||
| the [issue tracker](http://bugs.hledger.org), |  | ||||||
| or [email](docs.html#helpfeedback): |  | ||||||
| 
 |  | ||||||
|  **`bash -x hledger-install.sh 2>&1 | tee hledger-install.log`** |  | ||||||
| 
 | 
 | ||||||
| <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`**\ | [hledger-diff](http://hackage.haskell.org/package/hledger-diff), | ||||||
|     This installs the main hledger packages (and dependencies) from [Stackage](https://www.stackage.org) and/or [Hackage](http://hackage.haskell.org). | [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd), | ||||||
|     You can save some time by omitting hledger-* packages you don't want.\ | or [hledger-interest](http://hackage.haskell.org/package/hledger-interest) | ||||||
|     <span class=warnings>([windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444))</span> | can be installed like so: | ||||||
| 
 |  | ||||||
|     You can kill and restart this without losing progress.  |  | ||||||
|     To estimate the build time, add `--dry-run`.  |  | ||||||
|      |  | ||||||
|     If you see "was generated with a newer version of hpack, please upgrade and try again" errors, you can ignore them. |  | ||||||
|     (Upgrade to the latest stack release to stop them.) |  | ||||||
| 
 |  | ||||||
| <!-- |  | ||||||
|     If you need to build with an older GHC version for some reason, these commands should work |  | ||||||
|    (except on Mac Sierra which [requires at least GHC 8.0.2/lts-8](https://ghc.haskell.org/trac/ghc/ticket/12479)):\ |  | ||||||
|    `stack install --resolver=lts-7 hledger-lib-1.3 hledger-1.3 hledger-ui-1.3 hledger-web-1.3 hledger-api-1.3 brick-0.19 vty-5.15.1 data-clist-0.1.2.0`  *# (GHC 8.0.1)* \ |  | ||||||
|    `stack install --resolver=lts-6 hledger-lib-1.3 hledger-1.3 hledger-ui-1.3 hledger-web-1.3 hledger-api-1.3 megaparsec-5.3.1 brick-0.19 vty-5.15.1 data-clist-0.1.2.0 text-zipper-0.10`  *# (GHC 7.10.3)* \ |  | ||||||
| --> <!-- keep synced with stack.yaml files --> |  | ||||||
| 
 |  | ||||||
| 3. **[If you see link errors..](#link-errors)** |  | ||||||
| 
 |  | ||||||
| 4. **[Set up \$PATH](#set-up-path)** |  | ||||||
| 
 |  | ||||||
| 5. **Install addons ?**\ |  | ||||||
|    Additional [add-on commands](/hledger.html#third-party-add-ons), |  | ||||||
|    such as |  | ||||||
|    [hledger-diff](http://hackage.haskell.org/package/hledger-diff), |  | ||||||
|    [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd), |  | ||||||
|    [hledger-interest](http://hackage.haskell.org/package/hledger-interest), |  | ||||||
|    and [hledger-irr](http://hackage.haskell.org/package/hledger-irr) |  | ||||||
|    can be installed similarly to the above. |  | ||||||
| 
 |  | ||||||
| 6. **[Test](#test)** |  | ||||||
| 
 | 
 | ||||||
|  |   **`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