diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
-## [*Unreleased*](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.0.1.3...master)
+## [*Unreleased*](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.0.1.4...master)
 
 None
+
+## [v1.0.1.4](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.0.1.3...v1.0.1.4)
+
+- Various CI and dependency bounds changes
 
 ## [v1.0.1.3](https://github.com/frontrowed/faktory_worker_haskell/compare/v1.0.1.2...v1.0.1.3)
 
diff --git a/README.lhs b/README.lhs
--- a/README.lhs
+++ b/README.lhs
@@ -53,6 +53,7 @@
 import Faktory.Job
 import Faktory.Worker
 import GHC.Generics
+import Text.Markdown.Unlit ()
 
 {- Don't actually run anything -}
 main :: IO ()
diff --git a/faktory.cabal b/faktory.cabal
--- a/faktory.cabal
+++ b/faktory.cabal
@@ -1,152 +1,226 @@
-cabal-version: 1.18
-
--- This file has been generated from package.yaml by hpack version 0.33.0.
---
--- see: https://github.com/sol/hpack
---
--- hash: e458b2e214999b21de0c526b70663c2995eb9f4f8fd87fd70757e1ac8bd087c7
+cabal-version:   1.18
+name:            faktory
+version:         1.0.1.4
+license:         MIT
+license-file:    LICENSE
+copyright:       2018 Freckle Education
+maintainer:      engineering@freckle.com
+author:          Freckle Engineering
+homepage:        https://github.com/frontrowed/faktory_worker_haskell#readme
+bug-reports:     https://github.com/frontrowed/faktory_worker_haskell/issues
+synopsis:        Faktory Worker for Haskell
+description:
+    Haskell client and worker process for the Faktory background job server.
+    .
+    == Architecture overview
+    .
+    @
+    |                        +--------------------+
+    |                        |                    |
+    |                        |     Faktory        |
+    |                        |     Server         |
+    |         +---------->>>>|                    +>>>>--------+
+    |         |              |                    |            |
+    |         |              |                    |            |
+    |         |              +--------------------+            |
+    | +-----------------+                            +-------------------+
+    | |                 |                            |                   |
+    | |    Client       |                            |     Worker        |
+    | |    pushes       |                            |     pulls         |
+    | |     jobs        |                            |      jobs         |
+    | |                 |                            |                   |
+    | |                 |                            |                   |
+    | +-----------------+                            +-------------------+
+    @
+    .
+    * `Client` - an API any process can use to push jobs to the Faktory server.
+    * `Worker` - a process that pulls jobs from Faktory and executes them.
+    * `Server` - the Faktory daemon which stores background jobs in queues to be processed by Workers.
+    .
+    This package contains only the `Client` and `Worker`.
 
-name:           faktory
-version:        1.0.1.3
-synopsis:       Faktory Worker for Haskell
-description:    Haskell client and worker process for the Faktory background job server.
-                .
-                == Architecture overview
-                .
-                @
-                |                        +--------------------+
-                |                        |                    |
-                |                        |     Faktory        |
-                |                        |     Server         |
-                |         +---------->>>>|                    +>>>>--------+
-                |         |              |                    |            |
-                |         |              |                    |            |
-                |         |              +--------------------+            |
-                | +-----------------+                            +-------------------+
-                | |                 |                            |                   |
-                | |    Client       |                            |     Worker        |
-                | |    pushes       |                            |     pulls         |
-                | |     jobs        |                            |      jobs         |
-                | |                 |                            |                   |
-                | |                 |                            |                   |
-                | +-----------------+                            +-------------------+
-                @
-                .
-                * `Client` - an API any process can use to push jobs to the Faktory server.
-                * `Worker` - a process that pulls jobs from Faktory and executes them.
-                * `Server` - the Faktory daemon which stores background jobs in queues to be processed by Workers.
-                .
-                This package contains only the `Client` and `Worker`.
-category:       Network
-homepage:       https://github.com/frontrowed/faktory_worker_haskell#readme
-bug-reports:    https://github.com/frontrowed/faktory_worker_haskell/issues
-author:         Freckle Engineering
-maintainer:     engineering@freckle.com
-copyright:      2018 Freckle Education
-license:        MIT
-license-file:   LICENSE
-build-type:     Simple
+category:        Network
+build-type:      Simple
 extra-doc-files:
     CHANGELOG.md
     README.lhs
 
 source-repository head
-  type: git
-  location: https://github.com/frontrowed/faktory_worker_haskell
+    type:     git
+    location: https://github.com/frontrowed/faktory_worker_haskell
 
 library
-  exposed-modules:
-      Faktory.Client
-      Faktory.Connection
-      Faktory.Job
-      Faktory.Prelude
-      Faktory.Producer
-      Faktory.Protocol
-      Faktory.Settings
-      Faktory.Worker
-  other-modules:
-      Paths_faktory
-  hs-source-dirs:
-      library
-  default-extensions: BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses NoImplicitPrelude NoMonomorphismRestriction OverloadedStrings RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TypeApplications TypeFamilies
-  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-import-lists
-  build-depends:
-      aeson >=1.3 && <2
-    , aeson-casing >=0.1 && <1
-    , base >=4.11 && <5
-    , bytestring >=0.1 && <1
-    , connection >=0.2 && <1
-    , cryptonite >=0.2 && <1
-    , megaparsec >=7 && <8.1
-    , memory >=0.1 && <1
-    , network >=2.6 && <3.2
-    , random >=1.1 && <2
-    , safe-exceptions >=0.1 && <1
-    , scanner >=0.2 && <1
-    , text >=1.2 && <2
-    , time >=1.8 && <2
-    , unix >=2.7 && <3
-  default-language: Haskell2010
+    exposed-modules:
+        Faktory.Client
+        Faktory.Connection
+        Faktory.Job
+        Faktory.Prelude
+        Faktory.Producer
+        Faktory.Protocol
+        Faktory.Settings
+        Faktory.Worker
 
+    hs-source-dirs:     library
+    other-modules:      Paths_faktory
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
+        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
+        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
+        LambdaCase MultiParamTypeClasses NoImplicitPrelude
+        NoMonomorphismRestriction OverloadedStrings RankNTypes
+        RecordWildCards ScopedTypeVariables StandaloneDeriving
+        TypeApplications TypeFamilies
+
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missed-specialisations -Wno-all-missed-specialisations
+        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-import-lists
+
+    build-depends:
+        aeson >=1.4.6.0 && <1.6,
+        aeson-casing >=0.2.0.0 && <0.3,
+        base >=4.11 && <5,
+        bytestring >=0.10.10.0 && <0.11,
+        connection >=0.3.1 && <0.4,
+        cryptonite >=0.26 && <0.28,
+        megaparsec >=8.0.0 && <9.1,
+        memory >=0.15.0 && <0.16,
+        network >=3.1.1.1 && <3.2,
+        random ==1.1.*,
+        safe-exceptions >=0.1.7.0 && <0.2,
+        scanner >=0.3.1 && <0.4,
+        text >1.2 && <1.4,
+        time >=1.9.3 && <1.10,
+        unix >=2.7.2.2 && <2.8
+
+    if impl(ghc >=8.10)
+        ghc-options:
+            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
+
 executable faktory-example-consumer
-  main-is: Main.hs
-  other-modules:
-      Paths_faktory
-  hs-source-dirs:
-      examples/consumer
-  default-extensions: BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses NoImplicitPrelude NoMonomorphismRestriction OverloadedStrings RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TypeApplications TypeFamilies
-  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-import-lists
-  build-depends:
-      aeson
-    , base >=4.11 && <5
-    , faktory
-    , safe-exceptions
-  default-language: Haskell2010
+    main-is:            Main.hs
+    hs-source-dirs:     examples/consumer
+    other-modules:      Paths_faktory
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
+        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
+        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
+        LambdaCase MultiParamTypeClasses NoImplicitPrelude
+        NoMonomorphismRestriction OverloadedStrings RankNTypes
+        RecordWildCards ScopedTypeVariables StandaloneDeriving
+        TypeApplications TypeFamilies
 
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missed-specialisations -Wno-all-missed-specialisations
+        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-import-lists
+
+    build-depends:
+        aeson >=1.4.6.0 && <1.6,
+        base >=4.11 && <5,
+        faktory -any,
+        safe-exceptions >=0.1.7.0 && <0.2
+
+    if impl(ghc >=8.10)
+        ghc-options:
+            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
+
 executable faktory-example-producer
-  main-is: Main.hs
-  other-modules:
-      Paths_faktory
-  hs-source-dirs:
-      examples/producer
-  default-extensions: BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses NoImplicitPrelude NoMonomorphismRestriction OverloadedStrings RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TypeApplications TypeFamilies
-  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-import-lists
-  build-depends:
-      aeson
-    , base >=4.11 && <5
-    , faktory
-    , safe-exceptions
-  default-language: Haskell2010
+    main-is:            Main.hs
+    hs-source-dirs:     examples/producer
+    other-modules:      Paths_faktory
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
+        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
+        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
+        LambdaCase MultiParamTypeClasses NoImplicitPrelude
+        NoMonomorphismRestriction OverloadedStrings RankNTypes
+        RecordWildCards ScopedTypeVariables StandaloneDeriving
+        TypeApplications TypeFamilies
 
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missed-specialisations -Wno-all-missed-specialisations
+        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-import-lists
+
+    build-depends:
+        aeson >=1.4.6.0 && <1.6,
+        base >=4.11 && <5,
+        faktory -any,
+        safe-exceptions >=0.1.7.0 && <0.2
+
+    if impl(ghc >=8.10)
+        ghc-options:
+            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
+
 test-suite hspec
-  type: exitcode-stdio-1.0
-  main-is: Spec.hs
-  other-modules:
-      Faktory.ConnectionSpec
-      FaktorySpec
-      Paths_faktory
-  hs-source-dirs:
-      tests
-  default-extensions: BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses NoImplicitPrelude NoMonomorphismRestriction OverloadedStrings RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TypeApplications TypeFamilies
-  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-import-lists -rtsopts
-  build-depends:
-      base >=4.11 && <5
-    , faktory
-    , hspec
-  default-language: Haskell2010
+    type:               exitcode-stdio-1.0
+    main-is:            Spec.hs
+    hs-source-dirs:     tests
+    other-modules:
+        Faktory.ConnectionSpec
+        FaktorySpec
+        Paths_faktory
 
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
+        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
+        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
+        LambdaCase MultiParamTypeClasses NoImplicitPrelude
+        NoMonomorphismRestriction OverloadedStrings RankNTypes
+        RecordWildCards ScopedTypeVariables StandaloneDeriving
+        TypeApplications TypeFamilies
+
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missed-specialisations -Wno-all-missed-specialisations
+        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-import-lists -rtsopts
+
+    build-depends:
+        base >=4.11 && <5,
+        faktory -any,
+        hspec >=2.7.1 && <2.8
+
+    if impl(ghc >=8.10)
+        ghc-options:
+            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
+
 test-suite readme
-  type: exitcode-stdio-1.0
-  main-is: README.lhs
-  other-modules:
-      Paths_faktory
-  hs-source-dirs:
-      ./.
-  default-extensions: BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses NoImplicitPrelude NoMonomorphismRestriction OverloadedStrings RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TypeApplications TypeFamilies
-  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-import-lists -pgmL markdown-unlit
-  build-depends:
-      aeson
-    , base
-    , faktory
-    , markdown-unlit
-  default-language: Haskell2010
+    type:               exitcode-stdio-1.0
+    main-is:            README.lhs
+    hs-source-dirs:     ./.
+    other-modules:      Paths_faktory
+    default-language:   Haskell2010
+    default-extensions:
+        BangPatterns DeriveAnyClass DeriveFoldable DeriveFunctor
+        DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies
+        FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving
+        LambdaCase MultiParamTypeClasses NoImplicitPrelude
+        NoMonomorphismRestriction OverloadedStrings RankNTypes
+        RecordWildCards ScopedTypeVariables StandaloneDeriving
+        TypeApplications TypeFamilies
+
+    ghc-options:
+        -Weverything -Wno-missing-exported-signatures
+        -Wno-missed-specialisations -Wno-all-missed-specialisations
+        -Wno-unsafe -Wno-safe -Wno-missing-local-signatures
+        -Wno-monomorphism-restriction -Wno-missing-import-lists -pgmL
+        markdown-unlit
+
+    build-depends:
+        aeson >=1.4.6.0 && <1.6,
+        base >=4.11 && <5,
+        faktory -any,
+        markdown-unlit >=0.5.0 && <0.6
+
+    if impl(ghc >=8.10)
+        ghc-options:
+            -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module
