diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for iridium
 
+## 0.1.5.7  -- 2017-08-01
+
+  * Adapt for cabal-2.0 - Note that this is a breaking change; uploading with
+    cabal-1.* will not work with this version.
+
 ## 0.1.5.6  -- 2016-09-28
 
   * Only internal changes (support ghc-8, fix support for ghc-7.8;
diff --git a/iridium.cabal b/iridium.cabal
--- a/iridium.cabal
+++ b/iridium.cabal
@@ -1,10 +1,10 @@
 name:                iridium
-version:             0.1.5.6
+version:             0.1.5.7
 synopsis:            Automated Local Cabal Package Testing and Uploading
 license:             BSD3
 license-file:        LICENSE
 author:              Lennart Spitzner
-maintainer:          lsp@informatik.uni-kiel.de
+maintainer:          Lennart Spitzner <hexagoxel@hexagoxel.de>
 copyright:           Copyright (C) 2016 Lennart Spitzner
 Homepage:            https://github.com/lspitzner/iridium
 Bug-reports:         https://github.com/lspitzner/iridium/issues
@@ -71,7 +71,7 @@
   -- other-modules:
   -- other-extensions:
   build-depends:
-    { base                   >=4.7      && <4.10
+    { base                   >=4.7      && <4.11
     , lifted-base            >=0.2.3.6  && <0.3
     , yaml                   >=0.8.16   && <0.9
     , turtle                 >=1.3.0    && <1.4
@@ -87,9 +87,9 @@
     , foldl                  >=1.1.5    && <1.3
     , bytestring             >=0.10.4.0 && <0.11
     , tagged                 >=0.8.3    && <0.9
-    , extra                  >=1.4.3    && <1.5
+    , extra                  >=1.4.3    && <1.7
     , process                >=1.2.3.0  && <1.5
-    , vector                 >=0.11.0.0 && <0.12
+    , vector                 >=0.11.0.0 && <0.13
     , ansi-terminal          >=0.6.2.3  && <0.7
     , transformers-base      >=0.4.4    && <0.5
     , monad-control          >=1.0.0.5  && <1.1
@@ -119,14 +119,17 @@
   main-is: {
     Main.hs
   }
+  other-modules: {
+    Paths_iridium
+  }
   build-depends:
     { iridium
-    , base                   >=4.7      && <4.10
+    , base                   >=4.7      && <4.11
     , yaml                   >=0.8.16   && <0.9
     , transformers           >=0.3.0.0  && <0.6
     , unordered-containers   >=0.2.5.1  && <0.3
     , multistate             >=0.7.0.0  && <0.8
-    , extra                  >=1.4.3    && <1.5
+    , extra                  >=1.4.3    && <1.7
     , text                   >=1.2.2.0  && <1.3
     }
   hs-source-dirs: {
diff --git a/src/Development/Iridium/Hackage.hs b/src/Development/Iridium/Hackage.hs
--- a/src/Development/Iridium/Hackage.hs
+++ b/src/Development/Iridium/Hackage.hs
@@ -112,6 +112,7 @@
       mzeroIfNonzero $ liftIO $
         runProcess "cabal"
                    ( [ "upload"
+                     , "--publish"
                      , filePath
                      ]
                    ++ ["-u" ++ u | u <- maybeToList username]
diff --git a/src/Development/Iridium/Repo/Git.hs b/src/Development/Iridium/Repo/Git.hs
--- a/src/Development/Iridium/Repo/Git.hs
+++ b/src/Development/Iridium/Repo/Git.hs
@@ -5,7 +5,7 @@
 
 
 
-import           Control.Monad
+import           Control.Monad (when, mzero, liftM, MonadPlus)
 import           Control.Monad.Trans.Maybe
 import           Control.Monad.Trans.Class
 import           Control.Monad.IO.Class
@@ -15,6 +15,7 @@
 import           Data.Version
 import           System.Process hiding ( cwd )
 import           Data.Char
+import           Data.Foldable (forM_)
 
 import           Development.Iridium.Types
 import           Development.Iridium.Utils
@@ -62,10 +63,10 @@
           ++ ["Push current branch and tag to upstream repo" | pushEnabled]
   repo_performAction git = do
     tagEnabled <- configIsEnabledM ["repository", "git", "release-tag"]
-    when tagEnabled $ do
+    tagStringMaybe <- if tagEnabled then liftM Just askTagString else return Nothing
+    tagStringMaybe `forM_` \tagStr -> do
       pushLog LogLevelPrint "[git] Tagging this release."
       withIndentation $ do
-        tagStr <- askTagString
         curOut <- runCommandStdOut "git" ["tag", "-l", tagStr]
         pushLog LogLevelDebug curOut
         if all isSpace curOut
@@ -88,10 +89,9 @@
         mzeroIfNonzero $ liftIO $
           runProcess "git"
                      ( [ "push"
-                       , "--tags"
                        , remote
                        , _git_branchName git
-                       ]
+                       ] ++ maybe [] return tagStringMaybe
                      )
                      Nothing Nothing Nothing Nothing Nothing
           >>= waitForProcess
