From 190eee548532bc36a2f6c85d2a763b0322a5e62a Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 09:16:17 -1000 Subject: [PATCH 01/39] lib: comment [ci skip] --- hledger-lib/Hledger/Read/JournalReader.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index c4024ef15..7f9eb34f3 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -630,7 +630,7 @@ tests_JournalReader = tests "JournalReader" [ ,ptpostings = [] } - -- TODO #807 + -- TODO some weaknesses in periodic transaction parsing, https://github.com/simonmichael/hledger/pull/807#issuecomment-396994403 ,_test "more period text in description after two spaces" $ expectParseEq periodictransactionp "~ monthly from 2018/6 In 2019 we will change this\n" nullperiodictransaction { From bcf6f8ab4db17b45d98a5fbe7e7a28096723fbcc Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 09:48:21 -1000 Subject: [PATCH 02/39] install: make cmpver available earlier [ci skip] --- hledger-install/hledger-install.sh | 72 +++++++++++++++--------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/hledger-install/hledger-install.sh b/hledger-install/hledger-install.sh index f4a025612..c941fb9e2 100755 --- a/hledger-install/hledger-install.sh +++ b/hledger-install/hledger-install.sh @@ -768,6 +768,42 @@ trap cleanup_temp_dir EXIT # hledger routines +# Compare dotted number version strings, based on https://stackoverflow.com/a/4025065/84401. +# cmpver A B's exit status *and* output is +# 0 for A ~= B (1 is equivalent to 1.0, 1.0.0 etc.) +# 1 for A > B +# 2 for A < B. +cmpver () { + if [[ $1 == $2 ]] + then + echo 0; return 0 + fi + local IFS=. + local i ver1=($1) ver2=($2) + # fill empty fields in ver1 with zeros + for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)) + do + ver1[i]=0 + done + for ((i=0; i<${#ver1[@]}; i++)) + do + if [[ -z ${ver2[i]} ]] + then + # fill empty fields in ver2 with zeros + ver2[i]=0 + fi + if ((10#${ver1[i]} > 10#${ver2[i]})) + then + echo 1; return 1 + fi + if ((10#${ver1[i]} < 10#${ver2[i]})) + then + echo 2; return 2 + fi + done + echo 0; return 0 +} + # install stack or a newer version of stack if needed, # or always with --force-install-stack, # in $HOME/.local/bin @@ -940,42 +976,6 @@ fi try_info cabal update ) -# Compare dotted number version strings, based on https://stackoverflow.com/a/4025065/84401. -# cmpver A B's exit status *and* output is -# 0 for A ~= B (1 is equivalent to 1.0, 1.0.0 etc.) -# 1 for A > B -# 2 for A < B. -cmpver () { - if [[ $1 == $2 ]] - then - echo 0; return 0 - fi - local IFS=. - local i ver1=($1) ver2=($2) - # fill empty fields in ver1 with zeros - for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)) - do - ver1[i]=0 - done - for ((i=0; i<${#ver1[@]}; i++)) - do - if [[ -z ${ver2[i]} ]] - then - # fill empty fields in ver2 with zeros - ver2[i]=0 - fi - if ((10#${ver1[i]} > 10#${ver2[i]})) - then - echo 1; return 1 - fi - if ((10#${ver1[i]} < 10#${ver2[i]})) - then - echo 2; return 2 - fi - done - echo 0; return 0 -} - # try installing each package that needs installing, in turn echo ---------- From 896e58c054745a464a0acf9d4411e5edf71d46bf Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 09:50:46 -1000 Subject: [PATCH 03/39] install: warn when installed stack is too old [ci skip] --- hledger-install/hledger-install.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hledger-install/hledger-install.sh b/hledger-install/hledger-install.sh index c941fb9e2..a148689db 100755 --- a/hledger-install/hledger-install.sh +++ b/hledger-install/hledger-install.sh @@ -962,10 +962,15 @@ echo "System info:" quietly_run uname -rsv quietly_run lsb_release -a -# show current installed hledger packages +# show current installed hledger packages and install tools echo "Install status before:" print_installed_versions +# show a warning if stack is too old +if has_stack && ! has_good_stack ; then + echo "Note: stack $(cmd_version stack) is too old, a newer one will be installed" +fi + if [[ $STATUSFLAG ]] ; then exit 0 fi From 273f744718eeb2448e438db69081a2c16c3a257d Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 10:09:03 -1000 Subject: [PATCH 04/39] install: be more informative about the choice of install tool [ci skip] --- hledger-install/hledger-install.sh | 64 +++++++++++++++++------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/hledger-install/hledger-install.sh b/hledger-install/hledger-install.sh index a148689db..59f93ce5d 100755 --- a/hledger-install/hledger-install.sh +++ b/hledger-install/hledger-install.sh @@ -847,9 +847,9 @@ print_cmd_version() { fi } -# Show the current installation status of the hledger packages and install tools. +# Show the current installation status of the hledger packages. print_installed_versions() { - for cmd in $HLEDGER_MAIN_TOOLS $HLEDGER_OTHER_TOOLS $HLEDGER_INSTALL_TOOL stack cabal ; do print_cmd_version "$cmd"; done + for cmd in $HLEDGER_MAIN_TOOLS $HLEDGER_OTHER_TOOLS $HLEDGER_INSTALL_TOOL ; do print_cmd_version "$cmd"; done } # Run a command, but first log it with "Trying" prepended. @@ -947,7 +947,40 @@ fi echo "hledger-install.sh $HLEDGER_INSTALL_VERSION $(date)" +# 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 + +# explain the planned install method +echo "Install method:" +# if stack is installed, use stack +if has_stack ; then + echo "stack is installed, using stack to install hledger" + # if it's too old, explain that we'll be installing the latest + if ! has_good_stack ; then + echo "Note: installed stack $(cmd_version stack) is too old, the latest version will be installed" + fi +# 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" + # 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" +fi + # ensure ~/.local/bin/ in PATH +# TODO should check ~/.cabal/bin if using cabal if ! on_path "$HOME_LOCAL_BIN" ; then echo "WARNING: this script installs hledger (and perhaps stack) in '$HOME_LOCAL_BIN'" echo " but this directory is not in your PATH. Adding it temporarily. To run" @@ -957,30 +990,6 @@ if ! on_path "$HOME_LOCAL_BIN" ; then export PATH=$HOME_LOCAL_BIN:$PATH fi -# show system info -echo "System info:" -quietly_run uname -rsv -quietly_run lsb_release -a - -# show current installed hledger packages and install tools -echo "Install status before:" -print_installed_versions - -# show a warning if stack is too old -if has_stack && ! has_good_stack ; then - echo "Note: stack $(cmd_version stack) is too old, a newer one will be installed" -fi - -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 -) - # try installing each package that needs installing, in turn echo ---------- @@ -1008,7 +1017,7 @@ if [[ $(cmpver "$(cmd_version hledger-api 2>/dev/null)" $HLEDGER_API_VERSION) = try_install hledger-api-$HLEDGER_API_VERSION hledger-$HLEDGER_VERSION hledger-lib-$HLEDGER_LIB_VERSION $EXTRA_DEPS echo fi -exit + # Third-party addons. We sometimes build these with an older version # of hledger[-lib], if their bounds have not been updated yet. if [[ $(cmpver "$(cmd_version hledger-diff 2>/dev/null)" $HLEDGER_DIFF_VERSION) = 2 ]]; then @@ -1037,6 +1046,7 @@ print_installed_versions # warn if $HOME/.local/bin isn't in $PATH check_home_local_bin_on_path +# TODO if we installed with cabal, we should check $HOME/.cabal/bin instead # TODO # check/require ghc-8.0.2+/lts-8+ on osx sierra+ From 08e02024b23999d43612d4e4ecaf542f450bce9d Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 11:05:22 -1000 Subject: [PATCH 05/39] install: warn and stop if old stack shadows installed one; clearer output [ci skip] --- hledger-install/hledger-install.sh | 76 +++++++++++++++++------------- 1 file changed, 42 insertions(+), 34 deletions(-) diff --git a/hledger-install/hledger-install.sh b/hledger-install/hledger-install.sh index 59f93ce5d..268f61897 100755 --- a/hledger-install/hledger-install.sh +++ b/hledger-install/hledger-install.sh @@ -50,7 +50,7 @@ HERE HLEDGER_INSTALL_TOOL=hledger-install.sh # this script's version -HLEDGER_INSTALL_VERSION=20181001 +HLEDGER_INSTALL_VERSION=20181005 # stackage version to install from when using stack # You can specify a different stackage version here, or comment out @@ -806,13 +806,20 @@ cmpver () { # install stack or a newer version of stack if needed, # or always with --force-install-stack, -# in $HOME/.local/bin +# in $HOME/.local/bin. +# After installing, check that a new-enough stack is now the first in $PATH, +# and if it's not, exit with a warning advising the user to remove the old one. ensure_stack() { if ! has_good_stack || [[ "$FORCE_INSTALL_STACK" == "true" ]] ; then echo "Installing stack" do_os + if ! has_good_stack ; then + echo "Error: an older stack ($(cmd_version stack)) is first in \$PATH, shadowing the new version." + echo "Please delete or rename $(which stack) and run hledger-install again." + exit 1 + fi fi - echo "using stack $(stack --version)" + echo "Using stack $(stack --version)" } # get a sed command that supports EREs @@ -827,10 +834,10 @@ cmd_location() { command -v "$1" } -# Get the given command's version, ie the first number in its --version output, +# Get the given command's version, ie the first number in the first line of its --version output, # or empty string if there's a problem. cmd_version() { - (command "$1" --version 2>/dev/null | grep -E '[0-9]' | $SED -e 's/[^0-9]*([0-9][0-9.]*).*/\1/') || "" + (command "$1" --version 2>/dev/null | head -n1 | grep -E '[0-9]' | $SED -e 's/[^0-9]*([0-9][0-9.]*).*/\1/') || "" } # Check whether the given command exists with given version @@ -863,29 +870,21 @@ quietly_run() { "$@" 2>/dev/null || true } -# Try to install the executables of the given package(s) to $HOME/.local/bin, -# trying several methods, generally from quickest to most reliable, continuing on failure. -# Current the installation methods are: -# - if stack is not installed and cabal is, try cabal install -# - otherwise install stack if needed and try stack install with specific resolver and ghc -# For the stack method, it's necessary to provide not only the package(s) you want to -# install but also all dependencies which are not in the specified stackage $RESOLVER. +# Try to install the executables of the given haskell package(s) and versions, +# using stack or cabal, logging the commands, continuing on failure. +# It's assumed that either a new-enough stack or cabal-install is already installed. +# stack is preferred. +# For stack, you must specify the package(s) you want to install, plus any additional +# dependency packages which are not in the stackage $RESOLVER configured above. try_install() { - (cd # ensure we install at user level, not in some project's stack/cabal setup - # cabal and not stack installed ? use cabal - (! has_cmd stack && has_cmd cabal && ( - echo "no stack installed, cabal $(cabal --numeric-version) installed; trying cabal install" && # cf cabal update step - try_info cabal install "$@" --verbose="$CABAL_VERBOSITY" ) - ) || - # use stack, installing it if missing or too old - (ensure_stack && ( - #(try_info stack install --install-ghc "$@" --verbosity=$STACK_VERBOSITY ) || # existing resolver - (try_info stack install --install-ghc $RESOLVER "$@" --verbosity="$STACK_VERBOSITY" ) # specific resolver - ) - ) || - # or give up - echo "Failed to install $@" - ) + cd # ensure we install at user level, not in some project's stack/cabal setup + if has_cmd stack ; then + try_info stack install --install-ghc $RESOLVER "$@" --verbosity="$STACK_VERBOSITY" + elif has_cmd cabal ; then + try_info cabal install "$@" --verbose="$CABAL_VERBOSITY" + else + echo "Failed to install $@" + fi } # start @@ -948,11 +947,13 @@ fi echo "hledger-install.sh $HLEDGER_INSTALL_VERSION $(date)" # show system info +echo echo "System info:" quietly_run uname -rsv quietly_run lsb_release -a # show current installed hledger packages +echo echo "Install status before:" print_installed_versions @@ -961,22 +962,29 @@ if [[ $STATUSFLAG ]] ; then 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 is installed, using stack to install hledger" + 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: installed stack $(cmd_version stack) is too old, the latest version will be installed" + 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" + 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" + 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 @@ -991,7 +999,8 @@ if ! on_path "$HOME_LOCAL_BIN" ; then fi # try installing each package that needs installing, in turn -echo ---------- +echo +echo Installing hledger packages: if [[ $(cmpver "$(cmd_version hledger 2>/dev/null)" $HLEDGER_VERSION) = 2 ]]; then echo Installing hledger @@ -1038,9 +1047,8 @@ if [[ $(cmpver "$(cmd_version hledger-interest 2>/dev/null)" $HLEDGER_INTEREST_V echo fi -echo ---------- - # show new installation status +echo echo "Install status after:" print_installed_versions From 9c0648b46aec5ab3bac2528381c1d3ef60312025 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Sat, 6 Oct 2018 04:04:12 +0800 Subject: [PATCH 06/39] test: fix a typo --- tests/cli/cli.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cli/cli.test b/tests/cli/cli.test index 8ca0b4a29..14ba31edf 100644 --- a/tests/cli/cli.test +++ b/tests/cli/cli.test @@ -20,7 +20,7 @@ # the command name. # # - RawOpts: the command name, options, and arguments parsed by cmdargs, -# as an assocation list of strings. Eg: +# as an association list of strings. Eg: # [("command","register"),("args","a"),("debug",""),("help","")] # # - CliOpts: a RawOpts, plus the same information with some additional From 30e0768e865a5421b2f75da4241a8ce17863e9bc Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 14:43:05 -1000 Subject: [PATCH 07/39] doc: save 1.11 announcement [ci skip] --- doc/ANNOUNCE | 106 +++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/doc/ANNOUNCE b/doc/ANNOUNCE index 5f53aa8c2..e0ef30524 100644 --- a/doc/ANNOUNCE +++ b/doc/ANNOUNCE @@ -1,73 +1,53 @@ -hledger (http://hledger.org) is a friendly, robust, cross-platform -program for tracking money, time or other commodities, using -double-entry accounting, simple plain text file formats, and -command-line, curses or web UIs. +Short announcement this quarter. Pleased to announce the release of hledger 1.11 on schedule! -I'm very pleased to announce hledger 1.10, including work by release -contributors: +Thanks to release contributors Joseph Weston, Dmitry Astapov, Gaith Hallak, Jakub Zárybnický, Luca Molteni, and SpicyCat. -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. +stack users will need to get a copy of hledger source and do stack install from there, due to the recent GHC 8.6 release. cabal install hledger-1.11 should work normally. -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. +From http://hledger.org/release-notes.html#hledger-1.11 : -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): +hledger 1.11 -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 +- The default display order of accounts is now influenced by the order of account directives. Accounts declared by account directives are displayed first (top-most), in declaration order, followed by undeclared accounts in alphabetical order. Numeric account codes are no longer used, and are ignored and considered deprecated. + +- So if your accounts are displaying in a weird order after upgrading, and you want them alphabetical like before, just sort your account directives alphabetically. + +- Account sorting (by name, by declaration, by amount) is now more robust and supported consistently by all commands (accounts, balance, bs..) in all modes (tree & flat, tabular & non-tabular). + +- close: new –opening/–closing flags to print only the opening or closing transaction + +- files: a new command to list included files + +- prices: query arguments are now supported. Prices can be filtered by date, and postings providing transaction prices can also be filtered. + +- rewrite: help clarifies relation to print –auto (#745) + +- roi: a new command to compute return on investment, based on hledger-irr + +- test: has more verbose output, more informative failure messages, and no longer tries to read the journal + +- csv: We use a more robust CSV lib (cassava) and now support non-comma separators, eg –separator ‘;’ (experimental, this flag will probably become a CSV rule) (#829) + +- csv: interpolated field names in values are now properly case insensitive, so this works: + +- fields …,Transaction_Date,… date %Transaction_Date + +- journal: D (default commodity) directives no longer break multiplier amounts in transaction modifiers (AKA automated postings) (#860) + +- journal: “Automated Postings” have been renamed to “Transaction Modifiers”. + +- journal: transaction comments in transaction modifier rules are now parsed correctly. (#745) + +- journal: when include files form a cycle, we give an error instead of hanging. + +- upper-case day/month names in period expressions no longer give an error (#847, #852) +Corrections: -How to get started: -------------------- +- http://hledger.org has been updated with the latest install methods. -See http://hledger.org/download for all install methods. +- hledger-install.sh now ensures a new-enough stack. -One of the easiest is the hledger-install script, which requires only -bash and will build and install the hledger tools in $HOME/.local/bin/: - -$ curl -O https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh -$ less hledger-install.sh # do security review -$ 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 - -After installation, ensure $HOME/.local/bin is in your $PATH, and try some commands: - -$ hledger -h # quick help -$ hledger help # list built-in manuals -$ hledger add # record some transactions -$ hledger # list available commands - -Next, I encourage you to at least skim the tutorials and docs at -http://hledger.org. - -Say hello and ask questions in the #hledger IRC channel on Freenode: -http://irc.hledger.org. - -New users and contributors are always welcome! Give feedback, report -bugs, send pull requests, write, evangelise, help sustain us by donating. - - -Best! --Simon +- stack users don't need to fetch hledger source, but do need to specify an extra dep on the command line, eg like so: +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 From d2ec8469c862b09b2c01d96181f51c1e41ccd27d Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 16:56:35 -1000 Subject: [PATCH 08/39] doc: new announcement template with tweaked install docs [ci skip] --- doc/ANNOUNCE | 106 ++++++++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 47 deletions(-) diff --git a/doc/ANNOUNCE b/doc/ANNOUNCE index e0ef30524..696d59b11 100644 --- a/doc/ANNOUNCE +++ b/doc/ANNOUNCE @@ -1,53 +1,65 @@ -Short announcement this quarter. Pleased to announce the release of hledger 1.11 on schedule! +hledger is a robust, cross-platform "plain text accounting" tool, for +tracking money, time, stocks, cryptocurrencies or any other commodity, +using double-entry accounting, private or shared plain text files, +revision control, and command-line, curses or web UIs. -Thanks to release contributors Joseph Weston, Dmitry Astapov, Gaith Hallak, Jakub Zárybnický, Luca Molteni, and SpicyCat. - -stack users will need to get a copy of hledger source and do stack install from there, due to the recent GHC 8.6 release. cabal install hledger-1.11 should work normally. - -From http://hledger.org/release-notes.html#hledger-1.11 : - -hledger 1.11 - -- The default display order of accounts is now influenced by the order of account directives. Accounts declared by account directives are displayed first (top-most), in declaration order, followed by undeclared accounts in alphabetical order. Numeric account codes are no longer used, and are ignored and considered deprecated. - -- So if your accounts are displaying in a weird order after upgrading, and you want them alphabetical like before, just sort your account directives alphabetically. - -- Account sorting (by name, by declaration, by amount) is now more robust and supported consistently by all commands (accounts, balance, bs..) in all modes (tree & flat, tabular & non-tabular). - -- close: new –opening/–closing flags to print only the opening or closing transaction - -- files: a new command to list included files - -- prices: query arguments are now supported. Prices can be filtered by date, and postings providing transaction prices can also be filtered. - -- rewrite: help clarifies relation to print –auto (#745) - -- roi: a new command to compute return on investment, based on hledger-irr - -- test: has more verbose output, more informative failure messages, and no longer tries to read the journal - -- csv: We use a more robust CSV lib (cassava) and now support non-comma separators, eg –separator ‘;’ (experimental, this flag will probably become a CSV rule) (#829) - -- csv: interpolated field names in values are now properly case insensitive, so this works: - -- fields …,Transaction_Date,… date %Transaction_Date - -- journal: D (default commodity) directives no longer break multiplier amounts in transaction modifiers (AKA automated postings) (#860) - -- journal: “Automated Postings” have been renamed to “Transaction Modifiers”. - -- journal: transaction comments in transaction modifier rules are now parsed correctly. (#745) - -- journal: when include files form a cycle, we give an error instead of hanging. - -- upper-case day/month names in period expressions no longer give an error (#847, #852) +I'm pleased to announce the on-schedule release of hledger 1.12. +Thanks to release contributors: A, B. -Corrections: +What's new +---------- -- http://hledger.org has been updated with the latest install methods. +hledger 1.12 -- hledger-install.sh now ensures a new-enough stack. +- -- stack users don't need to fetch hledger source, but do need to specify an extra dep on the command line, eg like so: -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 +- + +Full release notes are at http://hledger.org/release-notes.html#hledger-1.12 + + +Install +------- + +All install methods are described at http://hledger.org/download . +You can download windows binaries, or use a package manager, though in +some cases these will install an older hledger version. + +You can build the latest hledger packages with stack: + +$ stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 + hledger-1.11 [hledger-ui-1.11] [hledger-web-1.11] [hledger-api-1.11] + +or with cabal: + +$ cabal 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 + + +Getting started +--------------- + +$ hledger add # record some transactions, with guidance +$ hledger print # show recorded transactions +$ hledger balance # show totals by account +$ hledger -h # show quick help +$ hledger # list available commands +$ hledger help # list built-in manuals + +To get oriented, see the tutorials and manuals at http://hledger.org . +To get help, say hello and ask questions in the #hledger IRC channel +on Freenode, accessible at http://irc.hledger.org . +New users and all forms of help are always welcome! + + +Best, +-Simon From 093c6c7e3e697ae178ce167c0ed5855d503fd266 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 18:54:20 -1000 Subject: [PATCH 09/39] doc: relnotes: add ui/web/api [ci skip] --- site/release-notes.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/site/release-notes.md b/site/release-notes.md index fb0c1f160..791a310e2 100644 --- a/site/release-notes.md +++ b/site/release-notes.md @@ -81,9 +81,9 @@ fixes [hledger](#hledger-1.11-1) - - - +| [hledger-ui](#hledger-ui-1.11) +| [hledger-web](#hledger-web-1.11) +| [hledger-api](#hledger-api-1.11) | [hledger-lib](#hledger-lib-1.11) | [credits](#credits-1.11) @@ -144,6 +144,22 @@ fixes * upper-case day/month names in period expressions no longer give an error (#847, #852) + +### hledger-ui 1.11 + +* uses hledger-lib 1.11 + + +### hledger-web 1.11 + +* uses hledger-lib 1.11 + + +### hledger-api 1.11 + +* uses hledger-lib 1.11 + + ### hledger-lib 1.11 * compilation now works when locale is unset (#849) From 6f4088edbd7831560e01798237d4be3804c94d70 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 5 Oct 2018 18:59:50 -1000 Subject: [PATCH 10/39] doc: relnotes: linkify issue numbers since hledger 1.1 [ci skip] --- site/release-notes.md | 152 +++++++++++++++++++++--------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/site/release-notes.md b/site/release-notes.md index 791a310e2..b4326120c 100644 --- a/site/release-notes.md +++ b/site/release-notes.md @@ -115,7 +115,7 @@ fixes * prices: query arguments are now supported. Prices can be filtered by date, and postings providing transaction prices can also be filtered. -* rewrite: help clarifies relation to print --auto (#745) +* rewrite: help clarifies relation to print --auto ([#745](https://github.com/simonmichael/hledger/issues/745)) * roi: a new command to compute return on investment, based on hledger-irr @@ -124,7 +124,7 @@ fixes * csv: We use a more robust CSV lib (cassava) and now support non-comma separators, eg --separator ';' (experimental, this flag - will probably become a CSV rule) (#829) + will probably become a CSV rule) ([#829](https://github.com/simonmichael/hledger/issues/829)) * csv: interpolated field names in values are now properly case insensitive, so this works: @@ -133,16 +133,16 @@ fixes date %Transaction_Date * journal: D (default commodity) directives no longer break multiplier - amounts in transaction modifiers (AKA automated postings) (#860) + amounts in transaction modifiers (AKA automated postings) ([#860](https://github.com/simonmichael/hledger/issues/860)) * journal: "Automated Postings" have been renamed to "Transaction Modifiers". -* journal: transaction comments in transaction modifier rules are now parsed correctly. (#745) +* journal: transaction comments in transaction modifier rules are now parsed correctly. ([#745](https://github.com/simonmichael/hledger/issues/745)) * journal: when include files form a cycle, we give an error instead of hanging. -* upper-case day/month names in period expressions no longer give an error (#847, #852) +* upper-case day/month names in period expressions no longer give an error ([#847](https://github.com/simonmichael/hledger/issues/847), [#852](https://github.com/simonmichael/hledger/issues/852)) ### hledger-ui 1.11 @@ -162,7 +162,7 @@ fixes ### 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 @@ -276,7 +276,7 @@ misc fixes * readJournalFile(s) cleanup, these now use InputOpts -* doctests now run a bit faster (#802) +* doctests now run a bit faster ([#802](https://github.com/simonmichael/hledger/issues/802)) ### hledger 1.10 @@ -284,16 +284,16 @@ misc fixes * journal: many parse error messages have become more informative, and some now show the source line and error location. -* journal: `;tag:` is no longer parsed as a tag named ";tag" (#655) +* journal: `;tag:` is no longer parsed as a tag named ";tag" ([#655](https://github.com/simonmichael/hledger/issues/655)) * journal: transaction price amounts having their own price amounts is now a parse error * journal: amounts with space as digit group separator and trailing whitespace - now parse correctly (#780) + now parse correctly ([#780](https://github.com/simonmichael/hledger/issues/780)) * journal: in amounts containing digits and a single space, the space - is now interpreted as a digit group separator, not a decimal separator (#749) + is now interpreted as a digit group separator, not a decimal separator ([#749](https://github.com/simonmichael/hledger/issues/749)) * journal: in commodity/format/D directives, the amount must now include a decimal separator. @@ -314,7 +314,7 @@ misc fixes semantics, especially with multiple files. The manual now describes their behaviour precisely. -* journal: `alias` and `apply account` directives now affect `account` directives (#825) +* journal: `alias` and `apply account` directives now affect `account` directives ([#825](https://github.com/simonmichael/hledger/issues/825)) * journal: periodic transactions can now have all the usual transaction fields (status mark, code, description, comment), for generating more expressive @@ -324,18 +324,18 @@ misc fixes expression attached as a tag named "recur". * journal: periodic transactions now start on the first instance of the - recurring date, rather than the day after the last regular transaction (#750) + recurring date, rather than the day after the last regular transaction ([#750](https://github.com/simonmichael/hledger/issues/750)) * journal: periodic transaction rules now allow period expressions relative to today's date * csv: amount-in/amount-out errors are more detailed * balance: --drop is now ignored when not in flat mode, - rather than producing a corrupted report (#754) + rather than producing a corrupted report ([#754](https://github.com/simonmichael/hledger/issues/754)) * budget: --drop now preserves the 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 @@ -344,7 +344,7 @@ misc fixes ### hledger-ui 1.10 -* the effect of --value, --forecast, and --anon flags is now preserved on reload (#753) +* the effect of --value, --forecast, and --anon flags is now preserved on reload ([#753](https://github.com/simonmichael/hledger/issues/753)) * edit-at-transaction-position is now also supported when $EDITOR is neovim @@ -438,7 +438,7 @@ found when reading files. customize sorting. bal/bs/cf/is will sort accounts by account code, if any, then account name. -* journal: support scientific number notation (#704, #706) +* journal: support scientific number notation ([#704](https://github.com/simonmichael/hledger/issues/704), [#706](https://github.com/simonmichael/hledger/issues/706)) * csv: reading a CSV file containing no records is no longer an error @@ -546,23 +546,23 @@ Alvaro Fernando García. ### hledger-lib 1.5 -* -V/--value uses today's market prices by default, not those of last transaction date. #683, #648) +* -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648)) * csv: allow balance assignment (balance assertion only, no amount) in csv records (Nadrieril) -* journal: allow space as digit group separator character, #330 (Mykola Orliuk) +* journal: allow space as digit group separator character, [#330](https://github.com/simonmichael/hledger/issues/330) (Mykola Orliuk) -* journal: balance assertion errors now show line of failed assertion posting, #481 (Sam Jeeves) +* journal: balance assertion errors now show line of failed assertion posting, [#481](https://github.com/simonmichael/hledger/issues/481) (Sam Jeeves) -* journal: better errors for directives, #402 (Mykola Orliuk) +* journal: better errors for directives, [#402](https://github.com/simonmichael/hledger/issues/402) (Mykola Orliuk) -* journal: better errors for included files, #660 (Mykola Orliuk) +* journal: better errors for included files, [#660](https://github.com/simonmichael/hledger/issues/660) (Mykola Orliuk) -* journal: commodity directives in parent files are inherited by included files, #487 (Mykola Orliuk) +* journal: commodity directives in parent files are inherited by included files, [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk) -* journal: commodity directives limits precision even after -B, #509 (Mykola Orliuk) +* journal: commodity directives limits precision even after -B, [#509](https://github.com/simonmichael/hledger/issues/509) (Mykola Orliuk) -* journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. #399, #487 (Mykola Orliuk) +* journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. [#399](https://github.com/simonmichael/hledger/issues/399), [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk) * journal: numbers are parsed more strictly (Mykola Orliuk) @@ -588,7 +588,7 @@ Alvaro Fernando García. * --forecast generates Ledger-style periodic transactions in the future (Dmitry Astapov, Mykola Orliuk) -* -V/--value uses today's market prices by default, not those of last transaction date. #683, #648 +* -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648) * add: suggest implied (parent) and declared (by account directives) account names also @@ -601,14 +601,14 @@ Alvaro Fernando García. * import: the output of --dry-run is now valid journal format * print: -B shows converted amounts again, as in 1.1, even without - -x. #551 (Mykola Orliuk, Simon Michael) + -x. [#551](https://github.com/simonmichael/hledger/issues/551) (Mykola Orliuk, Simon Michael) * tag: the first argument now filters tag names, additional arguments - filter transactions (#261) + filter transactions ([#261](https://github.com/simonmichael/hledger/issues/261)) ### hledger-ui 1.5 -* fix help -> view manual (on posix platforms) #623 +* fix help -> view manual (on posix platforms) [#623](https://github.com/simonmichael/hledger/issues/623) * support -V/--value, --forecast, --auto @@ -680,7 +680,7 @@ all major hledger packages. See http://hledger.org/download for details. * add readJournalFile[s]WithOpts, with simpler arguments and support for detecting new transactions since the last read. -* query: add payee: and note: query terms, improve description/payee/note docs (Jakub Zárybnický, Simon Michael, #598, #608) +* query: add payee: and note: query terms, improve description/payee/note docs (Jakub Zárybnický, Simon Michael, [#598](https://github.com/simonmichael/hledger/issues/598), [#608](https://github.com/simonmichael/hledger/issues/608)) * journal, cli: make trailing whitespace significant in regex account aliases Trailing whitespace in the replacement part of a regular expression @@ -701,7 +701,7 @@ This simplifies things and facilitates future improvements. * deps: allow ansi-terminal 0.7 -* deps: add missing parsec lower bound, possibly related to #596, fpco/stackage#2835 +* deps: add missing parsec lower bound, possibly related to [#596](https://github.com/simonmichael/hledger/issues/596), [fpco/stackage#2835](https://github.com/fpco/stackage/issues/2835) * deps: drop oldtime flag, require time 1.5+ @@ -711,18 +711,18 @@ This simplifies things and facilitates future improvements. -* Fix a bug with -H showing nothing for empty periods (#583, Nicholas Niro) +* Fix a bug with -H showing nothing for empty periods ([#583](https://github.com/simonmichael/hledger/issues/583), Nicholas Niro) This patch fixes a bug that happened when using the -H option on a period without any transaction. Previously, the behavior was no output at all even though it should have shown the previous ending balances of past transactions. (This is similar to previously using -H with -E, but with the extra advantage of not showing empty accounts) -* allow megaparsec 6 (#594) +* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594)) * allow megaparsec-6.1 (Hans-Peter Deifel) -* fix test suite with Cabal 2 (#596) +* fix test suite with Cabal 2 ([#596](https://github.com/simonmichael/hledger/issues/596)) ### hledger 1.4 @@ -736,9 +736,9 @@ but with the extra advantage of not showing empty accounts) * cli: accept -NUM as a shortcut for --depth=NUM (eg: -2) -* cli: improve command-line help for --date2 (#604) +* cli: improve command-line help for --date2 ([#604](https://github.com/simonmichael/hledger/issues/604)) -* cli: make --help and -h the same, drop --man and --info for now (#579) +* cli: make --help and -h the same, drop --man and --info for now ([#579](https://github.com/simonmichael/hledger/issues/579)) * help: offers multiple formats, accepts topic substrings. The separate info/man commands have been dropped. help now @@ -750,7 +750,7 @@ but with the extra advantage of not showing empty accounts) - otherwise it prints on stdout - (and it always prints on stdout when piped). You can override this with the `--info`/`--man`/`--pager`/`--cat` flags. - (#579) + ([#579](https://github.com/simonmichael/hledger/issues/579)) * bal/bs/cf/is: --sort-amount/-S sorts by largest amount instead of account name @@ -763,9 +763,9 @@ but with the extra advantage of not showing empty accounts) single final blank line. Previously, amounts wider than the column headings would be separated by only a single space. -* bs/is: don't let an empty subreport disable the grand totals (fixes #588) +* bs/is: don't let an empty subreport disable the grand totals (fixes [#588](https://github.com/simonmichael/hledger/issues/588)) -* cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, #584) +* cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, [#584](https://github.com/simonmichael/hledger/issues/584)) * new balancesheetequity command: like balancesheet but also shows equity accounts (Nicholas Niro) @@ -801,9 +801,9 @@ but with the extra advantage of not showing empty accounts) -* 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) @@ -813,7 +813,7 @@ but with the extra advantage of not showing empty accounts) * a @FILE argument reads flags & args from FILE, one per line -* enable --pivot and --anon options, like hledger CLI (#474) (Jakub Zárybnický) +* enable --pivot and --anon options, like hledger CLI ([#474](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický) * accept -NUM as a shortcut for --depth NUM @@ -823,7 +823,7 @@ but with the extra advantage of not showing empty accounts) -* 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) @@ -837,9 +837,9 @@ but with the extra advantage of not showing empty accounts) * a @FILE argument reads flags & args from FILE, one per line -* enable --pivot and --anon options, like hledger CLI (#474) (Jakub Zárybnický) +* enable --pivot and --anon options, like hledger CLI ([#474](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický) -* web: Make "Add transaction" button tabbable (#430) (Jakub Zárybnický) +* web: Make "Add transaction" button tabbable ([#430](https://github.com/simonmichael/hledger/issues/430)) (Jakub Zárybnický) * accept -NUM as a shortcut for --depth NUM @@ -851,7 +851,7 @@ but with the extra advantage of not showing empty accounts) -* 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) @@ -859,7 +859,7 @@ but with the extra advantage of not showing empty accounts) ### hledger-api 1.4 -* api: add support for swagger2 2.1.5+ (fixes #612) +* api: add support for swagger2 2.1.5+ (fixes [#612](https://github.com/simonmichael/hledger/issues/612)) @@ -927,19 +927,19 @@ make changelog-draft shows the commits since last tag as org nodes The "uncleared" transaction/posting status (and associated UI flags and keys) has been renamed to "unmarked" to remove ambiguity and confusion. See the issue and linked mail list discussion for more -background. (#564) +background. ([#564](https://github.com/simonmichael/hledger/issues/564)) #### csv format In CSV conversion rules, assigning to the "balance" field name -creates balance assertions (#537, Dmitry Astapov). +creates balance assertions ([#537](https://github.com/simonmichael/hledger/issues/537), Dmitry Astapov). -Doubled minus signs are handled more robustly (fixes #524, Nicolas +Doubled minus signs are handled more robustly (fixes [#524](https://github.com/simonmichael/hledger/issues/524), Nicolas Wavrant, Simon Michael) #### Misc -Multiple status: query terms are now OR'd together. (#564) +Multiple status: query terms are now OR'd together. ([#564](https://github.com/simonmichael/hledger/issues/564)) Deps: allow megaparsec 5.3. @@ -952,21 +952,21 @@ and keys, have been renamed to "unmarked" to remove ambiguity and confusion. This means that we have dropped the `--uncleared` flag, and our `-U` flag now matches only unmarked things and not pending ones. See the issue and linked mail list discussion for more -background. (#564) +background. ([#564](https://github.com/simonmichael/hledger/issues/564)) Also the -P short flag has been added for --pending, and the -U/-P/-C flags can be combined. -bs/is: fix "Ratio has zero denominator" error (#535) +bs/is: fix "Ratio has zero denominator" error ([#535](https://github.com/simonmichael/hledger/issues/535)) -bs/is/cf: fix --flat (#552) (Justin Le, Simon Michael) +bs/is/cf: fix --flat ([#552](https://github.com/simonmichael/hledger/issues/552)) (Justin Le, Simon Michael) bal/bs/is/cf: show negative amounts in red (Simon Michael, Justin Le). These commands now show negative amounts in red, when hledger detects that ANSI codes are supported, (ie when TERM is not "dumb" and stdout is not being redirected or piped). -print: show pending mark on postings (fixes #563). +print: show pending mark on postings (fixes [#563](https://github.com/simonmichael/hledger/issues/563)). A pending mark on postings is now displayed, just like a cleared mark. Also there will now be a space between the mark and account name. @@ -980,7 +980,7 @@ prices: add --inverted-costs flag, sort output, increase precision rewrite: add support for rewriting multipler postings into different commodities. For example, postings in hours can be used to generate -postings in USD. (#557) (Christian G. Warden) +postings in USD. ([#557](https://github.com/simonmichael/hledger/issues/557)) (Christian G. Warden) `make addons` compiles the experimental add-ons. @@ -992,11 +992,11 @@ The "uncleared" status, and associated UI flags and keys, have been renamed to "unmarked" to remove ambiguity and confusion. This means that we have dropped the `--uncleared` flag, and our `-U` flag now matches only unmarked things and not pending ones. See the issue and -linked mail list discussion for more background. (#564) +linked mail list discussion for more background. ([#564](https://github.com/simonmichael/hledger/issues/564)) The P key toggles pending mode, consistent with U (unmarked) and C (cleared). There is also a temporary --status-toggles flag for testing -other toggle styles; see `hledger-ui -h`. (#564) +other toggle styles; see `hledger-ui -h`. ([#564](https://github.com/simonmichael/hledger/issues/564)) There is now less "warping" of selection when lists change: @@ -1029,7 +1029,7 @@ Emacs movement keys are now supported, as well as VI keys. In the transaction screen, amounts are now better aligned, eg when there are posting status marks or virtual postings. -Deps: allow brick 0.19 (#575, Felix Yan, Simon Michael) +Deps: allow brick 0.19 ([#575](https://github.com/simonmichael/hledger/issues/575), Felix Yan, Simon Michael) ### hledger-web 1.3 @@ -1083,7 +1083,7 @@ Michael Walker. bump stack config to latest lts, bump brick to 0.15.2 to allow hledger-iadd install in hledger dir, -update cabal files to latest hpack 0.17.0/stack 1.4 format (#512), +update cabal files to latest hpack 0.17.0/stack 1.4 format ([#512](https://github.com/simonmichael/hledger/issues/512)), use more accurate license tag in Cabal file (Peter Simons). #### Finance @@ -1149,13 +1149,13 @@ been disabled, reducing build dependencies. #### Misc -Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% (#483) (Mykola Orliuk) +Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% ([#483](https://github.com/simonmichael/hledger/issues/483)) (Mykola Orliuk) -Fix a few spaceleaks (#413) (Moritz Kiefer) +Fix a few spaceleaks ([#413](https://github.com/simonmichael/hledger/issues/413)) (Moritz Kiefer) Add Ledger.Parse.Text to package.yaml, fixing a potential build failure. -Allow megaparsec 5.2 (#503) +Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503)) Rename optserror -> usageError, consolidate with other error functions @@ -1164,7 +1164,7 @@ Rename optserror -> usageError, consolidate with other error functions #### CLI "hledger" and "hledger -h" now print a better organised commands list -and general usage message respectively (#297). +and general usage message respectively ([#297](https://github.com/simonmichael/hledger/issues/297)). The common reporting flags can now be used anywhere on the command line. @@ -1228,7 +1228,7 @@ handles prices better, and adds balance assertions (Mykola Orliuk). The rewrite command is more robust and powerful (Mykola Orliuk): - in addition to command-line rewrite options, it understands rewrite rules - defined in the journal, similar to Ledger's automated transactions (#99). + defined in the journal, similar to Ledger's automated transactions ([#99](https://github.com/simonmichael/hledger/issues/99)). Eg: ```journal = ^income @@ -1253,7 +1253,7 @@ The rewrite command is more robust and powerful (Mykola Orliuk): #### balance A new --pretty-tables option uses unicode characters for rendering -table borders in multicolumn reports (#522) (Moritz Kiefer) +table borders in multicolumn reports ([#522](https://github.com/simonmichael/hledger/issues/522)) (Moritz Kiefer) #### balancesheet/cashflow/incomestatement @@ -1262,43 +1262,43 @@ and generally having the same features as the balance command. (Justin Le) balancesheet has always ignored a begin date specified with a `-b` or `-p` option; now it also ignores a begin date specified with a `date:` -query. (Related discussion at #531) +query. (Related discussion at [#531](https://github.com/simonmichael/hledger/issues/531)) #### print -The output of print is now always a valid journal (fixes #465) (Mykola Orliuk). +The output of print is now always a valid journal (fixes [#465](https://github.com/simonmichael/hledger/issues/465)) (Mykola Orliuk). print now tries to preserves the format of implicit/explicit balancing amounts and prices, by default. To print with all amounts explicit, -use the new `--explicit/-x` flag (fixes #442). (Mykola Orliuk) +use the new `--explicit/-x` flag (fixes [#442](https://github.com/simonmichael/hledger/issues/442)). (Mykola Orliuk) -Don't lose the commodity of zero amounts/zero balance assertions (fixes #475) (Mykola Orliuk) +Don't lose the commodity of zero amounts/zero balance assertions (fixes [#475](https://github.com/simonmichael/hledger/issues/475)) (Mykola Orliuk) #### Misc -Fix a regression in the readability of option parsing errors (#478) (Hans-Peter Deifel) +Fix a regression in the readability of option parsing errors ([#478](https://github.com/simonmichael/hledger/issues/478)) (Hans-Peter Deifel) Fix an example in Cli/Main.hs (Steven R. Baker) -Allow megaparsec 5.2 (#503) +Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503)) ### hledger-ui 1.2 -Fix a pattern match failure when pressing E on the transaction screen (fixes #508) +Fix a pattern match failure when pressing E on the transaction screen (fixes [#508](https://github.com/simonmichael/hledger/issues/508)) -Accounts with ? in name had empty registers (fixes #498) (Bryan Richter) +Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter) Allow brick 0.16 (Joshua Chia) and brick 0.17/vty 0.15 (Peter Simons) -Allow megaparsec 5.2 (fixes #503) +Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503)) Allow text-zipper 0.10 ### hledger-web 1.2 -Accounts with ? in name had empty registers (fixes #498) (Bryan Richter) +Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter) -Allow megaparsec 5.2 (fixes #503) +Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503)) From 92e9cbaa0ff5e5d6d15e6957795dc90868713900 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 6 Oct 2018 07:57:50 -1000 Subject: [PATCH 11/39] site: download: overhaul platform instructions [ci skip] --- site/download.md | 60 ++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/site/download.md b/site/download.md index 01a843e28..15f63570e 100644 --- a/site/download.md +++ b/site/download.md @@ -1,11 +1,17 @@ -\$toc\$ - # Download -Adventurer, choose your path! No, really it's quite easy. Often. Do you want to.. +There are a number of ways to install hledger, with different speed/freshness/security tradeoffs: + +a. [Download the binary or system package for your platform](#a.-download-a-binary-or-system-package) (quick, often not the latest version) +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, fresh) +c. [Build the development version with stack or cabal](#c.-build-the-development-version) (slow, super-fresh) + + -## a. download a binary/system package +## a. Download a binary or system package -hledger binaries or system packages are quickest to install, -but they can be [out of date](https://repology.org/metapackage/hledger/badges) or incomplete. -(Please help your local packagers with this!). +Binaries or system packages are quickest to install, but they can be outdated or incomplete. +(Please help/report issues to packagers.) -| -|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -| 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) ([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) ) -| Mac: | **`brew install hledger`** ([only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520)) -| Arch Linux: | **`pacman -S hledger`** -| Debian, Ubuntu: | **`sudo apt install hledger hledger-ui hledger-web`** -| Fedora, RHEL: | **`sudo dnf install hledger`** -| Gentoo: | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`** -| Void Linux: | **`xbps-install -S hledger hledger-ui hledger-web hledger-api`** -| OpenBSD: | Third-party binaries: [OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html). Ports tree entries: [https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104) -| NixOS: | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`** ([problems with hledger-ui on MacOS ?](https://github.com/simonmichael/hledger/issues/613)) -| Sandstorm: | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90) -> demo** - a hledger-web server in 3 clicks ([features needed](https://github.com/simonmichael/hledger/issues/425)) +**Available binaries and system packages:** + +| Platform | Command/Link | Installs version
([as of 20181006](https://repology.org/metapackage/hledger/badges), latest is 1.11) +|----------------------|------------------------|---------------------------------------------------------------------------------------- +| Mac | **`brew install hledger`**
[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520) | 1.10 +| Windows | Developer binaries: **[1.10](https://ci.appveyor.com/api/buildjobs/5n63x22wvd4j24ee/artifacts/hledger.zip)**
[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) | 1.10 +|   | +| Arch Linux | **`pacman -S hledger`** | 1.11 +| 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`** ? | ? +| 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 | ? | +| NetBSD | ? | +| OpenBSD | Ports: **[https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104)**
Third-party binaries: **[OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html)** | 1.10 +|   | +| NixOS | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`**
[problems with hledger-ui on MacOS ?](https://github.com/simonmichael/hledger/issues/613) | 1.5 (stable), 1.11 (unstable) +| Sandstorm | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)**
[features needed](https://github.com/simonmichael/hledger/issues/425) | 1.9.2 @@ -73,8 +90,7 @@ Also, here are some known build issues and workarounds:\ The latest version of our [hledger-install script](https://github.com/simonmichael/hledger/tree/master/hledger-install) ([changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh)) is recommended as the easiest and most-likely-to-just-work build method, -on GNU/linux, mac and freeBSD -(and possibly other BSDs if you install cabal-install first, or on unixlike environments on windows): +on at least GNU/linux and mac (it requires /bin/bash): - it requires only bash and curl/wget, and internet access - it automates the install process using stack or cabal, avoiding common pitfalls From 3dbf97babd31440192d4910817d535d6b656dc68 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 6 Oct 2018 09:12:55 -1000 Subject: [PATCH 12/39] site: download: tweaks [ci skip] --- site/download.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/site/download.md b/site/download.md index 15f63570e..08b77a0e0 100644 --- a/site/download.md +++ b/site/download.md @@ -1,20 +1,21 @@ # Download -There are a number of ways to install hledger, with different speed/freshness/security tradeoffs: +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, often not the latest version) +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, fresh) -c. [Build the development version with stack or cabal](#c.-build-the-development-version) (slow, super-fresh) + 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. Download a binary or system package +## a. Download a binary or system package for your platform Binaries or system packages are quickest to install, but they can be outdated or incomplete. -(Please help/report issues to packagers.) **Available binaries / system packages:** +
+(please [update this page](https://github.com/simonmichael/hledger/edit/master/site/download.md) / +
report issues to packagers) +
| Platform | Command/Link | Installs version
([as of 20181006](https://repology.org/metapackage/hledger/badges), latest is [1.11](http://hledger.org/release-notes)) |----------------------|------------------------|---------------------------------------------------------------------------------------- -| Mac | **`brew install hledger`**
[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520) | 1.11 -| Windows | Developer binaries: **[1.10](https://ci.appveyor.com/api/buildjobs/5n63x22wvd4j24ee/artifacts/hledger.zip)**
[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) | 1.10 +| [Mac][] | **`brew install hledger`**
[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520) | 1.11 +| [Windows][] | Developer binaries: **[1.10](https://ci.appveyor.com/api/buildjobs/5n63x22wvd4j24ee/artifacts/hledger.zip)**
[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) | 1.10 |   | -| Arch Linux | **`pacman -S hledger`** | 1.11 +| [Arch Linux][] | **`pacman -S hledger`** | 1.11 | CentOS | ? | -| 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 +| [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`** ? | ? -| 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 +| [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 | ? | | NetBSD | ? | | OpenBSD | Ports: **[https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104)**
Third-party binaries: **[OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html)** | 1.10 |   | -| NixOS | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`**
[problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613) | 1.5 (stable), 1.11 (unstable) +| [NixOS][] | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`**
[problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613) | 1.5 (stable), 1.11 (unstable) | Sandstorm | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)**
[features needed](https://github.com/simonmichael/hledger/issues/425) | 1.9.2 +[Mac]: https://formulae.brew.sh/formula/hledger +[Windows]: https://ci.appveyor.com/project/simonmichael/hledger +[Arch Linux]: https://www.archlinux.org/packages/?sort=&q=hledger +[Debian]: https://packages.debian.org/search?searchon=names&keywords=hledger +[Fedora]: https://apps.fedoraproject.org/packages/s/hledger +[Gentoo]: https://gentoo.zugaina.org/Search?search=hledger +[Ubuntu]: https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=hledger +[Void Linux]: https://voidlinux.org/packages/?q=hledger +[NixOS]: http://hydra.nixos.org/search?query=hledger + From 36af23ff5af72805ccb84fae61ccc07a9b449ab3 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 7 Oct 2018 10:07:31 -1000 Subject: [PATCH 35/39] appveyor: try older ghc again, skip tests for now (#888) [ci skip] --- .appveyor.yml | 14 ++++++++------ hledger/Hledger/Cli/Commands.hs | 4 ++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index b97387427..ca3ffc621 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -69,12 +69,12 @@ install: # # install ghc #- stack setup -# use ghc 8.2 to avoid a hledger-web -> network/stack build issue on windows, -# network 2.7.0.1 should work around it when released +# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue # https://github.com/haskell/network/issues/313 # https://github.com/commercialhaskell/stack/issues/3944 -#- stack --stack-yaml=stack-ghc8.2.yaml setup -- stack setup +# network 2.7.0.1 is supposed to work around it +- stack setup --stack-yaml=stack-ghc8.2.yaml +#- stack setup #- set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH% #- stack install shelltestrunner @@ -83,9 +83,11 @@ install: # hledger-ui's vty dep isn't available on windows # hledger-api not tried recently build_script: -#- stack build --test --copy-bins --local-bin-path=. hledger hledger-web # use network 2.7.0.1+ to avoid https://github.com/haskell/network/issues/313 -- stack build --test --copy-bins --local-bin-path=. hledger hledger-web network-2.7.0.2 +#- stack build --test --copy-bins --local-bin-path=. hledger hledger-web network-2.7.0.2 +# use ghc 8.2 to avoid hledger-web -> network/stack/ghc/windows build issue +# don't run test suites to avoid easytest/windows utf8 issue +- stack build --copy-bins --local-bin-path=. hledger hledger-web --stack-yaml=stack-ghc8.2.yaml - 7z a -tzip hledger.zip hledger.exe hledger-web.exe #- hledger-install/hledger-install.sh diff --git a/hledger/Hledger/Cli/Commands.hs b/hledger/Hledger/Cli/Commands.hs index 9e0bb4118..68d10e7d6 100644 --- a/hledger/Hledger/Cli/Commands.hs +++ b/hledger/Hledger/Cli/Commands.hs @@ -244,6 +244,10 @@ FLAGS testcmd :: CliOpts -> Journal -> IO () testcmd opts _undefined = do let args = words' $ query_ $ reportopts_ opts + -- workaround for https://github.com/joelburget/easytest/issues/11 +-- import System.IO (hSetEncoding, stdout, stderr, utf8) +-- hSetEncoding stdout utf8 +-- hSetEncoding stderr utf8 e <- runEasytests args $ EasyTest.tests [tests_Hledger, tests_Commands] if e then exitFailure else exitSuccess From d6508f8c4e8415d631927d4034fee3343a586e53 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 7 Oct 2018 16:10:30 -1000 Subject: [PATCH 36/39] site: download: 1.11 windows binary [ci skip] --- site/download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/download.md b/site/download.md index 5a4e18789..a3e54476a 100644 --- a/site/download.md +++ b/site/download.md @@ -48,7 +48,7 @@ Binaries or system packages are quickest to install, but they can be outdated or | Platform | Command/Link | Installs version
([as of 20181006](https://repology.org/metapackage/hledger/badges), latest is [1.11](http://hledger.org/release-notes)) |----------------------|------------------------|---------------------------------------------------------------------------------------- | [Mac][] | **`brew install hledger`**
[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520) | 1.11 -| [Windows][] | Developer binaries: **[1.10](https://ci.appveyor.com/api/buildjobs/5n63x22wvd4j24ee/artifacts/hledger.zip)**
[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) | 1.10 +| [Windows][] | Developer binaries: **[1.11](https://ci.appveyor.com/api/buildjobs/rppu7oo05u283p0w/artifacts/hledger.zip)**
[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) | 1.11 |   | | [Arch Linux][] | **`pacman -S hledger`** | 1.11 | CentOS | ? | From f5ac8f82b2a720330f3e48a4e1728712264a2467 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 7 Oct 2018 17:02:39 -1000 Subject: [PATCH 37/39] site: download: tweaks; start collecting packager contact info [ci skip] --- site/download.md | 63 +++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/site/download.md b/site/download.md index a3e54476a..71d78cb93 100644 --- a/site/download.md +++ b/site/download.md @@ -63,18 +63,35 @@ Binaries or system packages are quickest to install, but they can be outdated or | NetBSD | ? | | OpenBSD | Ports: **[https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104)**
Third-party binaries: **[OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html)** | 1.10 |   | -| [NixOS][] | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`**
[problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613) | 1.5 (stable), 1.11 (unstable) +| [Nix][] | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`**
[problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613) | 1.5 (stable), 1.11 (unstable) | Sandstorm | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)**
[features needed](https://github.com/simonmichael/hledger/issues/425) | 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 -[NixOS]: http://hydra.nixos.org/search?query=hledger +[Void Linux contact]: mailto: + +[Nix]: http://hydra.nixos.org/search?query=hledger +[Nix contact]: mailto: @@ -83,19 +100,17 @@ Binaries or system packages are quickest to install, but they can be outdated or 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. -Here are some tips, just in case you need them: +But first, some tips: -- Building all of hledger for the first time could take as much as an - hour, 1-2G of free memory, and 1-2G of disk space. (We make use of - a lot of fine Haskell software.) You can kill and restart the - build without losing progress, and future builds will be much - faster. +- Building all hledger tools and dependencies for the first time could + take as much as an hour, 1-2G of free memory, and 1-2G of disk + space. You can kill and restart the build without losing progress, + and future builds will be much faster. -- If building fails with link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"), +- If you get link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"), you might need to install some extra system packages and try again. - Check the list below, or do a web search for the error message to find the required package + To find the right system package, check the list below, or do a web search for the error message (and please send updates for this list): | @@ -116,6 +131,12 @@ Here are some tips, just in case you need them: [windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\ +- 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). +
@@ -152,18 +173,9 @@ like [hledger-diff](http://hackage.haskell.org/package/hledger-diff), [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd), or [hledger-interest](http://hackage.haskell.org/package/hledger-interest) -can be installed similarly: - - **`stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 hledger-1.11 hledger-ui-1.11 hledger-diff-0.2.0.14 hledger-iadd-1.3.6 hledger-interest-1.5.2`**\ - -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). - +can be installed like so: + **`stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 hledger-diff-0.2.0.14 hledger-iadd-1.3.6 hledger-interest-1.5.2`**\ @@ -172,14 +184,15 @@ or [email](docs.html#helpfeedback). [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`**\ + **`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`**\
#### Set up PATH -After installation, make sure the install directory is in your \$PATH, preferably near the start. -You will probably see a message about this. +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 From 881966207ff61a3a24350ff38e5e9443888cba5b Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 7 Oct 2018 19:47:28 -1000 Subject: [PATCH 38/39] stack: trial build plan for ghc 8.6 (#883) [ci skip] --- stack-ghc8.6.yaml | 81 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 stack-ghc8.6.yaml diff --git a/stack-ghc8.6.yaml b/stack-ghc8.6.yaml new file mode 100644 index 000000000..cd0bd7bdc --- /dev/null +++ b/stack-ghc8.6.yaml @@ -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] From dcf4c07ac8369469c9d8a80884d116bf5865682a Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Tue, 9 Oct 2018 08:17:16 -0700 Subject: [PATCH 39/39] journal: commented test for Y and periodic transactions (#892) [ci skip] --- tests/budget/forecast.test | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/budget/forecast.test b/tests/budget/forecast.test index 377447439..f97e3af64 100644 --- a/tests/budget/forecast.test +++ b/tests/budget/forecast.test @@ -104,3 +104,22 @@ hledger register -b 2015-12 -e 2017-02 -f - assets:cash --forecast 2017/01/01 assets:cash $10000 $9390 >>>2 >>>=0 + +# TODO +# 5. Y should affect the partial date in this periodic transaction. +# Also the recur tag's value ? +#hledger -f - print --forecast desc:forecast +#<<< +#Y 2000 +# +#~ 2/1 forecast +# +#; a real transaction to set --forecast's start date +#2000/1/1 real +# +#>>> +#2000/02/01 forecast +# ; recur: 2000/2/1 +# +#>>>2 +#>>>=0