diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index b404cacfb08faad4dfb638382741673112bdef84..4ac3a7f2349133648cb4dbf060e29459c09f9395 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - ghc: ["8.6.5", "8.8.4", "8.10.7", "9.0.2", "9.2.3"] + ghc: ["8.6.5", "8.8.4", "8.10.7", "9.0.2", "9.2.3", "9.4.4"] include: - os: macos-latest ghc: "9.2.3" diff --git a/.github/workflows/quick-jobs.yml b/.github/workflows/quick-jobs.yml index 466ec4d57dca06bcff066410e6e71a0fe902522a..633c9842fe85e13771b41bc994b5c5d5c906554e 100644 --- a/.github/workflows/quick-jobs.yml +++ b/.github/workflows/quick-jobs.yml @@ -65,14 +65,6 @@ jobs: - name: Set PATH run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - - name: Install cabal-env - run: | - mkdir -p $HOME/.cabal/bin - curl -sL https://github.com/phadej/cabal-extras/releases/download/preview-20191225/cabal-env-snapshot-20191225-x86_64-linux.xz > cabal-env.xz - echo "1b567d529c5f627fd8c956e57ae8f0d9f11ee66d6db34b7fb0cb1c370b4edf01 cabal-env.xz" | sha256sum -c - - xz -d < cabal-env.xz > $HOME/.cabal/bin/cabal-env - rm -f cabal-env.xz - chmod a+x $HOME/.cabal/bin/cabal-env - uses: actions/cache@v1 with: path: ~/.cabal/store @@ -91,17 +83,12 @@ jobs: run: | ghcup --version ghcup config set cache true - ghcup install ghc recommended - ghcup set ghc recommended + ghcup install ghc --set recommended + ghcup install cabal --set latest - name: Update Hackage index run: cabal v2-update - - name: Install doctest - run: cabal v2-install doctest - - name: Install libraries - run: | - cabal-env --transitive QuickCheck - cabal-env array bytestring containers deepseq directory filepath pretty process time binary unix text parsec mtl - cat $HOME/.ghc/*/environments/default - uses: actions/checkout@v3 + - name: Install doctest + run: make doctest-install - name: Doctest run: make doctest diff --git a/Cabal-syntax/Cabal-syntax.cabal b/Cabal-syntax/Cabal-syntax.cabal index b0c7244764823909fbbe76ec926974ed17c355a3..8bc06f8080ceda626b3b3f535710b79561a4edb9 100644 --- a/Cabal-syntax/Cabal-syntax.cabal +++ b/Cabal-syntax/Cabal-syntax.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: Cabal-syntax version: 3.9.0.0 -copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +copyright: 2003-2023, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org> diff --git a/Cabal-syntax/LICENSE b/Cabal-syntax/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/Cabal-syntax/LICENSE +++ b/Cabal-syntax/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/Cabal-tests/Cabal-tests.cabal b/Cabal-tests/Cabal-tests.cabal index 1f6a9b6d814b294476c50ab33b8e3d3b424e0293..2ae09c0928ee23c396a3b2a7ad5634b33ac35079 100644 --- a/Cabal-tests/Cabal-tests.cabal +++ b/Cabal-tests/Cabal-tests.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: Cabal-tests version: 3 -copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +copyright: 2003-2023, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org> diff --git a/Cabal-tests/LICENSE b/Cabal-tests/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/Cabal-tests/LICENSE +++ b/Cabal-tests/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index c75d24df96763b3fb1a2325eaceb154d825cf3af..3ad7d51753596238fbd7eadfefc443adbf6f0b54 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: Cabal version: 3.9.0.0 -copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +copyright: 2003-2023, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org> diff --git a/Cabal/LICENSE b/Cabal/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/Cabal/LICENSE +++ b/Cabal/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/LICENSE b/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/Makefile b/Makefile index 1ffbec77c663ff6b29f590f108f87a72581f1954..e61ac22e03a455d3da32421dd0850f4907e08391 100644 --- a/Makefile +++ b/Makefile @@ -71,15 +71,27 @@ ghcid-lib : ghcid-cli : ghcid -c 'cabal v2-repl cabal-install' -# doctests (relies on .ghc.environment files) - +# Artem, 2023-02-03, https://github.com/haskell/cabal/issues/8504 +# The new and prefered way to call the doctest tool (as of now) is based on cabal repl --with-ghc=doctest. +# The call below reflects the current documentation of the doctest tool except one caveat, +# which is https://github.com/haskell/cabal/issues/6859, i.e. we have to hide allow-newer in our project +# file from cabal/doctest. This is easy: we just select a project file with no allow-newer (e.g. cabal.project.libonly). +# +# TODO: Cabal-described should be added here but its doctests currently broken, see: +# https://github.com/haskell/cabal/issues/8734 +# Just as well, cabal-install(-solver) doctests (the target below) bitrotted and need some care. doctest : - doctest --fast -XHaskell2010 Cabal-syntax/src Cabal/src + cabal repl --with-ghc=doctest --build-depends=QuickCheck --build-depends=template-haskell --repl-options="-w" --project-file="cabal.project.validate" Cabal-syntax + cabal repl --with-ghc=doctest --build-depends=QuickCheck --build-depends=template-haskell --repl-options="-w" --project-file="cabal.project.validate" Cabal + # This is not run as part of validate.sh (we need hackage-security, which is tricky to get). doctest-cli : doctest -D__DOCTEST__ --fast cabal-install/src cabal-install-solver/src cabal-install-solver/src-assertion +doctest-install: + cabal install doctest --overwrite-policy=always --ignore-project + # tests check-tests : @@ -183,7 +195,7 @@ bootstrap-json-%: phony cd bootstrap && cabal v2-run -v0 cabal-bootstrap-gen -- linux-$*.plan.json \ | python3 -m json.tool > linux-$*.json -BOOTSTRAP_GHC_VERSIONS := 8.6.5 8.8.4 8.10.7 9.0.2 9.2.3 +BOOTSTRAP_GHC_VERSIONS := 8.6.5 8.8.4 8.10.7 9.0.2 9.2.3 9.4.4 bootstrap-jsons: $(BOOTSTRAP_GHC_VERSIONS:%=bootstrap-json-%) diff --git a/bootstrap/cabal-bootstrap-gen.cabal b/bootstrap/cabal-bootstrap-gen.cabal index a8e0ad0ad8893b043332a2fcddcffc80d6171fd4..70092314108a2484dbb41c2a333b03ec0050ff2f 100644 --- a/bootstrap/cabal-bootstrap-gen.cabal +++ b/bootstrap/cabal-bootstrap-gen.cabal @@ -8,18 +8,14 @@ executable cabal-bootstrap-gen ghc-options: -Wall main-is: Main.hs build-depends: - , aeson ^>=1.5.2.0 || ^>=2.0.3.0 - -- Not yet picked up: (*) || ^>=2.1.0.0 - , base ^>=4.12.0.0 || ^>=4.13.0.0 || ^>=4.14.0.0 || ^>=4.15.0.0 || ^>=4.16.0.0 + , aeson ^>=1.5.2.0 || ^>=2.0.3.0 || ^>=2.1.0.0 + , base ^>=4.12.0.0 || ^>=4.13.0.0 || ^>=4.14.0.0 || ^>=4.15.0.0 || ^>=4.16.0.0 || ^>=4.17.0.0 , bytestring ^>=0.10.8.2 || ^>=0.11.0.0 - , Cabal ^>=3.2.0.0 || ^>=3.4.1.0 || ^>=3.6.3.0 - -- Not yet picked up: (*) || ^>=3.8.1.0 - , cabal-install-parsers ^>=0.3.0.1 || ^>=0.4.5 + , Cabal ^>=3.2.0.0 || ^>=3.4.1.0 || ^>=3.6.3.0 || ^>=3.8.1.0 + , Cabal-syntax ^>=3.8.1.0 + , cabal-install-parsers ^>=0.3.0.1 || ^>=0.4.5 || ^>=0.6 , cabal-plan ^>=0.7.0.0 , containers ^>=0.6.0.1 - , text ^>=1.2.3.0 - -- Not yet picked up: (*) || ^>=2.0.1 + , text ^>=1.2.3.0 || ^>=2.0.1 , topograph ^>=1.0.0.1 - , transformers ^>=0.5.6.2 - -- Not yet picked up: (*) || ^>=0.6.0.4 - -- (*) as of 2022-08-19 + , transformers ^>=0.5.6.2 || ^>=0.6.0.4 diff --git a/bootstrap/linux-9.4.4.json b/bootstrap/linux-9.4.4.json new file mode 100644 index 0000000000000000000000000000000000000000..342772b24c5271e77f7a546b24742ec2cd3e17c5 --- /dev/null +++ b/bootstrap/linux-9.4.4.json @@ -0,0 +1 @@ +{"builtin":[{"package":"rts","version":"1.0.2"},{"package":"ghc-prim","version":"0.9.0"},{"package":"ghc-bignum","version":"1.3"},{"package":"base","version":"4.17.0.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.8.0"},{"package":"ghc-boot-th","version":"9.4.4"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.19.0.0"},{"package":"bytestring","version":"0.11.3.1"},{"package":"containers","version":"0.6.6"},{"package":"binary","version":"0.8.9.1"},{"package":"filepath","version":"1.4.2.2"},{"package":"time","version":"1.12.2"},{"package":"unix","version":"2.7.3"},{"package":"directory","version":"1.3.7.1"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"text","version":"2.0.1"},{"package":"parsec","version":"3.1.15.0"},{"package":"process","version":"1.6.16.0"},{"package":"stm","version":"2.5.1.0"},{"package":"exceptions","version":"0.10.5"}],"dependencies":[{"cabal_sha256":null,"flags":[],"package":"Cabal-syntax","revision":null,"source":"local","src_sha256":null,"version":"3.9.0.0"},{"cabal_sha256":null,"flags":[],"package":"Cabal","revision":null,"source":"local","src_sha256":null,"version":"3.9.0.0"},{"cabal_sha256":"db25c2e17967aa6b6046ab8b1b96ba3f344ca59a62b60fb6113d51ea305a3d8e","flags":["-optimised-mixer"],"package":"splitmix","revision":2,"source":"hackage","src_sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","version":"0.1.0.4"},{"cabal_sha256":"dea1f11e5569332dc6c8efaad1cb301016a5587b6754943a49f9de08ae0e56d9","flags":[],"package":"random","revision":0,"source":"hackage","src_sha256":"3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76","version":"1.2.1.1"},{"cabal_sha256":"02acedd7ac829b52756fe481a1d53294d8f5d42aaa56df560c62c6cec3587a14","flags":["+integer-gmp","-random-initial-seed"],"package":"hashable","revision":0,"source":"hackage","src_sha256":"1b4000ea82b81f69d46d0af4152c10c6303873510738e24cfc4767760d30e3f8","version":"1.4.2.0"},{"cabal_sha256":"2b9409023536823233ce3134558565d01b3382e651fa54ac8cb8a99967e023c9","flags":["-bench"],"package":"async","revision":2,"source":"hackage","src_sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","version":"2.2.4"},{"cabal_sha256":"bc14969ea4adfec6eee20264decf4a07c4002b38b2aa802d58d86b1a2cf7b895","flags":["-old-bytestring","-old-time"],"package":"tar","revision":5,"source":"hackage","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","version":"0.5.1.1"},{"cabal_sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","flags":["-devel"],"package":"network","revision":0,"source":"hackage","src_sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","version":"3.1.2.7"},{"cabal_sha256":"6ca77c4e80b4e4109e30549c269631a9cc295c8fc2431ce4123972a5f80f7bfc","flags":[],"package":"th-compat","revision":0,"source":"hackage","src_sha256":"d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8","version":"0.1.4"},{"cabal_sha256":"1fde59abf5d82a9666b4415bc2b2e9e33f6c1309074fda12d50410c7dbd95f3b","flags":[],"package":"network-uri","revision":0,"source":"hackage","src_sha256":"9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228","version":"2.6.4.2"},{"cabal_sha256":"b878d575c470bd1f72d37af6654d924ab2b9489d88de8a71bd74d9d5d726c013","flags":["-conduit10","+network-uri","-warn-as-error","-warp-tests"],"package":"HTTP","revision":1,"source":"hackage","src_sha256":"df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453","version":"4000.4.1"},{"cabal_sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","flags":[],"package":"base16-bytestring","revision":0,"source":"hackage","src_sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","version":"1.0.2.0"},{"cabal_sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","flags":[],"package":"base64-bytestring","revision":0,"source":"hackage","src_sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","version":"1.2.1.0"},{"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","flags":[],"package":"edit-distance","revision":1,"source":"hackage","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","version":"0.2.2.1"},{"cabal_sha256":null,"flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree"],"package":"cabal-install-solver","revision":null,"source":"local","src_sha256":null,"version":"3.9.0.0"},{"cabal_sha256":"facd0c04925ef925ec05243471fd16055229fdf51f64db1a1049de0cc6c6dfc3","flags":["-exe","+use-cbits"],"package":"cryptohash-sha256","revision":1,"source":"hackage","src_sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","version":"0.11.102.1"},{"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","flags":["-example"],"package":"echo","revision":0,"source":"hackage","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","version":"0.1.4"},{"cabal_sha256":"885c9e2410e5d91a08b199897df0867fecedf818216d7329a2d43a512833dd63","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"package":"ed25519","revision":6,"source":"hackage","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","version":"0.0.5.0"},{"cabal_sha256":"efd4c08c4df1ac3f423858a834c0e3b5b4909febda66a901d12a8e1d57bddaa8","flags":["+ofd-locking"],"package":"lukko","revision":3,"source":"hackage","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","version":"0.1.1.3"},{"cabal_sha256":"9adce39e4ca0b7a87d45df0a243134816c57059a08e28cff5469c98ae1f54dfc","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"package":"zlib","revision":1,"source":"hackage","src_sha256":"9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da","version":"0.6.3.0"},{"cabal_sha256":"64fc60f3f4d02047c54956b6976c0e4fc72722891c6875ab10d95359bc00355a","flags":["+base48","+cabal-syntax","+lukko","-mtl21","-old-directory","+use-network-uri"],"package":"hackage-security","revision":0,"source":"hackage","src_sha256":"52ee0576971955571d846b8e6c09638f89f4f7881f4a95173e44ccc0d856a066","version":"0.6.2.3"},{"cabal_sha256":"4ff4425c710cddf440dfbac6cd52310bb6b23e17902390ff71c9fc7eaafc4fcc","flags":[],"package":"regex-base","revision":1,"source":"hackage","src_sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","version":"0.94.0.2"},{"cabal_sha256":"9dbba4b65a3bb6975d9740814be5593c6b2d2d6a0b3febc8ec940edb9a9bbdf4","flags":["-_regex-posix-clib"],"package":"regex-posix","revision":1,"source":"hackage","src_sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","version":"0.96.0.1"},{"cabal_sha256":"61e2d98ff634b8b4b3db467772420c0f9c79c2da9ddf3d2daeb2af2417f2c535","flags":[],"package":"resolv","revision":5,"source":"hackage","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","version":"0.1.2.0"},{"cabal_sha256":"6e9b1b233af80cc0aa17ea858d2641ba146fb11cbcc5970a52649e89d77282e2","flags":[],"package":"safe-exceptions","revision":0,"source":"hackage","src_sha256":"91ce28d8f8a6efd31788d4827ed5cdcb9a546ad4053a86c56f7947c66a30b5bf","version":"0.1.7.3"},{"cabal_sha256":null,"flags":["+lukko","+native-dns"],"package":"cabal-install","revision":null,"source":"local","src_sha256":null,"version":"3.9.0.0"}]} diff --git a/bootstrap/src/Main.hs b/bootstrap/src/Main.hs index c289851671986c7edecc75c40e2ef07ee761aad7..0ca636ea0207adfb6ed300eaddd69951609fa098 100644 --- a/bootstrap/src/Main.hs +++ b/bootstrap/src/Main.hs @@ -93,7 +93,7 @@ main2 meta plan = do return ( Hackage , Just $ fromIntegral (I.riRevision relInfo) - , P.sha256FromByteString $ I.getSHA256 $ I.riCabal relInfo + , P.sha256FromByteString $ I.getSHA256 $ getHash relInfo ) Nothing -> case P.uType unit of @@ -117,6 +117,12 @@ main2 meta plan = do { resBuiltin = builtin , resDependencies = deps } + where +#if MIN_VERSION_cabal_install_parsers(0,6,0) + getHash = I.riCabalHash +#else + getHash = I.riCabal +#endif bfs :: P.PlanJson -> P.Unit -> IO [P.Unit] bfs plan unit0 = do diff --git a/cabal-benchmarks/LICENSE b/cabal-benchmarks/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/cabal-benchmarks/LICENSE +++ b/cabal-benchmarks/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/cabal-benchmarks/cabal-benchmarks.cabal b/cabal-benchmarks/cabal-benchmarks.cabal index 86d2a2e1456643a7753e41d21fbcec88c06c4603..4e91191832178eb9f289ead46c28f5c2e9f452a8 100644 --- a/cabal-benchmarks/cabal-benchmarks.cabal +++ b/cabal-benchmarks/cabal-benchmarks.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: cabal-benchmarks version: 3 -copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +copyright: 2003-2023, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org> diff --git a/cabal-dev-scripts/LICENSE b/cabal-dev-scripts/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/cabal-dev-scripts/LICENSE +++ b/cabal-dev-scripts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/cabal-install-solver/LICENSE b/cabal-install-solver/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/cabal-install-solver/LICENSE +++ b/cabal-install-solver/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/cabal-install-solver/cabal-install-solver.cabal b/cabal-install-solver/cabal-install-solver.cabal index 1b03d228a688c5f3995675e65b3996265b7246d1..28d962ad2e1eac0873812ffa3fef33ea71190b6e 100644 --- a/cabal-install-solver/cabal-install-solver.cabal +++ b/cabal-install-solver/cabal-install-solver.cabal @@ -11,7 +11,7 @@ license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team (see AUTHORS file) maintainer: Cabal Development Team <cabal-devel@haskell.org> -copyright: 2003-2022, Cabal Development Team +copyright: 2003-2023, Cabal Development Team category: Distribution build-type: Simple Extra-Source-Files: diff --git a/cabal-install/LICENSE b/cabal-install/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/cabal-install/LICENSE +++ b/cabal-install/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index 747d353276b3ffdc42339b4a657e76bd09abfa1b..15e813494b7fe226711fef7904a9781e350c70f6 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -13,7 +13,7 @@ License: BSD-3-Clause License-File: LICENSE Author: Cabal Development Team (see AUTHORS file) Maintainer: Cabal Development Team <cabal-devel@haskell.org> -Copyright: 2003-2022, Cabal Development Team +Copyright: 2003-2023, Cabal Development Team Category: Distribution Build-type: Simple Extra-Source-Files: diff --git a/cabal-install/src/Distribution/Client/Configure.hs b/cabal-install/src/Distribution/Client/Configure.hs index 554785ff847fe8aea35e13859a929cde04d9b6b1..2cbe16096a456e7d1c89be2fae4fea793356f05b 100644 --- a/cabal-install/src/Distribution/Client/Configure.hs +++ b/cabal-install/src/Distribution/Client/Configure.hs @@ -154,9 +154,6 @@ configure verbosity packageDBs repoCtxt comp platform progdb (fromFlagOrDefault (useDistPref defaultSetupScriptOptions) (configDistPref configFlags)) - (fromFlagOrDefault - (setupConfigDynamic defaultSetupScriptOptions) - (configDynExe configFlags)) (chooseCabalVersion configExFlags (flagToMaybe (configCabalVersion configExFlags))) @@ -170,7 +167,6 @@ configureSetupScript :: PackageDBStack -> Platform -> ProgramDb -> FilePath - -> Bool -> VersionRange -> Maybe Lock -> Bool @@ -182,7 +178,6 @@ configureSetupScript packageDBs platform progdb distPref - dynExe cabalVersion lock forceExternal @@ -214,7 +209,6 @@ configureSetupScript packageDBs , useDependenciesExclusive = not defaultSetupDeps && isJust explicitSetupDeps , useVersionMacros = not defaultSetupDeps && isJust explicitSetupDeps , isInteractive = False - , setupConfigDynamic = dynExe } where -- When we are compiling a legacy setup script without an explicit diff --git a/cabal-install/src/Distribution/Client/FetchUtils.hs b/cabal-install/src/Distribution/Client/FetchUtils.hs index f14ef418bd24d85c8339c090eeb82dce47c7603c..0a493d493f70015eb12695125db5dc437f199c67 100644 --- a/cabal-install/src/Distribution/Client/FetchUtils.hs +++ b/cabal-install/src/Distribution/Client/FetchUtils.hs @@ -134,7 +134,7 @@ verifyFetchedTarball verbosity repoCtxt repo pkgid = in handleError $ do exists <- doesFileExist file if not exists - then return False + then return True -- if the file does not exist, it vacuously passes validation, since it will be downloaded as necessary with what we will then check is a valid hash. else case repo of -- a secure repo has hashes we can compare against to confirm this is the correct file. RepoSecure{} -> diff --git a/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs b/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs index 8bef0f115debbabe847dee8d42c9f40be9833ef5..d2073b399f93774aee85a7f2e512c9d028d6fba6 100644 --- a/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs +++ b/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs @@ -336,7 +336,7 @@ licensePrompt flags = getLicense flags $ do let csv = fromFlagOrDefault defaultCabalVersion (cabalVersion flags) l <- promptList "Please choose a license" (licenses csv) - MandatoryPrompt + (DefaultPrompt "BSD-3-Clause") Nothing True diff --git a/cabal-install/src/Distribution/Client/Install.hs b/cabal-install/src/Distribution/Client/Install.hs index a53c7ded1aa046c1273aa3bf8ebf6d6259eb0167..2baa8af9e49c01f70fe834f5819209bcf11f42d7 100644 --- a/cabal-install/src/Distribution/Client/Install.hs +++ b/cabal-install/src/Distribution/Client/Install.hs @@ -1059,7 +1059,6 @@ performInstallations verbosity platform progdb distPref - (fromFlagOrDefault (setupConfigDynamic defaultSetupScriptOptions) $ configDynExe configFlags) (chooseCabalVersion configExFlags (libVersion miscOptions)) (Just lock) parallelInstall diff --git a/cabal-install/src/Distribution/Client/ProjectPlanOutput.hs b/cabal-install/src/Distribution/Client/ProjectPlanOutput.hs index fde7ea8b97a99a30aa5d319bf45be93eac34399a..c9243c310e0c53d846fa015d4d44c8aa37327ead 100644 --- a/cabal-install/src/Distribution/Client/ProjectPlanOutput.hs +++ b/cabal-install/src/Distribution/Client/ProjectPlanOutput.hs @@ -272,9 +272,9 @@ encodePlanAsJson distDirLayout elaboratedInstallPlan elaboratedSharedConfig = comp2str = prettyShow style2str :: Bool -> BuildStyle -> String - style2str _ BuildAndInstall = "global" style2str True _ = "local" style2str False BuildInplaceOnly = "inplace" + style2str False BuildAndInstall = "global" jdisplay :: Pretty a => a -> J.Value jdisplay = J.String . prettyShow diff --git a/cabal-install/src/Distribution/Client/ProjectPlanning.hs b/cabal-install/src/Distribution/Client/ProjectPlanning.hs index 4ec141037b7886af566e4e9b5c440e03e43f521a..8d8947ae8a81867ca3d48c2c9f8d991860bb9d07 100644 --- a/cabal-install/src/Distribution/Client/ProjectPlanning.hs +++ b/cabal-install/src/Distribution/Client/ProjectPlanning.hs @@ -672,7 +672,6 @@ rebuildInstallPlan verbosity projectConfigAllPackages, projectConfigLocalPackages, projectConfigSpecificPackage, - projectPackagesNamed, projectConfigBuildOnly } (compiler, platform, progdb) pkgConfigDB @@ -698,7 +697,6 @@ rebuildInstallPlan verbosity localPackages sourcePackageHashes installDirs - projectPackagesNamed projectConfigShared projectConfigAllPackages projectConfigLocalPackages @@ -1363,7 +1361,6 @@ elaborateInstallPlan -> [PackageSpecifier (SourcePackage (PackageLocation loc))] -> Map PackageId PackageSourceHash -> InstallDirs.InstallDirTemplates - -> [PackageVersionConstraint] -> ProjectConfigShared -> PackageConfig -> PackageConfig @@ -1375,7 +1372,6 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB solverPlan localPackages sourcePackageHashes defaultInstallDirs - extraPackages sharedPackageConfig allPackagesConfig localPackagesConfig @@ -2046,21 +2042,15 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB $ map packageId $ SolverInstallPlan.reverseDependencyClosure solverPlan - (map PlannedId (Set.toList pkgsInplaceToProject)) + (map PlannedId (Set.toList pkgsLocalToProject)) isLocalToProject :: Package pkg => pkg -> Bool isLocalToProject pkg = Set.member (packageId pkg) pkgsLocalToProject - pkgsInplaceToProject :: Set PackageId - pkgsInplaceToProject = - Set.fromList (catMaybes (map shouldBeLocal localPackages)) - --TODO: localPackages is a misnomer, it's all project packages - -- here is where we decide which ones will be local! - pkgsLocalToProject :: Set PackageId pkgsLocalToProject = - Set.fromList (catMaybes (map (isInLocal extraPackages) localPackages)) + Set.fromList (catMaybes (map shouldBeLocal localPackages)) --TODO: localPackages is a misnomer, it's all project packages -- here is where we decide which ones will be local! @@ -2129,28 +2119,6 @@ shouldBeLocal (SpecificSourcePackage pkg) = case srcpkgSource pkg of LocalUnpackedPackage _ -> Just (packageId pkg) _ -> Nothing --- Used to determine which packages are affected by local package configuration --- flags like ‘--enable-shared --enable-executable-dynamic --disable-library-vanilla’. -isInLocal :: [PackageVersionConstraint] -> PackageSpecifier (SourcePackage (PackageLocation loc)) -> Maybe PackageId -isInLocal _ NamedPackage{} = Nothing -isInLocal _extraPackages (SpecificSourcePackage pkg) = case srcpkgSource pkg of - LocalUnpackedPackage _ -> Just (packageId pkg) - -- LocalTarballPackage is matched here too, because otherwise ‘sdistize’ - -- produces for ‘localPackages’ in the ‘ProjectBaseContext’ a - -- LocalTarballPackage, and ‘shouldBeLocal’ will make flags like - -- ‘--disable-library-vanilla’ have no effect for a typical - -- ‘cabal install --lib --enable-shared enable-executable-dynamic --disable-library-vanilla’, - -- as these flags would apply to local packages, but the sdist would - -- erroneously not get categorized as a local package, so the flags would be - -- ignored and produce a package with an unchanged hash. - LocalTarballPackage _ -> Just (packageId pkg) - -- TODO: the docs say ‘extra-packages’ is implemented in cabal project - -- files. We can fix that here by checking that the version range matches. - --RemoteTarballPackage _ -> _ - --RepoTarballPackage _ -> _ - --RemoteSourceRepoPackage _ -> _ - _ -> Nothing - -- | Given a 'ElaboratedPlanPackage', report if it matches a 'ComponentName'. matchPlanPkg :: (ComponentName -> Bool) -> ElaboratedPlanPackage -> Bool matchPlanPkg p = InstallPlan.foldPlanPackage (p . ipiComponentName) (matchElabPkg p) @@ -3430,8 +3398,7 @@ setupHsScriptOptions (ReadyPackage elab@ElaboratedConfiguredPackage{..}) useWin32CleanHack = False, --TODO: [required eventually] forceExternalSetupMethod = isParallelBuild, setupCacheLock = Just cacheLock, - isInteractive = False, - setupConfigDynamic = elabDynExe + isInteractive = False } diff --git a/cabal-install/src/Distribution/Client/SetupWrapper.hs b/cabal-install/src/Distribution/Client/SetupWrapper.hs index 239e1a37908f9d3d36d635663f882fb432fb6497..e4885ed07c639639200aeb2a805145725f7cbdf2 100644 --- a/cabal-install/src/Distribution/Client/SetupWrapper.hs +++ b/cabal-install/src/Distribution/Client/SetupWrapper.hs @@ -71,7 +71,7 @@ import Distribution.Simple.BuildPaths import Distribution.Simple.Command ( CommandUI(..), commandShowOptions ) import Distribution.Simple.Program.GHC - ( GhcMode(..), GhcDynLinkMode(..), GhcOptions(..), renderGhcOptions ) + ( GhcMode(..), GhcOptions(..), renderGhcOptions ) import qualified Distribution.Simple.PackageIndex as PackageIndex import Distribution.Simple.PackageIndex (InstalledPackageIndex) import qualified Distribution.InstalledPackageInfo as IPI @@ -249,12 +249,7 @@ data SetupScriptOptions = SetupScriptOptions { -- | Is the task we are going to run an interactive foreground task, -- or an non-interactive background task? Based on this flag we -- decide whether or not to delegate ctrl+c to the spawned task - isInteractive :: Bool, - - -- Also track build output artifact configuration. - - -- | Pass `-dynamic` to `ghc` for dynamic rather than static linking. - setupConfigDynamic :: Bool + isInteractive :: Bool } defaultSetupScriptOptions :: SetupScriptOptions @@ -277,8 +272,7 @@ defaultSetupScriptOptions = SetupScriptOptions { useWin32CleanHack = False, forceExternalSetupMethod = False, setupCacheLock = Nothing, - isInteractive = False, - setupConfigDynamic = False + isInteractive = False } workingDir :: SetupScriptOptions -> FilePath @@ -846,9 +840,6 @@ getExternalSetupMethod verbosity options pkg bt = do -- --ghc-option=-v instead! ghcOptVerbosity = Flag (min verbosity normal) , ghcOptMode = Flag GhcModeMake - , ghcOptDynLinkMode = case setupConfigDynamic options'' of - True -> Flag GhcDynamicOnly - False -> Flag GhcStaticOnly , ghcOptInputFiles = toNubListR [setupHs] , ghcOptOutputFile = Flag setupProgFile , ghcOptObjDir = Flag setupDir diff --git a/cabal-install/tests/IntegrationTests2.hs b/cabal-install/tests/IntegrationTests2.hs index 6b81643fe0b5a138a8336c9979d2b0913acfe51e..90d272aacaed1a6782d09af9e0c971cea8e651e6 100644 --- a/cabal-install/tests/IntegrationTests2.hs +++ b/cabal-install/tests/IntegrationTests2.hs @@ -1591,7 +1591,7 @@ testProgramOptionsLocal config0 = do (Just [ghcFlag]) (getProgArgs localPackages "q") assertEqual "p" - (Just [ghcFlag]) + Nothing (getProgArgs localPackages "p") where testdir = "regression/program-options" diff --git a/cabal-testsuite/LICENSE b/cabal-testsuite/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/cabal-testsuite/LICENSE +++ b/cabal-testsuite/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/cabal-testsuite/PackageTests/Init/init-interactive.test.hs b/cabal-testsuite/PackageTests/Init/init-interactive.test.hs index 95ff4b3aaee2e59dd69464aeedeef0ae8be483bd..86bda8b028af090960960c81ce86a1b7a42a91bc 100644 --- a/cabal-testsuite/PackageTests/Init/init-interactive.test.hs +++ b/cabal-testsuite/PackageTests/Init/init-interactive.test.hs @@ -6,7 +6,7 @@ main = cabalTest $ buildOut <- withDirectory cwd $ do cabalWithStdin "init" ["-i"] - "2\n\n5\n\n\n2\n\n\n\n\n\n\n\n\n\n" + "2\n\n5\n\n\n\n\n\n\n\n\n\n\n\n\n" setup "configure" [] setup' "build" ["app"] diff --git a/cabal-testsuite/PackageTests/LinkerOptions/NonignoredConfigs/cabal.test.hs b/cabal-testsuite/PackageTests/LinkerOptions/NonignoredConfigs/cabal.test.hs index 9da924366f4b97d4c3c073c9807bc1ad6c9058ba..2e8dac23a20c84314ba4a4b42bffe342ff79f1dc 100644 --- a/cabal-testsuite/PackageTests/LinkerOptions/NonignoredConfigs/cabal.test.hs +++ b/cabal-testsuite/PackageTests/LinkerOptions/NonignoredConfigs/cabal.test.hs @@ -50,7 +50,7 @@ linkConfigFlags Dynamic = lrun :: [Linking] lrun = [Static, Dynamic, Static, Dynamic] -main = cabalTest $ do +main = cabalTest . expectBroken 8744 $ do -- Skip if on Windows, since my default Chocolatey Windows setup (and the CI -- server setup at the time, presumably) lacks support for dynamic builds -- since the base package appears to be static only, lacking e.g. ‘.dyn_o’ diff --git a/cabal-testsuite/README.md b/cabal-testsuite/README.md index 4b6643eec56c7b0e9b25d1064406ca08ceea79c9..0bf85b760c103cbdf44d67b8e97b9fff45c9573c 100644 --- a/cabal-testsuite/README.md +++ b/cabal-testsuite/README.md @@ -25,6 +25,28 @@ There are a few useful flags: the autodetection doesn't work correctly (which may be the case for old versions of GHC.) +doctests +======== + +You need to install the doctest tool. Make sure it's compiled with your current +GHC, and don't forget to reinstall it every time you switch GHC version: + +``` shellsession +cabal install doctest --overwrite-policy=always --ignore-project +``` + +After that you can run doctests for a component of your choice via the following command: + +``` shellsession +cabal repl --with-ghc=doctest --build-depends=QuickCheck --build-depends=template-haskell --repl-options="-w" --project-file="cabal.project.validate" Cabal-syntax +``` + +In this example we have run doctests in `Cabal-syntax`. Notice, that some +components have broken doctests +([#8734](https://github.com/haskell/cabal/issues/8734)); +our CI currently checks that `Cabal-syntax` and `Cabal` doctests pass via +`make doctest-install && make doctest` (you can use this make-based workflow too). + How to write ------------ diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal index e78435b3ec9616801cb3ff7a85536951fe6b8dbd..849ca565d6a27a81538e3a63d4f0f8986b572ec7 100644 --- a/cabal-testsuite/cabal-testsuite.cabal +++ b/cabal-testsuite/cabal-testsuite.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: cabal-testsuite version: 3 -copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +copyright: 2003-2023, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org> diff --git a/cabal-testsuite/src/Test/Cabal/Monad.hs b/cabal-testsuite/src/Test/Cabal/Monad.hs index 078351723c03330dd52c9f4b8949c2c8b510d06d..93207511ea34046e09189f8be3dc2cf4db57669b 100644 --- a/cabal-testsuite/src/Test/Cabal/Monad.hs +++ b/cabal-testsuite/src/Test/Cabal/Monad.hs @@ -336,7 +336,6 @@ runTestM mode m = withSystemTempDirectory "cabal-testsuite" $ \tmp_dir -> do testPlan = Nothing, testRecordDefaultMode = DoNotRecord, testRecordUserMode = Nothing, - testRecordNormalizer = id, testSourceCopyRelativeDir = "source" } let go = do cleanup @@ -527,12 +526,11 @@ data TestEnv = TestEnv , testRecordDefaultMode :: RecordMode -- | User explicitly set record mode. Not implemented ATM. , testRecordUserMode :: Maybe RecordMode - -- | Function to normalize recorded output - , testRecordNormalizer :: String -> String -- | Name of the subdirectory we copied the test's sources to, -- relative to 'testSourceDir' , testSourceCopyRelativeDir :: FilePath } + deriving Show testRecordMode :: TestEnv -> RecordMode testRecordMode env = fromMaybe (testRecordDefaultMode env) (testRecordUserMode env) diff --git a/cabal-testsuite/src/Test/Cabal/Plan.hs b/cabal-testsuite/src/Test/Cabal/Plan.hs index 0665de9a9b9b21b1222ea424b4aa7eecd883bf3c..274f11f83a61e75d5f95fc21669669441ab1d66c 100644 --- a/cabal-testsuite/src/Test/Cabal/Plan.hs +++ b/cabal-testsuite/src/Test/Cabal/Plan.hs @@ -19,11 +19,13 @@ import Control.Monad -- TODO: index this data Plan = Plan { planInstallPlan :: [InstallItem] } + deriving Show data InstallItem = APreExisting | AConfiguredGlobal ConfiguredGlobal | AConfiguredInplace ConfiguredInplace + deriving Show -- local or inplace package data ConfiguredInplace = ConfiguredInplace @@ -31,11 +33,13 @@ data ConfiguredInplace = ConfiguredInplace , configuredInplaceBuildInfo :: Maybe FilePath , configuredInplacePackageName :: PackageName , configuredInplaceComponentName :: Maybe ComponentName } + deriving Show data ConfiguredGlobal = ConfiguredGlobal { configuredGlobalBinFile :: Maybe FilePath , configuredGlobalPackageName :: PackageName , configuredGlobalComponentName :: Maybe ComponentName } + deriving Show instance FromJSON Plan where parseJSON (Object v) = fmap Plan (v .: "install-plan") diff --git a/cabal-testsuite/src/Test/Cabal/Prelude.hs b/cabal-testsuite/src/Test/Cabal/Prelude.hs index 4ad7b68d1162b9b73a49a5c04ffbc727e9b60ee5..10a3ac287ef0d6219dd375261d889589141cb7ae 100644 --- a/cabal-testsuite/src/Test/Cabal/Prelude.hs +++ b/cabal-testsuite/src/Test/Cabal/Prelude.hs @@ -679,7 +679,7 @@ recordHeader args = do env <- getTestEnv let mode = testRecordMode env str_header = "# " ++ intercalate " " args ++ "\n" - header = C.pack (testRecordNormalizer env str_header) + header = C.pack str_header case mode of DoNotRecord -> return () _ -> do @@ -696,7 +696,7 @@ recordLog res = do liftIO $ C.appendFile (testWorkDir env </> "test.log") (C.pack $ "+ " ++ resultCommand res ++ "\n" ++ resultOutput res ++ "\n\n") - liftIO . C.appendFile (testActualFile env) . C.pack . testRecordNormalizer env $ + liftIO . C.appendFile (testActualFile env) . C.pack $ case mode of RecordAll -> unlines (lines (resultOutput res)) RecordMarked -> getMarkedOutput (resultOutput res) @@ -787,10 +787,6 @@ recordMode mode = withReaderT (\env -> env { testRecordUserMode = Just mode }) -recordNormalizer :: (String -> String) -> TestM a -> TestM a -recordNormalizer f = - withReaderT (\env -> env { testRecordNormalizer = testRecordNormalizer env . f }) - assertOutputContains :: MonadIO m => WithCallStack (String -> Result -> m ()) assertOutputContains needle result = withFrozenCallStack $ diff --git a/cabal-testsuite/src/Test/Cabal/Script.hs b/cabal-testsuite/src/Test/Cabal/Script.hs index d509e6efe4a7558ca1a2505d615deeb6d93703a8..a7ce082a97b0cd877a3fb5c52a9214c4799757e0 100644 --- a/cabal-testsuite/src/Test/Cabal/Script.hs +++ b/cabal-testsuite/src/Test/Cabal/Script.hs @@ -37,6 +37,7 @@ data ScriptEnv = ScriptEnv , runnerPackages :: [(OpenUnitId, ModuleRenaming)] , runnerWithSharedLib :: Bool } + deriving Show {- diff --git a/changelog.d/issue-8757 b/changelog.d/issue-8757 new file mode 100644 index 0000000000000000000000000000000000000000..5b8512c5763baee1b93bea1233d385e4ad0655d9 --- /dev/null +++ b/changelog.d/issue-8757 @@ -0,0 +1,4 @@ +synopsis: cabal init: suggest BSD-3 as default license +packages: cabal-install +prs: #8764 +issues: #8757 diff --git a/changelog.d/pr-8623 b/changelog.d/pr-8623 deleted file mode 100644 index 29c9c3bb2c5a85b65c61413b982db933be62c7b6..0000000000000000000000000000000000000000 --- a/changelog.d/pr-8623 +++ /dev/null @@ -1,7 +0,0 @@ -synopsis: Fix project-local flags being ignored -packages: cabal-install -prs: #8623 -description: { - Fix some cases of configuration flags being dropped, e.g. with `v2-install` - and `--enable-shared --enable-executable-dynamic --disable-library-vanilla`. -} diff --git a/doc/conf.py b/doc/conf.py index 80bd6fba55403df56dd280b0caf27e28240a76fe..f540d7191f22066842023be18d758bf69891364d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -39,7 +39,7 @@ extlinks = { # General information about the project. project = u'Cabal' -copyright = u'2003-2022, Cabal Team' +copyright = u'2003-2023, Cabal Team' # N.B. version comes from ghc_config release = version # The full version, including alpha/beta/rc tags. diff --git a/doc/nix-local-build.rst b/doc/nix-local-build.rst index 70ebd28359dd834823c11d94585f8af6def0df15..207a65a3770a0362de20803ad0c2970e24a485c6 100644 --- a/doc/nix-local-build.rst +++ b/doc/nix-local-build.rst @@ -268,7 +268,7 @@ this folder (the most important two are first): ``cabal sdist --list-only``. Thus if you do not list all your source files in a Cabal file, Cabal may fail to recompile when you edit them. -``config`` (same format as ``cabal.project``) +``config`` (binary) The full project configuration, merged from ``cabal.project`` (and friends) as well as the command line arguments. ``compiler`` (binary) diff --git a/solver-benchmarks/LICENSE b/solver-benchmarks/LICENSE index 0a4969ac8269bd5f0d13cb011040195627a623c0..a3a25c7d9e4d78349b97cb077d9e1337122deacb 100644 --- a/solver-benchmarks/LICENSE +++ b/solver-benchmarks/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2003-2022, Cabal Development Team. +Copyright (c) 2003-2023, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents. diff --git a/solver-benchmarks/solver-benchmarks.cabal b/solver-benchmarks/solver-benchmarks.cabal index a1c974a6cb832bddcad04bfbff5c983fef14a808..26517503b76fe1e6d271eb32e028d9d5f9f657c9 100644 --- a/solver-benchmarks/solver-benchmarks.cabal +++ b/solver-benchmarks/solver-benchmarks.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: solver-benchmarks version: 3 -copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +copyright: 2003-2023, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org>