diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,17 +1,1 @@
-## [_Unreleased_](https://github.com/freckle/cfn-flip/compare/v0.1.0.3...main)
-
-## [v0.1.0.3](https://github.com/freckle/cfn-flip/compare/v0.1.0.2...v0.1.0.3)
-
-- Fix mis-handling of `Condition` property
-
-## [v0.1.0.1](https://github.com/freckle/cfn-flip/compare/v0.1.0.1...v0.1.0.2)
-
-- Support GHCs 9.0 and 9.2
-
-## [v0.1.0.1](https://github.com/freckle/cfn-flip/compare/v0.1.0.0...v0.1.0.1)
-
-- Fix package manifest.
-
-## [v0.1.0.0](https://github.com/freckle/cfn-flip/tree/v0.1.0.0)
-
-Initial release.
+See https://github.com/freckle/cfn-lint/releases
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,10 @@
 # CfnFlip
 
+[![Hackage](https://img.shields.io/hackage/v/cfn-flip.svg?style=flat)](https://hackage.haskell.org/package/cfn-flip)
+[![Stackage Nightly](http://stackage.org/package/cfn-flip/badge/nightly)](http://stackage.org/nightly/package/cfn-flip)
+[![Stackage LTS](http://stackage.org/package/cfn-flip/badge/lts)](http://stackage.org/lts/package/cfn-flip)
+[![CI](https://github.com/freckle/cfn-flip/actions/workflows/ci.yml/badge.svg)](https://github.com/pbrisbin/freckle/cfn-flip/workflows/ci.yml)
+
 Pure Haskell implementation of [cfn-flip][].
 
 [cfn-flip]: https://github.com/awslabs/aws-cfn-template-flip
@@ -7,6 +12,17 @@
 ## Usage
 
 See [CfnFlip.hs](./src/CfnFlip.hs).
+
+## Release
+
+To release a new version of this library, push a commit to `main` using a
+[conventionally-formatted][conventionalcommmits] commit message.
+
+- Prefix with `fix:` to release a new patch version,
+- Prefix with `feat:` to release a new minor version, or
+- Use `<type>!:` or a `BREAKING CHANGE:` footer to release a new major version
+
+[conventionalcommmits]: https://www.conventionalcommits.org/en/v1.0.0/
 
 ---
 
diff --git a/cfn-flip.cabal b/cfn-flip.cabal
--- a/cfn-flip.cabal
+++ b/cfn-flip.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               cfn-flip
-version:            0.1.0.3
+version:            0.1.0.4
 license:            MIT
 license-file:       LICENSE
 copyright:          2021 Renaissance Learning Inc
@@ -83,15 +83,15 @@
         -Wno-missing-import-lists -Wno-unsafe
 
     build-depends:
-        aeson,
+        aeson >=1.4.6.0,
         base >=4.11 && <10,
-        bytestring,
-        conduit,
-        libyaml,
-        text,
-        unliftio,
-        unliftio-core,
-        yaml
+        bytestring >=0.10.8.2,
+        conduit >=1.3.1.2,
+        libyaml >=0.1.2,
+        text >=1.2.3.1,
+        unliftio >=0.2.12,
+        unliftio-core >=0.1.2.0,
+        yaml >=0.11.2.0
 
     if impl(ghc >=9.2)
         ghc-options: -Wno-missing-kind-signatures
@@ -121,10 +121,10 @@
         -Wno-missing-import-lists -Wno-unsafe
 
     build-depends:
-        aeson,
+        aeson >=1.4.6.0,
         base >=4.11 && <10,
-        doctest,
-        yaml
+        doctest >=0.16.2,
+        yaml >=0.11.2.0
 
     if impl(ghc >=9.2)
         ghc-options: -Wno-missing-kind-signatures
@@ -158,12 +158,12 @@
         -Wno-missing-import-lists -Wno-unsafe
 
     build-depends:
-        Glob,
+        Glob >=0.10.0,
         base >=4.11 && <10,
         cfn-flip,
-        filepath,
-        hspec,
-        libyaml
+        filepath >=1.4.2.1,
+        hspec >=2.8.1,
+        libyaml >=0.1.2
 
     if impl(ghc >=9.2)
         ghc-options: -Wno-missing-kind-signatures
diff --git a/test/CfnFlipSpec.hs b/test/CfnFlipSpec.hs
--- a/test/CfnFlipSpec.hs
+++ b/test/CfnFlipSpec.hs
@@ -5,7 +5,7 @@
 import CfnFlip.Prelude
 
 import CfnFlip
-import CfnFlip.Aeson hiding (json)
+import CfnFlip.Aeson (Value, eitherDecodeFileStrictThrow)
 import CfnFlip.Conduit
 import qualified CfnFlip.JsonToYaml as JsonToYaml
 import qualified CfnFlip.YamlToJson as YamlToJson
