Skip to content

Remove --cabal-file option #9123

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 9, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions cabal-install/src/Distribution/Client/NixStyleOptions.hs
Original file line number Diff line number Diff line change
@@ -55,11 +55,12 @@ nixStyleOptions commandOptions showOrParseArgs =
configFlags
set1
-- Note: [Hidden Flags]
-- hide "constraint", "dependency", "promised-dependency" and
-- "exact-configuration" from the configure options.
-- We reuse the configure options from v1 commands which on their turn
-- reuse the ones from Cabal) but we hide some of them in v2 commands.
( filter
( ( `notElem`
[ "constraint"
[ "cabal-file"
, "constraint"
, "dependency"
, "promised-dependency"
, "exact-configuration"
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: fail
version: 0.1.0.0
license: BSD3
author: Edward Z. Yang
maintainer: ezyang@cs.stanford.edu
build-type: Simple
cabal-version: 2.0

library mylib
build-depends: base
signatures: Database
exposed-modules: Mine
hs-source-dirs: mylib
default-language: Haskell2010

library mysql
build-depends: base
exposed-modules: Database.MySQL
hs-source-dirs: mysql
default-language: Haskell2010

library postgresql
build-depends: base
exposed-modules: Database.PostgreSQL
hs-source-dirs: postgresql
default-language: Haskell2010

library
build-depends: base, mysql, postgresql, mylib
mixins:
mysql (Database.MySQL as Database),
postgresql (Database.PostgreSQL as Database)
exposed-modules: App
hs-source-dirs: src
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Includes2
version: 0.1.0.0
license: BSD3
author: Edward Z. Yang
maintainer: ezyang@cs.stanford.edu
build-type: Simple
cabal-version: 2.0

library mylib
build-depends: base
signatures: Database
exposed-modules: Mine
hs-source-dirs: mylib
default-language: Haskell2010

library mysql
build-depends: base
exposed-modules: Database.MySQL
hs-source-dirs: mysql
default-language: Haskell2010

library postgresql
build-depends: base
exposed-modules: Database.PostgreSQL
hs-source-dirs: postgresql
default-language: Haskell2010

library
build-depends: base, mysql, postgresql, mylib
mixins:
mylib (Mine as Mine.MySQL) requires (Database as Database.MySQL),
mylib (Mine as Mine.PostgreSQL) requires (Database as Database.PostgreSQL)
exposed-modules: App
hs-source-dirs: src
default-language: Haskell2010

executable exe
build-depends: base, Includes2
main-is: Main.hs
hs-source-dirs: exe
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -1 +1 @@
packages: .
packages: ./Includes2
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Test.Cabal.Prelude
main = setupAndCabalTest $ do
skipUnlessGhcVersion ">= 8.1"
r <- fails $ setup' "configure" ["--cabal-file", "Includes2.cabal.fail"]
r <- fails $ withDirectory "Includes2-fail" $ setup' "configure" []
assertOutputContains "mysql" r
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import Test.Cabal.Prelude
main = setupAndCabalTest $ do
skipUnlessGhcVersion ">= 8.1"
withPackageDb $ do
setup_install ["--cabal-file", "Includes2.cabal"]
-- TODO: haddock for internal method doesn't work
runExe "exe" []
withPackageDb $
withDirectory "Includes2" $ do
setup_install []
-- TODO: haddock for internal method doesn't work
runExe "exe" []
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ for Includes2-0.1.0.0...
Preprocessing library 'mylib' for Includes2-0.1.0.0...
Running Haddock on library 'mylib' instantiated with Database = <Database>
for Includes2-0.1.0.0...
Documentation created: setup-per-component.dist/work/dist/doc/html/Includes2/
Documentation created: ../setup-per-component.dist/work/Includes2/dist/doc/html/Includes2/
# Setup copy
Installing internal library mylib in <PATH>
# Setup register
@@ -22,7 +22,7 @@ Building library 'mysql' for Includes2-0.1.0.0...
# Setup haddock
Preprocessing library 'mysql' for Includes2-0.1.0.0...
Running Haddock on library 'mysql' for Includes2-0.1.0.0...
Documentation created: setup-per-component.dist/work/dist/doc/html/Includes2/
Documentation created: ../setup-per-component.dist/work/Includes2/dist/doc/html/Includes2/
# Setup copy
Installing internal library mysql in <PATH>
# Setup register
@@ -35,7 +35,7 @@ Building library 'postgresql' for Includes2-0.1.0.0...
# Setup haddock
Preprocessing library 'postgresql' for Includes2-0.1.0.0...
Running Haddock on library 'postgresql' for Includes2-0.1.0.0...
Documentation created: setup-per-component.dist/work/dist/doc/html/Includes2/
Documentation created: ../setup-per-component.dist/work/Includes2/dist/doc/html/Includes2/
# Setup copy
Installing internal library postgresql in <PATH>
# Setup register
@@ -54,7 +54,7 @@ Preprocessing library 'mylib' for Includes2-0.1.0.0...
Running Haddock on library 'mylib' instantiated with
Database = mysql-0.1.0.0:Database.MySQL
for Includes2-0.1.0.0...
Documentation created: setup-per-component.dist/work/dist/doc/html/Includes2/
Documentation created: ../setup-per-component.dist/work/Includes2/dist/doc/html/Includes2/
# Setup copy
Installing internal library mylib in <PATH>
# Setup register
@@ -75,7 +75,7 @@ Preprocessing library 'mylib' for Includes2-0.1.0.0...
Running Haddock on library 'mylib' instantiated with
Database = postgresql-0.1.0.0:Database.PostgreSQL
for Includes2-0.1.0.0...
Documentation created: setup-per-component.dist/work/dist/doc/html/Includes2/
Documentation created: ../setup-per-component.dist/work/Includes2/dist/doc/html/Includes2/
# Setup copy
Installing internal library mylib in <PATH>
# Setup register
@@ -90,7 +90,7 @@ Building library for Includes2-0.1.0.0...
# Setup haddock
Preprocessing library for Includes2-0.1.0.0...
Running Haddock on library for Includes2-0.1.0.0...
Documentation created: setup-per-component.dist/work/dist/doc/html/Includes2/
Documentation created: ../setup-per-component.dist/work/Includes2/dist/doc/html/Includes2/
# Setup copy
Installing library in <PATH>
# Setup register
Original file line number Diff line number Diff line change
@@ -4,15 +4,16 @@ main = setupTest $ do
skipUnlessGhcVersion ">= 8.1"
ghc <- isGhcVersion "== 9.0.2 || == 9.2.* || == 9.4.* || == 9.6.*"
expectBrokenIf ghc 7987 $
withPackageDb $ do
let setup_install' args = setup_install_with_docs (["--cabal-file", "Includes2.cabal"] ++ args)
setup_install' ["mylib", "--cid", "mylib-0.1.0.0"]
setup_install' ["mysql", "--cid", "mysql-0.1.0.0"]
setup_install' ["postgresql", "--cid", "postgresql-0.1.0.0"]
setup_install' ["mylib", "--cid", "mylib-0.1.0.0",
"--instantiate-with", "Database=mysql-0.1.0.0:Database.MySQL"]
setup_install' ["mylib", "--cid", "mylib-0.1.0.0",
"--instantiate-with", "Database=postgresql-0.1.0.0:Database.PostgreSQL"]
setup_install' ["Includes2"]
setup_install' ["exe"]
runExe' "exe" [] >>= assertOutputContains "minemysql minepostgresql"
withPackageDb $
withDirectory "Includes2" $ do
let setup_install' args = setup_install_with_docs args
setup_install' ["mylib", "--cid", "mylib-0.1.0.0"]
setup_install' ["mysql", "--cid", "mysql-0.1.0.0"]
setup_install' ["postgresql", "--cid", "postgresql-0.1.0.0"]
setup_install' ["mylib", "--cid", "mylib-0.1.0.0",
"--instantiate-with", "Database=mysql-0.1.0.0:Database.MySQL"]
setup_install' ["mylib", "--cid", "mylib-0.1.0.0",
"--instantiate-with", "Database=postgresql-0.1.0.0:Database.PostgreSQL"]
setup_install' ["Includes2"]
setup_install' ["exe"]
runExe' "exe" [] >>= assertOutputContains "minemysql minepostgresql"
Original file line number Diff line number Diff line change
@@ -4,6 +4,6 @@ main = setupAndCabalTest $ do
withPackageDb $ do
withDirectory "containers-dupe" $
setup_install []
withDirectory "p" $ do
r <- fails $ setup' "configure" ["--cabal-file", "p.cabal.fail-ambiguous"]
withDirectory "p-fail-ambiguous" $ do
r <- fails $ setup' "configure" []
assertOutputContains "Data.Map" r
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Test.Cabal.Prelude
main = setupAndCabalTest $ do
skipUnlessGhcVersion ">= 7.9"
withDirectory "p" $ do
r <- fails $ setup' "configure" ["--cabal-file", "p.cabal.fail-missing"]
withDirectory "p-fail-missing" $ do
r <- fails $ setup' "configure" []
assertOutputContains "Missing" r
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Test.Cabal.Prelude
main = setupAndCabalTest $ do
skipUnlessGhcVersion ">= 7.9"
withDirectory "p" $ do
r <- fails $ setup' "configure" ["--cabal-file", "p.cabal.fail-other"]
withDirectory "p-fail-other" $ do
r <- fails $ setup' "configure" []
assertOutputContains "Private" r
Original file line number Diff line number Diff line change
@@ -3,5 +3,5 @@ import Test.Cabal.Prelude
main = setupAndCabalTest $ do
skipUnlessGhcVersion ">= 7.9"
withPackageDb $ do
withDirectory "p" $ setup_install ["--cabal-file", "p.cabal"]
withDirectory "p" $ setup_install []
withDirectory "q" $ setup_build []
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import Test.Cabal.Prelude
import Test.Cabal.Script
main = setupTest $
void $ setup'' "pkg" "configure" ["--cabal-file", "pkg/a.cabal"]
withDirectory "pkg" $
void $ setup' "configure" []
8 changes: 8 additions & 0 deletions changelog.d/pr-9123
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
synopsis: Remove --cabal-file flags from v2 commands
packages: cabal-install
prs: #9123
issues: #8395 #7225 #6880
description: {
The --cabal-file flag was never meant for public use but only for testing. To
avoid confusing the users any further we removed the flag from v2 commands.
}