hledger/hledger-ui/package.yaml
Simon Michael 499e20c0b2 lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11
fail is moving out of Monad and into it's own MonadFail class.
This will be enforced in GHC 8.8 (I think).

base-compat/base-compat-batteries 0.11.0 have adapted to this,
and are approaching stackage nightly
(https://github.com/commercialhaskell/stackage/issues/4802).

hledger is now ready to build with base-compat-batteries 0.11.0, once
all of our deps do (eg aeson). We are still compatible with the older
0.10.x and GHC 7.10.3 as well.

For now we are using both fails:

- new fail (from Control.Monad.Fail), used in our parsers, imported
  via base-compat-batteries Control.Monad.Fail.Compat to work with
  older GHC versions.

- old fail (from GHC.Base, exported by Prelude, Control.Monad,
  Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's
  Test, since I couldn't find their existing fail implementation to update.

To reduce (my) confusion, these are imported carefully, consistently,
and qualified everywhere as Fail.fail and Prelude.fail, with clashing
re-exports suppressed, like so:

import Prelude hiding (fail)
import qualified Prelude (fail)
import Control.Monad.State.Strict hiding (fail)
import "base-compat-batteries" Prelude.Compat hiding (fail)
import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail
2019-09-08 17:13:47 -07:00

102 lines
2.6 KiB
YAML

name : hledger-ui
version : 1.15
synopsis : Curses-style user interface for the hledger accounting tool
description : |
This is hledger's curses-style interface.
It is simpler and more convenient for browsing data than the command-line interface,
but lighter and faster than hledger-web.
hledger is a cross-platform program for tracking money, time, or
any other commodity, using double-entry accounting and a simple,
editable file format. It is inspired by and largely compatible
with ledger(1). hledger provides command-line, curses and web
interfaces, and aims to be a reliable, practical tool for daily
use.
category : Finance, Console
license : GPL-3
author : Simon Michael <simon@joyful.com>
maintainer : Simon Michael <simon@joyful.com>
github : simonmichael/hledger
homepage : http://hledger.org
bug-reports : http://bugs.hledger.org
stability : stable
tested-with: GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.3, GHC==8.6.5
extra-source-files:
- CHANGES.md
- README
- hledger-ui.1
- hledger-ui.txt
- hledger-ui.info
#data-files:
flags:
threaded:
description: Build with support for multithreaded execution
manual: false
default: true
cpp-options: -DVERSION="1.15"
dependencies:
- hledger-lib >=1.15 && <1.16
- hledger >=1.15 && <1.16
- ansi-terminal >=0.6.2.3
- async
- base >=4.8 && <4.13
- base-compat-batteries >=0.10.1 && <0.12
- cmdargs >=0.8
- containers
- data-default
- directory
- filepath
- fsnotify >=0.2.1.2 && <0.4
- microlens >=0.4
- microlens-platform >=0.2.3.1
- megaparsec >=7.0.0 && <8
- pretty-show >=1.6.4
- process >=1.2
- safe >=0.2
- split >=0.1
- text >=1.2
- text-zipper >=0.4
- time >=1.5
- transformers
- vector
when:
# curses is required to build terminfo for vty for hledger-ui.
# On POSIX systems it might be not present.
# On windows it's very likely not present, but possibly it could be.
# Ideally we'd like to
# on POSIX: give a clear error ("install your system libcurses-dev package") if not present
# on windows: quietly skip building if not present, build if it is present
# curses
# default: True
# description:
# For now, just don't build hledger-ui on windows
- condition: os(windows)
then:
buildable: false
else:
dependencies:
- brick >=0.23
- unix
- vty >=5.5
executables:
hledger-ui:
source-dirs: .
main: hledger-ui.hs
ghc-options:
-Wall
-fno-warn-unused-do-bind
-fno-warn-name-shadowing
-fno-warn-missing-signatures
-fno-warn-type-defaults
-fno-warn-orphans
when:
- condition: flag(threaded)
ghc-options: -threaded