A library providing definitions to work with monetary values.
Please see the README on GitHub at https://github.com/telostat/haspara#readme
haspara
Note: This software is under development and of prototype quality at the moment. Expect significant breaking changes without notification until we reach the first minor version. Until then, we will keep bumping the patch version.
haspara is a Haskell library that provides monetary definitions and a rudimentary (and experimental) accounting functionality.
Supported GHC Versions
ghc90
ghc92
At the moment, there is no particular reason for not supporting ghc94
except that required settings are not done yet in Nix support files, in particular for Cabal dependency.
Testing Against GHC Versions
You can use Nix support to test against different GHC versions:
nix-build --arg compiler "\"ghc92\""
nix-build --arg compiler "\"ghc90\""
nix-build
command will default to ghc90
. Check ./default.nix
file for the default ghc
version in case that this documentation is out of date.
Development
Before committing code to repository, reformat the code:
fourmolu -i src/ test/
Compile the codebase, check warnings and errors:
cabal build -O0
cabal test -O0
cabal haddock -O0
Run hlint:
hlint src/
Run weeder:
weeder --require-hs-files
Making Releases
Checkout
main
branch:git checkout main
Ensure that your branch is up to date:
git pull
Update the
version
information in package.yaml if required, runhpack
to reflect the change on the.cabal
file, and recompile the project, run tests and generate Haddock documentation:hpack cabal clean cabal build -O0 cabal test -O0 cabal haddock -O0 nix-build --arg compiler "\"ghc92\"" nix-build --arg compiler "\"ghc90\""
Update CHANGELOG.md file:
git-chglog --next-tag <NEW-VERSION> -o CHANGELOG.md
Commit, tag and push:
git commit -am "chore(release): <NEW-VERSION>" git tag -a -m "Release <NEW-VERSION>" <NEW-VERSION> git push --follow-tags origin main
Create the package, upload to Hackage as a candidate first and check the result:
cabal clean cabal build -O0 cabal test -O0 cabal haddock -O0 cabal sdist cabal upload <path to .tar.gz archive>
If the candidate package release works fine, release to Hackage:
cabal upload --publish <path to .tar.gz archive>
License
Copyright Telostat Pte Ltd (c) 2021-2022.
This work is licensed under MIT license. See LICENSE.