1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
Before release:
1. Check milestone is complete
https://github.com/haskell/time/milestones
2. Pull upstream changes
git switch master
git pull
3. Update version numbers
https://pvp.haskell.org/
time.cabal
configure.ac
4. Update changelog, add current UTC date
date -u
changelog.md
5. Use latest LTS resolver
https://www.stackage.org/lts
stack.yaml
6. Use correct & latest GHC versions
https://www.haskell.org/ghc/download.html
fullcheck
fullcheck.ps1
time.cabal
- tested-with
- base dependency lower bound
.github/workflows/ci.yml
7. Use latest stack
stack upgrade
stack --version
8. Format source
./format-all -b
9. Build & test
./fullcheck
10. Run benchmarks
stack bench
11. Inspect generated haddock, if necessary
dist/doc/html/time/index.html
12. Commit and push changes to repo
git commit -a
git push
13. Check builds (these can be done in parallel)
13a. Check GitHub build
https://github.com/haskell/time/actions
13b. Build and test on 32-bit Linux machine
git switch master
./fullcheck
13c. Build and test on FreeBSD machine
git switch master
./fullcheck
13d. Build and test on Windows
(in PowerShell)
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
git switch master
.\fullcheck
14. Upload to Hackage
git clean -dXf
autoreconf -i
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 switch ghc
git merge master
git push
17. Restore local branch for next development
git switch master
18. Close completed milestone
https://github.com/haskell/time/milestones
19. Inform GHC team
https://gitlab.haskell.org/ghc/ghc/-/issues
|