hledger/hledger-lib/package.yaml
2024-04-18 13:33:42 -10:00

204 lines
5.5 KiB
YAML

name: hledger-lib
version: 1.33.99
synopsis: A library providing the core functionality of hledger
description: |
This library contains hledger's core functionality.
It is used by most hledger* packages so that they support the same
command line options, file formats, reports, etc.
hledger is a robust, cross-platform set of tools for tracking money,
time, or any other commodity, using double-entry accounting and a
simple, editable file format, with command-line, terminal and web
interfaces. It is a Haskell rewrite of Ledger, and one of the leading
implementations of Plain Text Accounting.
See also:
- https://hledger.org - hledger's home page
- https://hledger.org/dev.html - starting point for hledger's developer docs
- https://hackage.haskell.org/package/hledger-lib/docs/Hledger.html - starting point for hledger's haddock docs
category: Finance
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==8.10.7, GHC==9.0.2, GHC==9.2.8, GHC==9.4.5, GHC==9.6.2
extra-source-files:
- CHANGES.md
- README.md
- test/unittest.hs
- test/doctests.hs
#data-files:
dependencies:
- base >=4.14 && <4.20
- base-compat
- aeson >=1 && <2.3
- aeson-pretty
- ansi-terminal >=0.9
- array
- blaze-markup >=0.5.1
- bytestring
- call-stack
- cmdargs >=0.10
- containers >=0.5.9
- cassava
- cassava-megaparsec
- colour >=2.3.6
- data-default >=0.5
- deepseq
- Decimal >=0.5.1
- directory
- doclayout >=0.3 && <0.5
- file-embed >=0.0.10
- filepath
- hashtables >=1.2.3.1
- megaparsec >=7.0.0 && <9.7
- microlens >=0.4
- microlens-th >=0.4
- mtl >=2.2.1
- parser-combinators >=0.4.0
- pretty-simple >4 && <5
- regex-tdfa
- safe >=0.3.20
- tabular >=0.2
- tasty >=1.2.3
- tasty-hunit >=0.10.0.2
- template-haskell
- terminal-size >=0.3.3
- text >=1.2.4.1
- text-ansi >=0.2.1
- time >=1.5
- timeit
- transformers >=0.2
- unordered-containers >=0.2
- uglymemo
- utf8-string >=0.3.5
- extra >=1.6.3
- Glob >= 0.9
when:
- condition: (!(os(windows)))
dependencies:
- pager >=0.1.1.0
ghc-options:
- -Wall
- -Wno-incomplete-uni-patterns
- -Wno-missing-signatures
- -Wno-orphans
- -Wno-type-defaults
- -Wno-unused-do-bind
source-dirs:
#- other/ledger-parse
- .
library:
exposed-modules:
- Hledger
- Hledger.Data
- Hledger.Data.Account
- Hledger.Data.AccountName
- Hledger.Data.Amount
- Hledger.Data.Balancing
- Hledger.Data.Dates
- Hledger.Data.Errors
- Hledger.Data.Journal
- Hledger.Data.JournalChecks
- Hledger.Data.JournalChecks.Ordereddates
- Hledger.Data.JournalChecks.Uniqueleafnames
- Hledger.Data.Json
- Hledger.Data.Ledger
- Hledger.Data.Period
- Hledger.Data.PeriodicTransaction
- Hledger.Data.StringFormat
- Hledger.Data.Posting
- Hledger.Data.RawOptions
- Hledger.Data.Timeclock
- Hledger.Data.Transaction
- Hledger.Data.TransactionModifier
- Hledger.Data.Types
- Hledger.Data.Valuation
- Hledger.Query
- Hledger.Read
- Hledger.Read.Common
- Hledger.Read.CsvReader
- Hledger.Read.CsvUtils
- Hledger.Read.InputOptions
- Hledger.Read.JournalReader
- Hledger.Read.RulesReader
# - Hledger.Read.LedgerReader
- Hledger.Read.TimedotReader
- Hledger.Read.TimeclockReader
- Hledger.Reports
- Hledger.Reports.ReportOptions
- Hledger.Reports.ReportTypes
- Hledger.Reports.AccountTransactionsReport
- Hledger.Reports.BalanceReport
- Hledger.Reports.BudgetReport
- Hledger.Reports.EntriesReport
- Hledger.Reports.MultiBalanceReport
- Hledger.Reports.PostingsReport
- Hledger.Utils
- Hledger.Utils.Debug
- Hledger.Utils.IO
- Hledger.Utils.Parse
- Hledger.Utils.Regex
- Hledger.Utils.String
- Hledger.Utils.Test
- Hledger.Utils.Text
- Text.Tabular.AsciiWide
# other-modules:
# - Ledger.Parser.Text
# "cabal test hledger-lib" currently fails, see doctest suite below
tests:
unittest:
buildable: true
source-dirs: test
main: unittest.hs
other-modules: [] # prevent double compilation, https://github.com/sol/hpack/issues/188
dependencies:
- hledger-lib
# Disable doctest for now because its dependence on ghc prevents reliable use of the
# newer security-fixed process-1.6.19.0.
#
# Note when run by cabal, doctest requires a ghc environment file,
# so we ensure this is generated, see cabal.project.
# https://github.com/simonmichael/hledger/issues/1139
# doctest:
# source-dirs: test
# main: doctests.hs # can't call it doctest.hs ("File name does not match module name")
# other-modules: [] # prevent double compilation, https://github.com/sol/hpack/issues/188
# dependencies:
# # prefer the latest doctest
# - doctest >=0.18.1
# - Glob >=0.7
# when:
# # disable doctest with GHC 9.0, https://github.com/sol/doctest/issues/301
# - condition: impl(ghc >= 9.0) && impl(ghc < 9.2)
# buildable: false
# # ghc 8.4+ on mac needs this workaround. See
# # https://github.com/sol/doctest/issues/199
# # https://ghc.haskell.org/trac/ghc/ticket/15105#comment:10 :
# # ~$ locate HSinteger-gmp-1.0.2.0.o
# # /Users/simon/.stack/programs/x86_64-osx/ghc-8.4.3/lib/ghc-8.4.2/integer-gmp-1.0.2.0/HSinteger-gmp-1.0.2.0.o
# # ~$ mv /Users/simon/.stack/programs/x86_64-osx/ghc-8.4.3/lib/ghc-8.4.2/integer-gmp-1.0.2.0/HSinteger-gmp-1.0.2.0.o{,_DISABLE_GHC_ISSUE_15105}
# # Should probably disable it by default:
# #when:
# # - condition: os(darwin) && impl(ghc >= 8.4)
# # buildable: false