diff --git a/README.md b/README.md index 9cf8ef9..b83d463 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,118 @@ > reach the first minor version. Until then, we will keep bumping the patch > version. -*haspara* is a Haskell library providing data definitions and functions to work -with monetary values. +*haspara* is a Haskell library that provides monetary definitions and a +rudimentary (and experimental) accounting functionality. + +## Development + +Before committing code to repository, reformat the code: + +```sh +stylish-haskell -i -r src/ +``` + +Compile the codebase, check warnings and errors: + +```sh +stack test +stack build +stack haddock +``` + +Run [hlint](https://github.com/ndmitchell/hlint): + +```sh +hlint src/ +``` + +Run [weeder](https://hackage.haskell.org/package/weeder): + +```sh +weeder --require-hs-files +``` + +## Making Releases + +1. Switch to `develop` branch: + + ```sh + git checkout develop + ``` + +1. Ensure that your development branch is up to date: + + ```sh + git pull + ``` + +1. Checkout `main` branch: + + ```sh + git checkout main + ``` + +1. Merge `develop` branch to `main`: + + ```sh + git merge --no-ff develop + ``` + +1. Update the `version` information in [package.yaml](./package.yaml) if + required and recompile the project to reflect the change on the `.cabal` + file: + + ```sh + stack build + ``` + +1. Update [CHANGELOG.md](./CHANGELOG.md) file: + + ```sh + git-chglog --next-tag -o CHANGELOG.md + ``` + +1. Commit, tag and push: + + ```sh + git commit -am "chore(release): " + git tag -a -m "Release " + git push --follow-tags origin main + ``` + +1. Release to Hackage as a candidate first and check the result: + + ```sh + stack upload --pvp-bounds both --candidate . + ``` + +1. If the candidate package release works fine, release to Hackage: + + ```sh + stack upload --pvp-bounds both . + ``` + +1. Checkout to `develop` and rebase onto `main`: + + ```sh + git checkout develop + git rebase main + ``` + +1. Update the `version` information in [package.yaml](./package.yaml) with the + upcoming version and recompile the project to reflect the change on the + `.cabal` file: + + ```sh + stack build + ``` + +1. Commit and push: + + ```sh + git commit -am "chore: bump development version to " + git push + ``` ## License diff --git a/src/Haspara.hs b/src/Haspara.hs index 825d898..882f7a2 100644 --- a/src/Haspara.hs +++ b/src/Haspara.hs @@ -1,3 +1,8 @@ +-- | This module provides high-level definitions of @haspara@ library. +-- +-- @haspara@ provides rudimentary (and experimental) accounting functionality, +-- too. These definitions can be found under "Haspara.Accounting" module. + module Haspara ( module Haspara.Currency , module Haspara.FxQuote diff --git a/src/Haspara/TH.hs b/src/Haspara/TH.hs index 67bac94..cf2e4ed 100644 --- a/src/Haspara/TH.hs +++ b/src/Haspara/TH.hs @@ -1,4 +1,4 @@ --- | This module provides template-haskell functions for various 'Haspara.Core.Base' +-- | This module provides template-haskell functions for various "Haspara" -- definitions. module Haspara.TH where