diff --git a/ChangeLog b/ChangeLog
new file mode 100644
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,23 @@
+2024-09-03 Laurent P. René de Cotret <laurent.decotret@outlook.com> 0.3.2
+
+* Bumped dependency bounds to support GHC 8.10.7 - GHC 9.10.1
+* Updated links to point to Distributed Haskell monorepo
+
+2024-03-26 David Simmons-Duffin <dsd@caltech.edu> 0.3.1
+
+* Relaxed upper bounds to build with ghc-9.8
+* Fixed syntax errors with Haskell2010
+
+2018-11-10 Tim Watson <watson.timothy@gmail.com> 0.3.0
+
+* Relaxed upper bounds to allow for newer versions of exceptions
+* Support for GHC 8.2 (thanks agentm)
+* further relax upper bounds for HUnit (thanks Alexander Vershilov)
+
+2017-02-05 Tim Watson <watson.timothy@gmail.com> 0.1.1
+
+* Bugfix: relax upper bounds for HUnit
+
+2017-02-04 Tim Watson <watson.timothy@gmail.com> 0.1.0
+
+* Initial Release
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/distributed-process-systest.cabal b/distributed-process-systest.cabal
--- a/distributed-process-systest.cabal
+++ b/distributed-process-systest.cabal
@@ -1,46 +1,60 @@
+cabal-version: 3.0
 name:          distributed-process-systest
-version:       0.1.1
+version:       0.3.2
 synopsis:      Cloud Haskell Test Support
 description:   Testing Frameworks and Capabilities for programs built on Cloud Haskell
 homepage:      http://github.com/haskell-distributed/distributed-process-systest
-license:       BSD3
+license:       BSD-3-Clause
 license-file:  LICENSE
 Author:        Tim Watson
-Maintainer:    watson.timothy@gmail.com
+maintainer:    The Distributed Haskell team
 copyright:     Tim Watson
 category:      Control, Cloud Haskell
 build-type:    Simple
-cabal-version: >=1.8
+extra-doc-files: ChangeLog
 
 source-repository head
-  type:      git
-  location:  https://github.com/haskell-distributed/distributed-process-systest
+  Type:     git
+  Location: https://github.com/haskell-distributed/distributed-process
+  SubDir:   packages/distributed-process-systest
 
+common warnings
+    ghc-options: -Wall
+                 -Wcompat
+                 -Widentities
+                 -Wincomplete-uni-patterns
+                 -Wincomplete-record-updates
+                 -Wredundant-constraints
+                 -fhide-source-paths
+                 -Wpartial-fields
+
 library
+  import:            warnings
   exposed-modules:   Control.Distributed.Process.SysTest.Utils
-  Build-Depends:     base >= 4.4 && < 5,
-                     ansi-terminal >= 0.5 && < 0.7,
-                     binary >= 0.5 && < 0.9,
-                     bytestring >= 0.9 && < 0.11,
-                     distributed-process >= 0.6.1 && < 0.7,
-                     distributed-static,
-                     HUnit >= 1.2 && < 1.6,
-                     network-transport >= 0.4.1.0 && < 0.5,
-                     network >= 2.5 && < 2.7,
-                     random >= 1.0 && < 1.2,
-                     rematch >= 0.1.2.1,
+  Build-Depends:     base >= 4.14 && < 5,
+                     ansi-terminal >= 0.5 && < 1.1,
+                     binary >= 0.8 && < 1.0,
+                     bytestring >= 0.10 && < 0.13,
+                     distributed-process >= 0.6.1 && < 0.8,
+                     distributed-static < 0.4,
+                     HUnit >= 1.2 && < 2,
+                     network-transport >= 0.4.1.0 && < 0.6,
+                     network >= 2.5 && < 3.3,
+                     random >= 1.0 && < 1.3,
+                     rematch >= 0.1.2.1 && < 0.3,
                      test-framework >= 0.6 && < 0.9,
                      test-framework-hunit >= 0.2.0 && < 0.4,
-                     stm
+                     exceptions < 0.11,
+                     stm < 2.6
   hs-source-dirs:    src
+  default-language:  Haskell2010
   ghc-options:       -Wall -fno-warn-unused-do-bind
-  extensions:        CPP,
-                     ExistentialQuantification,
-                     FlexibleInstances,
-                     DeriveDataTypeable,
-                     DeriveGeneric,
-                     GeneralizedNewtypeDeriving,
-                     OverlappingInstances,
-                     RankNTypes,
-                     RecordWildCards,
-                     ScopedTypeVariables
+  default-extensions: CPP,
+                      ExistentialQuantification,
+                      FlexibleInstances,
+                      DeriveDataTypeable,
+                      DeriveGeneric,
+                      GeneralizedNewtypeDeriving,
+                      RankNTypes,
+                      RecordWildCards,
+                      ScopedTypeVariables
diff --git a/src/Control/Distributed/Process/SysTest/Utils.hs b/src/Control/Distributed/Process/SysTest/Utils.hs
--- a/src/Control/Distributed/Process/SysTest/Utils.hs
+++ b/src/Control/Distributed/Process/SysTest/Utils.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE TemplateHaskell    #-}
-{-# LANGUAGE CPP                #-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -47,9 +46,6 @@
   , stash
   ) where
 
-#if ! MIN_VERSION_base(4,6,0)
-import Prelude hiding (catch)
-#endif
 import Control.Concurrent
   ( ThreadId
   , myThreadId
@@ -73,11 +69,12 @@
 import Control.Concurrent.MVar
   ( putMVar
   )
-import Control.Distributed.Process
+import Control.Distributed.Process hiding (catch, finally)
 import Control.Distributed.Process.Node
 import Control.Distributed.Process.Serializable()
+import Control.Monad.Catch
 
-import Control.Exception (AsyncException(ThreadKilled), SomeException)
+import Control.Exception (AsyncException(ThreadKilled))
 import Control.Monad (forever)
 import Control.Monad.STM (atomically)
 import Control.Rematch hiding (match)
@@ -177,8 +174,8 @@
   _ <- forkIO $ logger q
   return $ Logger tid q
   where logger q' = forever $ do
-        msg <- atomically $ readTQueue q'
-        putStrLn msg
+          msg <- atomically $ readTQueue q'
+          putStrLn msg
 
 -- | Send a message to the Logger
 putLogMsg :: Logger -> String -> Process ()
