diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal
index 889c8de37bd24ed093f10c5378033cb3f855b8c3..bed04604ab80f1eaee395d1135ff81122af16f84 100644
--- a/Cabal/Cabal.cabal
+++ b/Cabal/Cabal.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.10
 name:          Cabal
-version:       3.0.0.0
+version:       3.1.0.0
 copyright:     2003-2019, Cabal Development Team (see AUTHORS file)
 license:       BSD3
 license-file:  LICENSE
diff --git a/Cabal/ChangeLog.md b/Cabal/ChangeLog.md
index 0a182b128beff1bb74f3dfb10694440e33944469..ae0ba7932fce832d4ae77cd385f4b7545eae47c0 100644
--- a/Cabal/ChangeLog.md
+++ b/Cabal/ChangeLog.md
@@ -1,4 +1,6 @@
-# 3.0.0.0 (current development version)
+# 3.1.0.0 (current development version)
+
+# 3.0.0.0 TBD
   * TODO
   * Introduce set notation for `^>=` and `==` operators
     ([#5906](https://github.com/haskell/cabal/pull/5906)).
diff --git a/Cabal/Makefile b/Cabal/Makefile
index 1cd2645d258c5be5a9fcf7ab05dc66c96259125a..df01c714bed283c54db7c62e6340e3f5570e6f43 100644
--- a/Cabal/Makefile
+++ b/Cabal/Makefile
@@ -1,4 +1,4 @@
-VERSION=3.0.0.0
+VERSION=3.1.0.0
 
 #KIND=devel
 KIND=rc
diff --git a/Cabal/doc/conf.py b/Cabal/doc/conf.py
index b64b0344b68fc31ff5389611cbf6954277c1a807..808c1e653de943617fe554fa59f2a543edad761f 100644
--- a/Cabal/doc/conf.py
+++ b/Cabal/doc/conf.py
@@ -13,7 +13,7 @@ import sphinx_rtd_theme
 sys.path.insert(0, os.path.abspath('.'))
 import cabaldomain
 
-version = "3.0.0.0"
+version = "3.1.0.0"
 
 extensions = ['sphinx.ext.extlinks', 'sphinx.ext.todo']
 
diff --git a/appveyor.yml b/appveyor.yml
index 9c8703478c2984e8a2d4d434b87288cfb271f087..0a9bbb4f0127ccdf81703fed471ded9312b91a3b 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -3,6 +3,7 @@
 branches:
   only:
     - master
+    - "3.0"
     - "2.4"    
     - "2.2"
     - "2.0"
@@ -47,7 +48,7 @@ build_script:
   - cabal %CABOPTS% new-test Cabal
   - appveyor-retry cabal %CABOPTS% new-build exe:cabal exe:cabal-tests --only-dependencies
   - cabal %CABOPTS% new-build exe:cabal
-  - cabal %CABOPTS% new-run cabal-tests -- -j3 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.0.2\cabal-install-3.0.0.0\x\cabal\build\cabal\cabal.exe
+  - cabal %CABOPTS% new-run cabal-tests -- -j3 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.0.2\cabal-install-3.1.0.0\x\cabal\build\cabal\cabal.exe
   - appveyor-retry cabal %CABOPTS% new-build cabal-install:tests --only-dependencies
   - cd cabal-install
   - cabal %CABOPTS% new-run cabal-install:memory-usage-tests
diff --git a/cabal-install/bootstrap.sh b/cabal-install/bootstrap.sh
index 6dfbd4e6ae07e910848b2a61c4b2870a430d392e..35930a9c1a139806a7ce0e3e63853d927b548661 100755
--- a/cabal-install/bootstrap.sh
+++ b/cabal-install/bootstrap.sh
@@ -224,7 +224,7 @@ NETWORK_URI_VER="2.6.1.0"; NETWORK_URI_VER_REGEXP="2\.6\.(0\.[2-9]|[1-9])"
                        # >= 2.6.0.2 && < 2.7
 NETWORK_VER="2.7.0.0"; NETWORK_VER_REGEXP="2\.[0-7]\."
                        # >= 2.0 && < 2.7
-CABAL_VER="3.0.0.0";   CABAL_VER_REGEXP="3\.0\.[0-9]"
+CABAL_VER="3.1.0.0";   CABAL_VER_REGEXP="3\.1\.[0-9]"
                        # >= 2.5 && < 2.6
 TRANS_VER="0.5.5.0";   TRANS_VER_REGEXP="0\.[45]\."
                        # >= 0.2.* && < 0.6
diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index 2310258bfb782bc2bc859ca285be7439e5ba5444..551269bec0e179c2d813d88dbd9759077c97278d 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -4,7 +4,7 @@ Cabal-Version:      >= 1.10
 -- To update this file, edit 'cabal-install.cabal.pp' and run
 -- 'make cabal-install-prod' in the project's root folder.
 Name:               cabal-install
-Version:            3.0.0.0
+Version:            3.1.0.0
 Synopsis:           The command-line interface for Cabal and Hackage.
 Description:
     The \'cabal\' command-line program simplifies the process of managing
@@ -312,7 +312,7 @@ executable cabal
         base16-bytestring >= 0.1.1 && < 0.2,
         binary     >= 0.7.3    && < 0.9,
         bytestring >= 0.10.6.0 && < 0.11,
-        Cabal      == 3.0.*,
+        Cabal      == 3.1.*,
         containers >= 0.5.6.2  && < 0.7,
         cryptohash-sha256 >= 0.11 && < 0.12,
         deepseq    >= 1.4.1.1  && < 1.5,
diff --git a/cabal-install/cabal-install.cabal.pp b/cabal-install/cabal-install.cabal.pp
index 860714fb2a9f83940db5f48eb3188c23a2b52f63..97c0f0f4076d47f2ef9c74dcf1be6675a8f166eb 100644
--- a/cabal-install/cabal-install.cabal.pp
+++ b/cabal-install/cabal-install.cabal.pp
@@ -10,7 +10,7 @@ Cabal-Version:      >= 1.10
 -- To update this file, edit 'cabal-install.cabal.pp' and run
 -- 'make cabal-install-prod' in the project's root folder.
 Name:               cabal-install
-Version:            3.0.0.0
+Version:            3.1.0.0
 #
 # NOTE: when updating build-depends, don't forget to update version regexps in bootstrap.sh.
 #
@@ -22,7 +22,7 @@ Version:            3.0.0.0
         base16-bytestring >= 0.1.1 && < 0.2,
         binary     >= 0.7.3    && < 0.9,
         bytestring >= 0.10.6.0 && < 0.11,
-        Cabal      == 3.0.*,
+        Cabal      == 3.1.*,
         containers >= 0.5.6.2  && < 0.7,
         cryptohash-sha256 >= 0.11 && < 0.12,
         deepseq    >= 1.4.1.1  && < 1.5,
@@ -475,7 +475,7 @@ executable cabal
 
     cpp-options: -DMONOLITHIC
     build-depends:
-        Cabal      == 3.0.*,
+        Cabal      == 3.1.*,
         cabal-install-solver-dsl,
         QuickCheck >= 2.8.2,
         array,
diff --git a/cabal-install/changelog b/cabal-install/changelog
index 16f684b63909fb6cbc9a45f6d5600a58f4667cdc..c41c8a15142d800cfac6ac03934a42d66e4d353c 100644
--- a/cabal-install/changelog
+++ b/cabal-install/changelog
@@ -1,6 +1,8 @@
 -*-change-log-*-
 
-3.0.0.0 (current development version)
+3.1.0.0 (current development version)
+
+3.0.0.0 TBD
 	* `v2-repl` no longer changes directory to a randomized temporary folder
 	  when used outside of a project. (#5544)
 	* `install-method` and `overwrite-policy` in `.cabal/config` now actually work. (#5942)
diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal
index 166abd2f3da2d8353131e5c335a2eb0a66c79162..ad76c95d9de5cbc6aa984108bb0cff68309b4993 100644
--- a/cabal-testsuite/cabal-testsuite.cabal
+++ b/cabal-testsuite/cabal-testsuite.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.2
 name:          cabal-testsuite
-version:       3.0.0.0
+version:       3.1.0.0
 copyright:     2003-2019, Cabal Development Team (see AUTHORS file)
 license:       BSD-3-Clause
 license-file:  LICENSE
@@ -28,7 +28,7 @@ common shared
   build-depends:
     , base >= 4.6 && <4.13
     -- this needs to match the in-tree lib:Cabal version
-    , Cabal == 3.0.0.0
+    , Cabal == 3.1.0.0
 
   ghc-options: -Wall -fwarn-tabs
 
@@ -102,5 +102,5 @@ executable setup
 
 custom-setup
   -- we only depend on even stable releases of lib:Cabal
-  setup-depends: Cabal == 2.2.* || == 2.4.* || == 3.0.*,
+  setup-depends: Cabal == 2.2.* || == 2.4.* || == 3.0.* || ==3.1.*,
                  base, filepath, directory
diff --git a/solver-benchmarks/solver-benchmarks.cabal b/solver-benchmarks/solver-benchmarks.cabal
index d3175488d201f88d45fcb65e910691f78ca60216..f91a00db496a591036334a265c5efbb87b883475 100644
--- a/solver-benchmarks/solver-benchmarks.cabal
+++ b/solver-benchmarks/solver-benchmarks.cabal
@@ -1,5 +1,5 @@
 name:          solver-benchmarks
-version:       3.0.0.0
+version:       3.1.0.0
 copyright:     2003-2017, Cabal Development Team (see AUTHORS file)
 license:       BSD3
 license-file:  LICENSE
diff --git a/travis-common.sh b/travis-common.sh
index d6fe02c5acdd9051a740deba285387f75a469799..0582e28a566ecd9d0de60d8af2d019b5c42dd16a 100644
--- a/travis-common.sh
+++ b/travis-common.sh
@@ -1,8 +1,8 @@
 set -e
 
 HACKAGE_REPO_TOOL_VERSION="0.1.1.1"
-CABAL_VERSION="3.0.0.0"
-CABAL_INSTALL_VERSION="3.0.0.0"
+CABAL_VERSION="3.1.0.0"
+CABAL_INSTALL_VERSION="3.1.0.0"
 
 if [ "$TRAVIS_OS_NAME" = "linux" ]; then
     ARCH="x86_64-linux"
diff --git a/travis-deploy.sh b/travis-deploy.sh
index 88d7ddbbb9ba40abe719f7803d3974c3c3673409..e90c2fdb3b5647e2a6432b20244f2ba0cb2f2c1d 100755
--- a/travis-deploy.sh
+++ b/travis-deploy.sh
@@ -8,7 +8,7 @@ deploy() {
     (cd cabal-website && git checkout --track -b gh-pages origin/gh-pages)
     rm -rf cabal-website/doc
     mkdir -p cabal-website/doc/html
-    mv dist-newstyle/build/`uname -m`-$TRAVIS_OS_NAME/ghc-$GHCVER/Cabal-3.0.0.0/doc/html/Cabal \
+    mv dist-newstyle/build/`uname -m`-$TRAVIS_OS_NAME/ghc-$GHCVER/Cabal-3.1.0.0/doc/html/Cabal \
        cabal-website/doc/html/Cabal
     (cd cabal-website && git add --all .)
     (cd cabal-website && \
diff --git a/validate.sh b/validate.sh
index 6e6353c63b2ff20bf16ac306745f6fccc07b9ff7..15c19d40f7ca11332e6ed8c4e746ef129d2bbc07 100755
--- a/validate.sh
+++ b/validate.sh
@@ -177,7 +177,7 @@ timed $CABALPLAN --version
 #######################################################################
 
 # NOTE: This should match cabal-testsuite version
-CABAL_VERSION="3.0.0.0"
+CABAL_VERSION="3.1.0.0"
 
 if [ "$(uname)" = "Linux" ]; then
     ARCH="x86_64-linux"