diff --git a/cabal.project b/cabal.project
index fd4b237b37f8d0bdd34b5620047c67f38469de94..1fdea4fb117b691b5573b1120e9e25183fb385dc 100644
--- a/cabal.project
+++ b/cabal.project
@@ -39,47 +39,23 @@ constraints: these -assoc
 -- program-options
 --   ghc-options: -fno-ignore-asserts
 --
--- NOTE: for library coverage in multi-project builds,
--- see:
---
--- * https://github.com/haskell/cabal/issues/6440
--- * https://github.com/haskell/cabal/issues/5213#issuecomment-586517129
---
--- We must mask coverage for dependencies of `cabal-install` in
--- multiproject settings in order to generate coverage for
--- the `cabal-install` library
---
 package Cabal
   ghc-options: -fno-ignore-asserts
-  coverage: False
-  library-coverage: False
 
 package cabal-testsuite
   ghc-options: -fno-ignore-asserts
-  coverage: False
-  library-coverage: False
 
 package Cabal-QuickCheck
   ghc-options: -fno-ignore-asserts
-  coverage: False
-  library-coverage: False
 
 package Cabal-tree-diff
   ghc-options: -fno-ignore-asserts
-  coverage: False
-  library-coverage: False
 
 package Cabal-described
   ghc-options: -fno-ignore-asserts
-  coverage: False
-  library-coverage: False
 
 package cabal-install-solver
   ghc-options: -fno-ignore-asserts
-  coverage: False
-  library-coverage: False
 
 package cabal-install
   ghc-options: -fno-ignore-asserts
-  coverage: True
-  library-coverage: True
diff --git a/cabal.project.coverage b/cabal.project.coverage
new file mode 100644
index 0000000000000000000000000000000000000000..cd6433517792b0bef56a89b1138a274a72d7ccc0
--- /dev/null
+++ b/cabal.project.coverage
@@ -0,0 +1,76 @@
+packages: Cabal/ cabal-testsuite/
+packages: cabal-install/
+packages: cabal-install-solver/
+packages: solver-benchmarks/
+
+tests: True
+
+packages: Cabal-QuickCheck/
+packages: Cabal-tree-diff/
+packages: Cabal-described
+packages: Cabal-tests/
+packages: cabal-benchmarks/
+
+packages: vendor/cabal-doctest-1.0.8
+
+-- Uncomment to allow picking up extra local unpacked deps:
+--optional-packages: */
+
+-- Remove after hackage-repo-tool release
+allow-newer:
+  hackage-repo-tool:optparse-applicative
+
+allow-newer:
+  hackage-security:Cabal
+
+-- https://github.com/haskell-hvr/windns/pull/2
+allow-newer: windns-0.1.0.1:base
+
+-- avoiding extra dependencies
+constraints: rere -rere-cfg
+constraints: these
+
+-- NOTE: for library coverage in multi-project builds,
+-- see:
+--
+-- * https://github.com/haskell/cabal/issues/6440
+-- * https://github.com/haskell/cabal/issues/5213#issuecomment-586517129
+--
+-- We must mask coverage for dependencies of `cabal-install` in
+-- multiproject settings in order to generate coverage for
+-- the `cabal-install` library
+--
+package Cabal
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
+package cabal-testsuite
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
+package Cabal-QuickCheck
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
+package Cabal-tree-diff
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
+package Cabal-described
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
+package cabal-install-solver
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
+package cabal-install
+  ghc-options: -fno-ignore-asserts
+  coverage: True
+  library-coverage: True