diff --git a/ChangeLog.md b/ChangeLog.md
deleted file mode 100644
--- a/ChangeLog.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### 3.0.15
-
-+ Remove enable-overloading flags, and use instead explicit CPP checks for 'haskell-gi-overloading-1.0', see [how to disable overloading](https://github.com/haskell-gi/haskell-gi/wiki/Overloading\#disabling-overloading).
-
diff --git a/README.md b/README.md
deleted file mode 100644
--- a/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Documentation
-Autogenerated documentation for this package can be found at
-
-[https://hackage.haskell.org/package/gi-javascriptcore-3.0.15/docs/GI-JavaScriptCore.html](https://hackage.haskell.org/package/gi-javascriptcore-3.0.15/docs/GI-JavaScriptCore.html)
-
-For general documentation on using [haskell-gi](https://github.com/haskell-gi/haskell-gi) based bindings, see [the project page](https://github.com/haskell-gi/haskell-gi) or [the Wiki](https://github.com/haskell-gi/haskell-gi/wiki).
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,11 +1,12 @@
 {-# LANGUAGE OverloadedStrings #-}
 
-import Data.GI.CodeGen.CabalHooks (setupHaskellGIBinding)
+import Distribution.Simple (defaultMainWithHooks)
+import Data.GI.CodeGen.CabalHooks (simpleHaskellGIHooks)
 
-main :: IO ()
-main = setupHaskellGIBinding name version verbose overridesFile outputDir
-  where name = "JavaScriptCore"
-        version = "3.0"
-        overridesFile = Nothing
-        verbose = False
-        outputDir = Nothing
+main = defaultMainWithHooks (simpleHaskellGIHooks name version verbose
+                             overridesFile outputDir)
+    where name = "JavaScriptCore"
+          version = "4.0"
+          verbose = False
+          overridesFile = Nothing
+          outputDir = Nothing
diff --git a/gi-javascriptcore.cabal b/gi-javascriptcore.cabal
--- a/gi-javascriptcore.cabal
+++ b/gi-javascriptcore.cabal
@@ -1,40 +1,31 @@
-name:                 gi-javascriptcore
-version:              3.0.15
-synopsis:             JavaScriptCore bindings
-description:          Bindings for JavaScriptCore, autogenerated by haskell-gi.
-homepage:             https://github.com/haskell-gi/haskell-gi
-license:              LGPL-2.1
-license-file:         LICENSE
-author:               Will Thompson, Iñaki García Etxebarria and Jonas Platte
-maintainer:           Iñaki García Etxebarria (garetxe@gmail.com)
-category:             Bindings
-build-type:           Custom
-cabal-version:        >= 1.24
-
-extra-source-files: README.md ChangeLog.md stack.yaml
+name:               gi-javascriptcore
+version:            4.0.1
+synopsis:           JavaScriptCore bindings
+description:        Bindings for JavaScriptCore, autogenerated by haskell-gi.
+homepage:           https://github.com/haskell-gi/haskell-gi
+license:            LGPL-2.1
+license-file:       LICENSE
+author:             Will Thompson, Iñaki García Etxebarria and Jonas Platte
+maintainer:         Iñaki García Etxebarria (garetxe@gmail.com)
+category:           Bindings
+build-type:         Custom
+cabal-version:      >= 1.24
 
 custom-setup
-      setup-depends: base >= 4.7 && < 5,
-                     Cabal >= 1.24,
-                     haskell-gi == 0.21.*
+  setup-depends: base >= 4.7,
+                 Cabal >= 1.24,
+                 haskell-gi >= 0.15
 
 library
-      default-language: Haskell2010
-      default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
-      other-extensions: PatternSynonyms, ViewPatterns
-      ghc-options: -fno-warn-unused-imports -fno-warn-warnings-deprecations
-
-      pkgconfig-depends: javascriptcoregtk-3.0
-      build-depends: base >= 4.7 && <5,
-                     haskell-gi-base == 0.21.*,
-                     haskell-gi == 0.21.*,
-                     haskell-gi-overloading < 1.1,
-                     bytestring >= 0.10 && < 1,
-                     containers >= 0.5 && < 1,
-                     text >= 1.0 && < 2,
-                     transformers >= 0.4 && < 1
+    default-language:   Haskell2010
+    default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
+    other-extensions:   PatternSynonyms ViewPatterns
+    ghc-options:        -fno-warn-unused-imports -fno-warn-warnings-deprecations
 
-      -- Disable overloading when compiling under GHC 8.2.x
-      -- see https://ghc.haskell.org/trac/ghc/ticket/14382
-      if impl(ghc == 8.2.*)
-              build-depends: haskell-gi-overloading == 0.0
+    pkgconfig-depends:  javascriptcoregtk-4.0
+    build-depends: base >= 4.7 && <5,
+        haskell-gi-base >= 0.15 && < 1,
+        bytestring >= 0.10,
+        containers >= 0.5,
+        text >= 1.0,
+        transformers >= 0.5
diff --git a/stack.yaml b/stack.yaml
deleted file mode 100644
--- a/stack.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-packages:
-- '.'
-resolver: lts-9.21
