diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,11 +1,23 @@
+## Version 0.5.4.1
+
+_Andreas Abel, 2025-09-02_
+
+ * Bump dependency lower bounds to at least GHC 8.0 and Stackage LTS 7.0.
+ * Build tested with GHC 8.0 - 9.14 alpha1.
+ * Functionality tested with GHC 8.4 - 9.14 alpha1.
+
 ## Version 0.5.4.0
 
+_Andreas Abel, 2025-06-10_
+
  * Add `decodeWithP` and `decodeByNameWithP` to `Streaming` interface ([PR #237](https://github.com/haskell-hvr/cassava/pull/237)).
  * Build tested with GHC 8.0 - 9.12.2.
  * Functionality tested with GHC 8.4 - 9.12.2.
 
 ## Version 0.5.3.2
 
+_Andreas Abel, 2024-08-03_
+
  * Proper exception on hanging doublequote ([PR #222](https://github.com/haskell-hvr/cassava/pull/222)).
  * Allow latest `hashable`.
  * Build tested with GHC 8.0 - 9.10.1.
@@ -13,6 +25,8 @@
 
 ## Version 0.5.3.1
 
+_Andreas Abel, 2024-04-23_
+
  * Remove support for GHC 7.
  * Remove cabal flag `bytestring--LT-0_10_4` and support for `bytestring < 0.10.4`.
  * Tested with GHC 8.0 - 9.10 alpha3
@@ -29,6 +43,8 @@
 
 ## Version 0.5.3.0
 
+_Andreas Abel, 2022-07-10_
+
  * Improve error messages for `lookup` and NamedRecord parsers (#197)
  * Fix bug (infinite loop) in `FromField Const` instance (#185)
  * Turn flag `bytestring--LT-0_10_4` off by default (#183)
@@ -38,12 +54,16 @@
 
 ## Version 0.5.2.0
 
+_Herbert Valerio Riedel, 2019-09-01_
+
  * Add `FromField`/`ToField` instances for `Identity` and `Const` (#158)
  * New `typeclass`-less decoding functions `decodeWithP` and `decodeByNameWithP` (#67,#167)
  * Support for final phase of MFP / base-4.13
 
 ## Version 0.5.1.0
 
+_Herbert Valerio Riedel, 2017-08-12_
+
  * Add `FromField`/`ToField` instance for `Natural` (#141,#142)
  * Add `FromField`/`ToField` instances for `Scientific` (#143,#144)
  * Add support for modifying Generics-based instances (adding
@@ -54,6 +74,8 @@
 
 ## Version 0.5.0.0
 
+_Herbert Valerio Riedel, 2017-06-19_
+
 ### Semantic changes
 
  * Don't unecessarily quote spaces with `QuoteMinimal` (#118,#122,#86)
@@ -72,10 +94,14 @@
 
 ## Version 0.4.5.1
 
+_Herbert Valerio Riedel, 2016-11-10_
+
  * Restore GHC 7.4 support (#124)
 
 ## Version 0.4.5.0
 
+_Herbert Valerio Riedel, 2016-01-19_
+
  * Support for GHC 8.0 added; support for GHC 7.4 dropped
 
  * Fix defect in `Foldable(foldr)` implementation failing to skip
@@ -87,6 +113,8 @@
 
 ## Version 0.4.4.0
 
+_Johan Tibell, 2015-08-30_
+
  * Added record instances for larger tuples.
 
  * Support attoparsec 0.13.
@@ -94,6 +122,8 @@
  * Add field instances for short bytestrings.
 
 ## Version 0.4.3.0
+
+_Johan Tibell, 2015-06-02_
 
  * Documentation overhaul with more examples.
 
diff --git a/cassava.cabal b/cassava.cabal
--- a/cassava.cabal
+++ b/cassava.cabal
@@ -1,6 +1,7 @@
-cabal-version:       1.12
+cabal-version:       1.18
 Name:                cassava
-Version:             0.5.4.0
+Version:             0.5.4.1
+
 Synopsis:            A CSV parsing and encoding library
 Description: {
 
@@ -39,10 +40,11 @@
 Maintainer:          https://github.com/haskell-hvr/cassava
 Category:            Text, Web, CSV
 Build-type:          Simple
-Extra-source-files:  examples/*.hs,
-                     CHANGES.md,
+Extra-source-files:  examples/*.hs
+Extra-doc-files:     CHANGES.md
                      README.md
 Tested-with:
+  GHC == 9.14.1
   GHC == 9.12.2
   GHC == 9.10.2
   GHC == 9.8.4
@@ -98,21 +100,21 @@
     Data.Csv.Types
     Data.Csv.Util
 
+  -- Lower bounds from GHC 8.0 and Stackage LTS 7.0
   Build-depends:
-      base         >= 4.9      && < 5
-    , array        >= 0.4      && < 0.6
-    , attoparsec   >= 0.11.3.0 && < 0.15
-    , bytestring   >= 0.10.4   && < 0.13
-    , containers   >= 0.4.2    && < 1
-    , deepseq      >= 1.1      && < 1.6
-    , hashable                    < 2
-    , scientific   >= 0.3.4.7  && < 0.4
-    , text                        < 2.2
-    , text-short   == 0.1.*
-    , transformers >= 0.2      && < 0.7
-    , unordered-containers        < 0.3
-    , vector       >= 0.8      && < 0.14
-    , Only         >= 0.1      && < 0.1.1
+      base                  >= 4.9       && < 5
+    , array                 >= 0.5.1.1   && < 0.6
+    , attoparsec            >= 0.11.3.0  && < 0.15
+    , bytestring            >= 0.10.8.0  && < 0.13
+    , containers            >= 0.5.7.1   && < 1
+    , deepseq               >= 1.4.2.0   && < 1.6
+    , hashable              >= 1.2.4.0   && < 2
+    , scientific            >= 0.3.4.9   && < 0.4
+    , text                  >= 1.2.2.1   && < 2.2
+    , text-short            == 0.1.*
+    , unordered-containers  >= 0.2.7.1   && < 0.3
+    , vector                >= 0.11.0.0  && < 0.14
+    , Only                  >= 0.1       && < 0.1.1
 
   ghc-options:
     -Wall
@@ -136,22 +138,20 @@
   Type: exitcode-stdio-1.0
   Main-is: UnitTests.hs
   -- dependencies with version constraints inherited via lib:cassava
-  Build-depends: attoparsec
-               , base                   >= 4.11 && < 5
+  Build-depends: base                        >= 4.11     && < 5
                , bytestring
                , cassava
-               , hashable
                , scientific
                , text
                , unordered-containers
                , vector
   -- extra dependencies not already used by lib:cassava
-  build-depends: HUnit < 1.7
-               , QuickCheck >= 2.14 && < 2.16
-               , quickcheck-instances >= 0.3.12 && < 0.4
-               , test-framework == 0.8.*
-               , test-framework-hunit == 0.3.*
-               , test-framework-quickcheck2 == 0.3.*
+  build-depends: HUnit                       >= 1.3.1.2  && < 1.7
+               , QuickCheck                  >= 2.14     && < 3
+               , quickcheck-instances        >= 0.3.12   && < 0.4
+               , test-framework              == 0.8.*
+               , test-framework-hunit        == 0.3.*
+               , test-framework-quickcheck2  == 0.3.*
 
   hs-source-dirs: tests
 
