diff --git a/src/Zifter/Stack.hs b/src/Zifter/Stack.hs
--- a/src/Zifter/Stack.hs
+++ b/src/Zifter/Stack.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Zifter.Stack where
 
 import Control.Monad
@@ -19,6 +20,9 @@
 import Distribution.PackageDescription.Configuration
 import Distribution.PackageDescription.Parse
 import Distribution.Verbosity
+#if MIN_VERSION_Cabal(2,0,0)
+import Distribution.Types.UnqualComponentName
+#endif
 
 import Zifter.Zift
 
@@ -94,7 +98,8 @@
     (concat <$>) $
         forM cabalFiles $ \cabalFile -> do
             pd <-
-                liftIO $ readPackageDescription deafening $ toFilePath cabalFile
+                liftIO $ readPackage
+                    deafening $ toFilePath cabalFile
             let packageDesc = flattenPackageDescription pd
                 name = unPackageName $ pkgName $ package packageDesc
                 libname = name ++ ":lib"
@@ -103,9 +108,23 @@
                         Nothing -> []
                         Just _ -> [libname]
                 testnames =
-                    map (((name ++ ":test:") ++) . testName) $
+                    map (((name ++ ":test:") ++) .  testComponentName
+                        ) $
                     testSuites packageDesc
             pure [(name, lib ++ testnames)]
+  where
+    readPackage =
+#if MIN_VERSION_Cabal(2,0,0)
+                    readGenericPackageDescription
+#else
+                    readPackageDescription
+#endif
+    testComponentName =
+#if MIN_VERSION_Cabal(2,0,0)
+                            unUnqualComponentName . testName
+#else
+                            testName
+#endif
 
 stackBuild :: Zift ()
 stackBuild = do
diff --git a/zifter-stack.cabal b/zifter-stack.cabal
--- a/zifter-stack.cabal
+++ b/zifter-stack.cabal
@@ -1,5 +1,5 @@
 name: zifter-stack
-version: 0.0.0.6
+version: 0.0.0.7
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
@@ -18,13 +18,13 @@
         Zifter.Stack
     build-depends:
         base >=4.9 && <=5,
-        Cabal >=1.24 && <1.25,
+        Cabal >=1.24 && <2.1,
         process -any,
         filepath >=1.4 && <1.5,
         directory -any,
         zifter >=0.0 && <0.1,
-        path >=0.5 && <0.6,
-        path-io >=1.2 && <1.3,
+        path -any,
+        path-io -any,
         safe >=0.3 && <0.4
     default-language: Haskell2010
     hs-source-dirs: src/
