diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f51269c0482dcf5b598eec5f7badcdacf62346ba..108c24a3abf6946205687c08e8c80fd68e943228 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -10,7 +10,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ubuntu-latest, macOS-latest]
-        ghc: ['9.0', '8.10', '8.8']
+        ghc: ['9.0.1', '8.10.5', '8.8.4']
     steps:
     - uses: actions/checkout@v2
     - uses: haskell/actions/setup@v1.2.1
@@ -42,7 +42,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        ghc: ['9.0', '8.10', '8.8']
+        ghc: ['9.0.1', '8.10.5', '8.8.4']
     steps:
     - uses: actions/checkout@v2
     - uses: haskell/actions/setup@v1.2.1
diff --git a/Checklist b/Checklist
index 2b26a45489bbbd55b4a7137294365c7fefab97a6..ffdad04351f0eb7b918dcc137f2fd3626b6d2a90 100644
--- a/Checklist
+++ b/Checklist
@@ -19,61 +19,68 @@ Before release:
 
     changelog.md
 
-5. Use correct GHC versions & latest LTS resolver
+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
 
-6. Use latest stack
+7. Use latest stack
 
     stack upgrade
     stack --version
 
-7. Format source
+8. Format source
 
     ./format-all
 
-8. Build & test
+9. Build & test
 
     ./fullcheck
 
-9. Run benchmarks
+10. Run benchmarks
 
     stack bench
 
-10. Inspect generated haddock
+11. Inspect generated haddock, if necessary
 
     `stack path --local-doc-root`/index.html
 
-11. Commit and push changes to repo
+12. Commit and push changes to repo
 
     git commit -a
     git push
 
-12. Check builds (these can be done in parallel)
+13. Check builds (these can be done in parallel)
 
-12a. Check GitHub build
+13a. Check GitHub build
 
     https://github.com/haskell/time/actions
 
-12b. Build and test on 32-bit Linux machine
+13b. Build and test on 32-bit Linux machine
 
     stack upgrade
     stack --version
     git pull
     ./fullcheck
 
-12c. Build and test on FreeBSD machine
+13c. Build and test on FreeBSD machine
 
     stack upgrade
     stack --version
     git pull
     ./fullcheck
 
-12d. Build and test on Windows
+13d. Build and test on Windows
 
     (in PowerShell)
     Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
@@ -82,28 +89,28 @@ Before release:
     git pull
     .\fullcheck
 
-13. Upload to Hackage
+14. Upload to Hackage
 
     git clean -dXf
     autoreconf -i
     stack upload .
     http://hackage.haskell.org/package/time
 
-14. Tag commit
+15. Tag commit
 
     git tag -a -s VERSION -m "Version VERSION"
     git push --tags
 
-15. Update ghc branch
+16. Update ghc branch
 
     git checkout ghc
     git merge master
     git push
 
-16. Restore local branch for next development
+17. Restore local branch for next development
 
     git checkout master
 
-17. Close completed milestone
+18. Close completed milestone
 
     https://github.com/haskell/time/milestones
diff --git a/changelog.md b/changelog.md
index 8a38d2f8fb3949b2ed8f9436ca6c8d016082faa9..d97aaa6ad20986ca6f11577337c16c1415d00742 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,6 @@
 # Change Log
 
-## [1.12] -
+## [1.12] - 2021-06-12
 - support GHC 8.8, 8.10, 9.0 only
 - add patterns for each month of year
 - fix: don't provide TAI clock where it's unavailable (e.g. FreeBSD)
diff --git a/fullcheck b/fullcheck
index c9e0cbf3439d8c7a12975d0ab24229b273400f82..2c1418859e7ae3783b89f4cd560d9d66407bd060 100755
--- a/fullcheck
+++ b/fullcheck
@@ -2,8 +2,7 @@
 git clean -dXf
 git pull
 autoreconf -i
-# latest LTS resolver for each GHC x.y version
-for c in ghc-8.8 ghc-8.10 ghc-9.0
+for c in ghc-8.8.4 ghc-8.10.5 ghc-9.0.1
 do
 stack --compiler $c build
 done
diff --git a/fullcheck.ps1 b/fullcheck.ps1
index 264138c4aed2e5bbd4fae2662e8538990f83f1ce..286be39a9db95663ae9f9a936292b592a3b2de3f 100644
--- a/fullcheck.ps1
+++ b/fullcheck.ps1
@@ -3,7 +3,7 @@ $ErrorActionPreference = "Stop"
 & "git" "pull"
 & "stack" "exec" "--" "env" "autoreconf" "-i"
 if (!$?) {Exit 1}
-ForEach ($c in "ghc-8.8","ghc-8.10","ghc-9.0")
+ForEach ($c in "ghc-8.8.4","ghc-8.10.5","ghc-9.0.1")
 {
 	& "stack" "--compiler" "$c" "build"
 	if (!$?) {Exit 1}
diff --git a/stack.yaml b/stack.yaml
index 4d378c562c877bad53f352754b55430385cf1d20..2d2e7b72f26716a28af13ba89c87058fb33a62bd 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-17.9
+resolver: lts-17.15
 packages:
 - '.'
 allow-newer: true
diff --git a/stack.yaml.lock b/stack.yaml.lock
index 4ec8f432be102d65c5eceb54308209a1908f2571..21e15d862a4f8349003ca6668c56bb6effb60526 100644
--- a/stack.yaml.lock
+++ b/stack.yaml.lock
@@ -41,7 +41,7 @@ packages:
     hackage: fourmolu-0.3.0.0
 snapshots:
 - completed:
-    size: 567037
-    url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/9.yaml
-    sha256: d7d8d5106e53d1669964bd8bd2b0f88a5ad192d772f5376384b76738fd992311
-  original: lts-17.9
+    size: 567679
+    url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/15.yaml
+    sha256: 72e87841a0ab5b72f6f018e8ee692fd972b7bb32a944990f028e10d6eb528e63
+  original: lts-17.15
diff --git a/time.cabal b/time.cabal
index 0e4e855ce5ae5d62fd765150f28a9ca27c55be30..f2c4aa2300664045e1968695b285605d47c42ed6 100644
--- a/time.cabal
+++ b/time.cabal
@@ -14,8 +14,8 @@ category:       Time
 build-type:     Configure
 tested-with:
     GHC == 8.8.4,
-    GHC == 8.10.2,
-    GHC == 9.0
+    GHC == 8.10.5,
+    GHC == 9.0.1
 x-follows-version-policy:
 
 extra-source-files: