diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
deleted file mode 100644
--- a/CHANGELOG.markdown
+++ /dev/null
@@ -1,4 +0,0 @@
-# Change log
-
-Patrol uses the [Package Versioning Policy](https://pvp.haskell.org).
-The change log is available through [the releases](https://github.com/tfausak/patrol/releases) on GitHub.
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,4 @@
+# Change log
+
+Patrol uses the [Package Versioning Policy](https://pvp.haskell.org).
+The change log is available through [the releases](https://github.com/tfausak/patrol/releases) on GitHub.
diff --git a/LICENSE.markdown b/LICENSE.markdown
deleted file mode 100644
--- a/LICENSE.markdown
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Taylor Fausak
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Taylor Fausak
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.markdown b/README.markdown
deleted file mode 100644
--- a/README.markdown
+++ /dev/null
@@ -1,7 +0,0 @@
-# Patrol
-
-[![Workflow](https://github.com/tfausak/patrol/actions/workflows/workflow.yaml/badge.svg)](https://github.com/tfausak/patrol/actions/workflows/workflow.yaml)
-[![Hackage](https://img.shields.io/hackage/v/patrol)](https://hackage.haskell.org/package/patrol)
-[![Stackage](https://www.stackage.org/package/patrol/badge/nightly?label=stackage)](https://www.stackage.org/package/patrol)
-
-Patrol is a Sentry SDK for Haskell.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,6 @@
+# Patrol
+
+[![CI](https://github.com/tfausak/patrol/actions/workflows/ci.yml/badge.svg)](https://github.com/tfausak/patrol/actions/workflows/ci.yml)
+[![Hackage](https://badgen.net/hackage/v/patrol)](https://hackage.haskell.org/package/patrol)
+
+Patrol is a Sentry SDK for Haskell.
diff --git a/patrol.cabal b/patrol.cabal
--- a/patrol.cabal
+++ b/patrol.cabal
@@ -1,14 +1,15 @@
 cabal-version: 2.2
-
 name: patrol
-version: 1.0.0.7
+version: 1.0.0.8
 synopsis: Sentry SDK
 description: Patrol is a Sentry SDK.
-
 build-type: Simple
 category: Exceptions
-extra-source-files: CHANGELOG.markdown README.markdown
-license-file: LICENSE.markdown
+extra-doc-files:
+  CHANGELOG.md
+  README.md
+
+license-file: LICENSE.txt
 license: MIT
 maintainer: Taylor Fausak
 
@@ -21,19 +22,7 @@
   manual: True
 
 common library
-  build-depends:
-    , aeson >= 2.0.3 && < 2.3
-    , base >= 4.16.0 && < 4.20
-    , bytestring >= 0.11.3 && < 0.13
-    , case-insensitive >= 1.2.1 && < 1.3
-    , containers >= 0.6.5 && < 0.7
-    , exceptions >= 0.10.4 && < 0.11
-    , http-client >= 0.7.13 && < 0.8
-    , http-types >= 0.12.3 && < 0.13
-    , network-uri >= 2.6.4 && < 2.7
-    , text >= 1.2.5 && < 1.3 || >= 2.0 && < 2.2
-    , time >= 1.11.1 && < 1.13
-    , uuid >= 1.3.15 && < 1.4
+  build-depends: base ^>=4.18.0.0 || ^>=4.19.0.0 || ^>=4.20.0.0
   default-language: Haskell2010
   ghc-options:
     -Weverything
@@ -53,14 +42,28 @@
 
 common executable
   import: library
-
   build-depends: patrol
-  ghc-options: -rtsopts -threaded
+  ghc-options:
+    -rtsopts
+    -threaded
 
 library
   import: library
-
   autogen-modules: Paths_patrol
+  build-depends:
+    aeson ^>=2.1.2.1 || ^>=2.2.2.0,
+    bytestring ^>=0.11.4.0 || ^>=0.12.0.2,
+    case-insensitive ^>=1.2.1.0,
+    containers ^>=0.6.7 || ^>=0.7,
+    exceptions ^>=0.10.7,
+    http-client ^>=0.7.17,
+    http-types ^>=0.12.4,
+    network-uri ^>=2.6.4.2 || ^>=2.7.0.0,
+    text ^>=2.0.2 || ^>=2.1,
+    time ^>=1.12.2 || ^>=1.14,
+    uuid ^>=1.3.15,
+
+  -- cabal-gild: discover source/library
   exposed-modules:
     Patrol
     Patrol.Client
@@ -71,8 +74,8 @@
     Patrol.Type.AppContext
     Patrol.Type.AppleDebugImage
     Patrol.Type.Breadcrumb
-    Patrol.Type.Breadcrumbs
     Patrol.Type.BreadcrumbType
+    Patrol.Type.Breadcrumbs
     Patrol.Type.BrowserContext
     Patrol.Type.CError
     Patrol.Type.ClientSdkInfo
@@ -116,16 +119,29 @@
     Patrol.Type.TransactionSource
     Patrol.Type.User
     Patrol.Version
+
   hs-source-dirs: source/library
   other-modules: Paths_patrol
 
 test-suite patrol-test-suite
   import: executable
-
   build-depends:
-    , hspec >= 2.9.7 && < 2.12
+    aeson,
+    bytestring,
+    case-insensitive,
+    containers,
+    exceptions,
+    hspec ^>=2.11.8,
+    http-client,
+    http-types,
+    network-uri,
+    text,
+    time,
+    uuid,
+
   hs-source-dirs: source/test-suite
   main-is: Main.hs
+  -- cabal-gild: discover source/test-suite --exclude=source/test-suite/Main.hs
   other-modules:
     Patrol.ClientSpec
     Patrol.ConstantSpec
@@ -134,8 +150,8 @@
     Patrol.Type.AppContextSpec
     Patrol.Type.AppleDebugImageSpec
     Patrol.Type.BreadcrumbSpec
-    Patrol.Type.BreadcrumbsSpec
     Patrol.Type.BreadcrumbTypeSpec
+    Patrol.Type.BreadcrumbsSpec
     Patrol.Type.BrowserContextSpec
     Patrol.Type.CErrorSpec
     Patrol.Type.ClientSdkInfoSpec
@@ -179,4 +195,5 @@
     Patrol.Type.TransactionSourceSpec
     Patrol.Type.UserSpec
     PatrolSpec
+
   type: exitcode-stdio-1.0
diff --git a/source/test-suite/Patrol/ClientSpec.hs b/source/test-suite/Patrol/ClientSpec.hs
--- a/source/test-suite/Patrol/ClientSpec.hs
+++ b/source/test-suite/Patrol/ClientSpec.hs
@@ -4,5 +4,4 @@
 
 spec :: Hspec.Spec
 spec = Hspec.describe "Patrol.Client" $ do
-  Hspec.it "needs tests" $ do
-    Hspec.pending
+  pure ()
