diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,5 @@
+3.0.0.5 (2021-10-16):
+    - Fixed the cabal file for Cabal >1.24
 3.0.0.4 (2015-05-30):
     - Moved VERSION to CHANGELOG
 3.0.0.3 (2015-03-29):
diff --git a/README b/README
deleted file mode 100644
--- a/README
+++ /dev/null
@@ -1,24 +0,0 @@
-stm-chans
-=========
-
-In general, this is a simple package and should be easy to install.
-It does require GHC however, because it relies on the
-Control.Concurrent.STM.TChan type which (for some unknown reason)
-is GHC-only. With the cabal-install program you can just do:
-
-    $> cabal install stm-chans
-
-Or if you don't have cabal-install, then you can use the Cabal
-library:
-
-    $> runhaskell Setup.hs configure
-    $> runhaskell Setup.hs build
-    $> runhaskell Setup.hs test
-    $> runhaskell Setup.hs haddock --hyperlink-source
-    $> runhaskell Setup.hs copy
-    $> runhaskell Setup.hs register
-
-The test step is optional and currently does nothing. The Haddock
-step is also optional.
-
------------------------------------------------------------ fin.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,55 @@
+stm-chans
+=========
+[![Hackage version](https://img.shields.io/hackage/v/stm-chans.svg?style=flat)](https://hackage.haskell.org/package/stm-chans) 
+[![Build Status](https://github.com/wrengr/stm-chans/workflows/ci/badge.svg)](https://github.com/wrengr/stm-chans/actions?query=workflow%3Aci)
+[![Dependencies](https://img.shields.io/hackage-deps/v/stm-chans.svg?style=flat)](http://packdeps.haskellers.com/specific?package=stm-chans)
+
+This package offers a collection of channel types, similar to
+`Control.Concurrent.STM.{TChan,TQueue}` but with additional features.
+In particular we offer the following data types:
+
+* `Control.Concurrent.STM.TBChan`:  Bounded FIFO channels.
+    When the channel is full, writers will block/retry. This ensures
+    that the writers do not get too far ahead of the readers, which
+    helps to  make sure that memory and cpu resources are used
+    responsibly.
+* `Control.Concurrent.STM.TMChan`:   Closeable FIFO channels.
+* `Control.Concurrent.STM.TMQueue`:  Closeable FIFO queues.
+    Like `TChan (Maybe a)` but with a monotonicity guarantee that
+    once `Nothing` is returned all future reads will be `Nothing`
+    as well.
+* `Control.Concurrent.STM.TBMChan`:  Bounded Closeable FIFO channels.
+* `Control.Concurrent.STM.TBMQueue`: Bounded Closeable FIFO queues.
+    Combines the capabilities of `TBChan` and `TMChan`.
+
+
+## Install
+
+In general, this is a simple package and should be easy to install.
+It does require GHC however, because it relies on the
+Control.Concurrent.STM.TChan type which (for some unknown reason)
+is GHC-only. With the cabal-install program you can just do:
+
+    $> cabal install stm-chans
+
+Or if you don't have cabal-install, then you can use the Cabal
+library:
+
+    $> runhaskell Setup.hs configure
+    $> runhaskell Setup.hs build
+    $> runhaskell Setup.hs test
+    $> runhaskell Setup.hs haddock --hyperlink-source
+    $> runhaskell Setup.hs copy
+    $> runhaskell Setup.hs register
+
+The test step is optional and currently does nothing. The Haddock
+step is also optional.
+
+
+## Links
+
+* [Website](http://wrengr.org/)
+* [Blog](http://winterkoninkje.dreamwidth.org/)
+* [Twitter](https://twitter.com/wrengr)
+* [Hackage](http://hackage.haskell.org/package/stm-chans)
+* [GitHub](https://github.com/wrengr/stm-chans)
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -13,7 +13,6 @@
 main :: IO ()
 main = defaultMainWithHooks
     $ simpleUserHooks `modify_haddockHook` \oldHH pkg lbi hooks flags -> do
-        
         -- Call the old haddockHook with a modified LocalBuildInfo
         (\lbi' -> oldHH pkg lbi' hooks flags)
             $ lbi `modify_withPrograms` \oldWP ->
diff --git a/stm-chans.cabal b/stm-chans.cabal
--- a/stm-chans.cabal
+++ b/stm-chans.cabal
@@ -1,20 +1,19 @@
 ----------------------------------------------------------------
--- wren gayle romano <wren@community.haskell.org>   ~ 2015.05.30
+-- wren gayle romano <wren@community.haskell.org>   ~ 2021.10.16
 ----------------------------------------------------------------
 
--- By and large Cabal >=1.2 is fine; but >= 1.6 gives tested-with:
--- and source-repository:.
-Cabal-Version:  >= 1.6
+-- Cabal >=1.10 is required by Hackage.
+Cabal-Version:  >= 1.10
 -- We need a custom build in order to define __HADDOCK__
 Build-Type:     Custom
 
 Name:           stm-chans
-Version:        3.0.0.4
+Version:        3.0.0.5
 Stability:      provisional
-Homepage:       http://code.haskell.org/~wren/
+Homepage:       http://wrengr.org
 Author:         wren gayle romano, Thomas DuBuisson
-Maintainer:     wren@community.haskell.org
-Copyright:      Copyright (c) 2011--2015 wren gayle romano
+Maintainer:     wren@cpan.org
+Copyright:      Copyright (c) 2011--2021 wren gayle romano
 License:        BSD3
 License-File:   LICENSE
 
@@ -22,17 +21,34 @@
 Synopsis:       Additional types of channels for STM.
 Description:    Additional types of channels for STM.
 
--- Should probably still work with GHC-7.6.1 too
-Tested-With:
-    GHC ==7.8.3, GHC ==7.10.1
 Extra-source-files:
-    AUTHORS, README, CHANGELOG
+    AUTHORS, README.md, CHANGELOG
+
+-- This used to be tested on 7.8.3 and 7.10.1, but we don't verify that by CI.
+-- <https://github.com/wrengr/stm-chans/actions?query=workflow%3Aci>
+Tested-With:
+    GHC ==8.0.2,
+    GHC ==8.2.2,
+    GHC ==8.4.4,
+    GHC ==8.6.5,
+    GHC ==8.8.4,
+    GHC ==8.10.3,
+    GHC ==9.0.1
+
+----------------------------------------------------------------
 Source-Repository head
-    Type:     darcs
-    Location: http://community.haskell.org/~wren/stm-chans
+    Type:     git
+    Location: https://github.com/wrengr/stm-chans.git
 
 ----------------------------------------------------------------
+-- HACK: since Cabal-1.24 we need this stansa to explicitly loosen
+-- the upper bound on the Cabal library used for Setup.hs.
+-- TODO: Just about makes me want to abandon our __HADDOCK__ hack.
+Custom-Setup
+    Setup-Depends: base  >= 4.1  && < 5
+                 , Cabal >= 1.14 && < 3.5
 Library
+    Default-Language: Haskell2010
     -- N.B., the following versions are required for:
     -- * stm >= 2.4:   T{,B}Queue and newBroadcastTChan{,IO}
     -- * stm >= 2.3.0: fast tryReadTChan, peekTChan, tryPeekTChan,
