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
    fullcheck.ps1
    .travis.yml (if present)

6. Use latest stack

    stack upgrade
    stack --version

7. Build & test

    ./fullcheck

8. Run benchmarks

    stack 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

    (in PowerShell)
    Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
    stack upgrade
    stack --version
    git pull
    .\fullcheck

14. Upload to Hackage

    ./configure
        (this is a workaround for https://github.com/commercialhaskell/stack/issues/5222)
    stack upload .
    http://hackage.haskell.org/package/time

15. Tag commit

    git tag -a -s VERSION -m "Version VERSION"
    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. Close completed milestone

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