Before release:

1. Check milestone is complete

    https://github.com/haskell/time/milestones

2. Pull upstream changes

    git checkout master
    git pull

3. Update version numbers

    https://pvp.haskell.org/
    time.cabal
    configure.ac

4. Update changelog

    changelog.md

5. Use latest LTS resolver

    https://www.stackage.org/lts
    stack.yaml
    fullcheck
    (not necessarily benchmark/stack.yaml)
    .travis.yml (if present)

6. Use latest stack

    stack upgrade
    stack --version

7. Build & test

    ./fullcheck

8. Build benchmark

    cd benchmark
    stack build
        (ignore missing modules warning)
    stack exec -- time-bench

9. Inspect generated haddock

    `stack path --local-doc-root`/index.html

10. Commit and push changes to repo

    git commit -a
    git push

11. Check Travis build

    https://travis-ci.org/haskell/time

12. Build and test on 32-bit Linux machine

    stack upgrade
    stack --version
    git pull
    ./fullcheck

13. Build and test on Windows

    stack upgrade
    stack --version
    git pull
    ./fullcheck

14. Upload to Hackage

    stack upload .
    http://hackage.haskell.org/package/time

15. Tag commit

    git tag -a -s [TAG]
    git push --tags

16. Update ghc branch

    git checkout ghc
    git merge master
    git push

17. Restore local branch for next development

    git checkout master

18. Delete completed milestone

    https://github.com/haskell/time/milestones
