diff --git a/Cabal/ChangeLog.md b/Cabal/ChangeLog.md index 2797caf4872..573337d81da 100644 --- a/Cabal/ChangeLog.md +++ b/Cabal/ChangeLog.md @@ -1,3 +1,6 @@ +# 3.10.1.0 [Mikolaj Konarski](mailto:mikolaj@well-typed.com) March 2023 +* See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.10.1.0.md + # 3.8.1.0 [Mikolaj Konarski](mailto:mikolaj@well-typed.com) August 2022 * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.8.1.0.md diff --git a/cabal-install/changelog b/cabal-install/changelog index dc75160a186..063241f57c2 100644 --- a/cabal-install/changelog +++ b/cabal-install/changelog @@ -1,5 +1,8 @@ -*-change-log-*- +3.10.1.0 Mikolaj Konarski March 2023 + * See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.10.1.0.md + 3.8.1.0 Mikolaj Konarski August 2022 * See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.8.1.0.md diff --git a/changelog.d/issue-1954 b/changelog.d/issue-1954 deleted file mode 100644 index 49650160579..00000000000 --- a/changelog.d/issue-1954 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Add `cabal get --only-package-description` -packages: cabal-install -prs: #1977 #5162 #8263 -issues: #1954 diff --git a/changelog.d/issue-4255 b/changelog.d/issue-4255 deleted file mode 100644 index b1a5f199660..00000000000 --- a/changelog.d/issue-4255 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Avoid spurious warnings from -with-rtsopts -packages: Cabal -issues: #4255 -prs: #8183 diff --git a/changelog.d/issue-4994 b/changelog.d/issue-4994 deleted file mode 100644 index e5b829599d3..00000000000 --- a/changelog.d/issue-4994 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Do not print "up to date" for commands unless running "cabal build" -packages: Cabal -issues: #4994 -prs: #8569 diff --git a/changelog.d/issue-7462 b/changelog.d/issue-7462 deleted file mode 100644 index e12d63d793f..00000000000 --- a/changelog.d/issue-7462 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: `cabal haddock` now implies `--enable-documentation` -packages: cabal-install -issues: #7462 -prs: #8259 diff --git a/changelog.d/issue-8189 b/changelog.d/issue-8189 deleted file mode 100644 index 0d7372e2db7..00000000000 --- a/changelog.d/issue-8189 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Pretty-print run targets on failure -packages: cabal-install -prs: #8234 -issues: #8189 - -description: { - -- Targets of the `run` command are pretty-printed when failing due to multiple targets. -- Duplicate targets are removed in the output. - -} \ No newline at end of file diff --git a/changelog.d/issue-8351 b/changelog.d/issue-8351 deleted file mode 100644 index 59101a589fc..00000000000 --- a/changelog.d/issue-8351 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Expose BuildFlags and ClientHaddockFlags -packages: cabal-install -prs: #8353 -issues: #8351 - -description: { - -Some types are present in public functions in cabal-install, but they are not exported. -This PR fix it for BuildFlags and ClientHaddockFlags. - -} \ No newline at end of file diff --git a/changelog.d/issue-8405 b/changelog.d/issue-8405 deleted file mode 100644 index 5ed2759fec9..00000000000 --- a/changelog.d/issue-8405 +++ /dev/null @@ -1,14 +0,0 @@ -synopsis: `cabal man` handles $PAGER containing arguments now -packages: cabal-install -prs: #8353 -issues: #8405 - -description: { - -Things like `PAGER="less -FX" cabal man` work now. - -There's a slight change in the default behavior. We still use `less -R` as the default, -but if the user passes `PAGER=less`, we won't add -R to that, unlike before. This is -reasonable, as the user should be able to set the variable as they see fit. - -} diff --git a/changelog.d/issue-8452 b/changelog.d/issue-8452 deleted file mode 100644 index 4cc4baa39e4..00000000000 --- a/changelog.d/issue-8452 +++ /dev/null @@ -1,8 +0,0 @@ -synopsis: Fix issue with "nix" config option -packages: cabal-install -prs: #8522 -issues: #8452 - -description: { - Nix option in config file was broken with #8054, this should fix it. -} \ No newline at end of file diff --git a/changelog.d/issue-8487 b/changelog.d/issue-8487 deleted file mode 100644 index 432c74d81d6..00000000000 --- a/changelog.d/issue-8487 +++ /dev/null @@ -1,12 +0,0 @@ -synopsis: "Build profile" message now reflects optimization level set in global config -packages: cabal-install -prs: #8488 -issues: #8487 - -description: { - -Imagine you have `optimization: 2` in your `~/.cabal/config`, and you call `cabal build` -in a project that doesn't have optimization level explicitly set in its project file. -You will still see 'Build profile: -w ghc- -O1'. This is incorrect and was fixed -in this patch: now you'll see '-O2'. -} diff --git a/changelog.d/issue-8489 b/changelog.d/issue-8489 deleted file mode 100644 index 32f4c25ff8d..00000000000 --- a/changelog.d/issue-8489 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: `ghc`, `ghc-boot`, `ghci` packages should be non-upgradable -packages: cabal-install -prs: #8501 -issues: #8489 - -description: { - -- Changed both `Distribution.Client.Dependency`'s `dontUpgradeNonUpgradeablePackages` - and `Distribution.Solver.Modular.Solver`'s `nonInstallable` to be in sync. - -} \ No newline at end of file diff --git a/changelog.d/issue-8564 b/changelog.d/issue-8564 deleted file mode 100644 index b6882027f06..00000000000 --- a/changelog.d/issue-8564 +++ /dev/null @@ -1,5 +0,0 @@ -synopsis: The `configure` script of `build-type: configure` packages now has access to the flag assignment of the package being built via the `CABAL_FLAGS` and `CABAL_FLAG_` environment variables -packages: Cabal -prs: #8565 -issues: #8564 - diff --git a/changelog.d/issue-8637 b/changelog.d/issue-8637 deleted file mode 100644 index b584e187761..00000000000 --- a/changelog.d/issue-8637 +++ /dev/null @@ -1,13 +0,0 @@ -synopsis: Apply command line flags to install packages -packages: cabal-install -prs: #8779 -issues: #8637 - -description: { - -- Command line flags usually only apply to "local" packages (packages specified - in the cabal.project). This change causes the v2-install command to ignore - that distinction to better match the expected behavior for packages specified - directly in the command. - -} diff --git a/changelog.d/issue-8646 b/changelog.d/issue-8646 deleted file mode 100644 index 6025a712a70..00000000000 --- a/changelog.d/issue-8646 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Remove "'-main-is' is not portable" check -packages: Cabal -prs: #8651 -issues: #8646 - -description: { - -'cabal check' no longer complains about '-main-is' flag in 'ghc-options' - -} diff --git a/changelog.d/issue-8680 b/changelog.d/issue-8680 index e0b516af124..3c3604b2ca2 100644 --- a/changelog.d/issue-8680 +++ b/changelog.d/issue-8680 @@ -1,4 +1,4 @@ -synopsis: cabal init should not suggest Cabal < 2.0 +synopsis: `cabal init` should not suggest Cabal < 2.0 packages: Cabal issues: #8680 diff --git a/changelog.d/issue-8757 b/changelog.d/issue-8757 index 5b8512c5763..82a71c0f935 100644 --- a/changelog.d/issue-8757 +++ b/changelog.d/issue-8757 @@ -1,4 +1,4 @@ -synopsis: cabal init: suggest BSD-3 as default license +synopsis: `cabal init`: suggest BSD-3 as default license packages: cabal-install prs: #8764 issues: #8757 diff --git a/changelog.d/pr-7386 b/changelog.d/pr-7386 deleted file mode 100644 index 36c81b21e65..00000000000 --- a/changelog.d/pr-7386 +++ /dev/null @@ -1,32 +0,0 @@ -synopsis: Switch to using XDG directories -prs: #7386 -issues: #680 -significance: significant - -description: { - -Cabal/cabal-install now uses the XDG Base Directory Specification to -store configuration, caches, and the store. Specifically, -`$XDG_CONFIG_HOME/cabal` stores the configuration file, -`$XDG_CACHE_HOME/cabal` stores downloaded packages and similar, and -`$XDG_STATE_HOME/cabal` mainly contains the store of compiled -packages. Further, `cabal install will put executables in -`~/.local/bin` by default. - -The `dist`/`dist-newstyle` directories are not affected. - -On Windows, these XDG paths are mapped to other (hopefully) -appropriate locations. See the Cabal User Guide for information. - -If the `CABAL_DIR` environment variable is set, the indicated -directory will be used to store all Cabal-related files, as in -previous versions. - -Backwards compatibility: If `~/.cabal` already exists, this will be -interpreted as `CABAL_DIR=~/.cabal`. This means that upgrading on an -existing system already using cabal-install should not cause any -change in behaviour. An existing system can be migrated by deleting -`~/.cabal` (possibly copying `~/.cabal/config` to -`~/.config/cabal/config` first). - -} diff --git a/changelog.d/pr-7794 b/changelog.d/pr-7794 deleted file mode 100644 index 744707b1255..00000000000 --- a/changelog.d/pr-7794 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Include extra-lib-dirs-static into PackageHash -packages: cabal-install -prs: #7794 -issues: #6935 \ No newline at end of file diff --git a/changelog.d/pr-8130 b/changelog.d/pr-8130 index a89dfb8ea48..70acb4eb52b 100644 --- a/changelog.d/pr-8130 +++ b/changelog.d/pr-8130 @@ -1,4 +1,4 @@ -synopsis: Split up Distribution.Simple.Setup +synopsis: Split up `Distribution.Simple.Setup` packages: Cabal prs: #8130 diff --git a/changelog.d/pr-8162 b/changelog.d/pr-8162 deleted file mode 100644 index de63109cb99..00000000000 --- a/changelog.d/pr-8162 +++ /dev/null @@ -1,17 +0,0 @@ -synopsis: Added haddock-project command -packages: cabal-install -prs: #8162 -issues: #7669 -description: { - -The `haddock-project` command can be used to build documentation of multiple -packages. By passing `--local` option the directory will be self contained, -by passing `--hackage` links to dependencies will link to `hackage`. Both -`--local` and `--hackage` options imply `--quickfix`, `--gen-index`, -`--gen-contents`, and `--hyperlinked-source`. - -Building self contained directory is the default, unless `--hackage` or -`--html-location`. - -The PR #8162 also fixes the `--with-haddock` option. -} diff --git a/changelog.d/pr-8220 b/changelog.d/pr-8220 deleted file mode 100644 index 4df5b0ca56c..00000000000 --- a/changelog.d/pr-8220 +++ /dev/null @@ -1,12 +0,0 @@ -synopsis: Fix generation of Path_ modules with relocatable -packages: Cabal -prs: #8220 -issues: #8219 -description: { - -The generation of the functions `minusFileName` and `splitFileName` -are now in the same conditional block as their call, -preventing generation of inconsistent Paths_ files -where those functions are used but not defined. - -} diff --git a/changelog.d/pr-8237 b/changelog.d/pr-8237 deleted file mode 100644 index e4e6f4fae66..00000000000 --- a/changelog.d/pr-8237 +++ /dev/null @@ -1,3 +0,0 @@ -synopsis: Document `cabal check` in the user guide -packages: cabal-install -prs: #8237 diff --git a/changelog.d/pr-8240 b/changelog.d/pr-8240 deleted file mode 100644 index 51722217aea..00000000000 --- a/changelog.d/pr-8240 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Print a warning when assertions are enabled -packages: cabal-install -prs: #8240 -issues: #4377 - -description: { - -- Now cabal-install executable will print a warning if assertions are enabled - -} diff --git a/changelog.d/pr-8261 b/changelog.d/pr-8261 deleted file mode 100644 index 55be68e49a0..00000000000 --- a/changelog.d/pr-8261 +++ /dev/null @@ -1,9 +0,0 @@ -synopsis: Implement --prefer-oldest -packages: cabal-install -prs: #8261 - -description: { - -- Implement `--prefer-oldest` flag for Cabal solver, which tries to find a build plan with the oldest versions possible. This is useful to establish lower bounds. - -} diff --git a/changelog.d/pr-8281 b/changelog.d/pr-8281 deleted file mode 100644 index 9e62a5c9ea6..00000000000 --- a/changelog.d/pr-8281 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Relax language selection parsing in `cabal init` -packages: Cabal-syntax -prs: #8281 -issues: #8278 diff --git a/changelog.d/pr-8309 b/changelog.d/pr-8309 deleted file mode 100644 index cbbd417b8ec..00000000000 --- a/changelog.d/pr-8309 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Add documentation for cabal-install commands: user-config, -report, list, init, fetch, info, upload, get. -prs: #8309 -issues: #8308 #7884 #7978 diff --git a/changelog.d/pr-8311 b/changelog.d/pr-8311 deleted file mode 100644 index 87f72a47a44..00000000000 --- a/changelog.d/pr-8311 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Export pretty printer `ppPackageCheck` from -Distribution.PackageDescription.Check -packages: Cabal -prs: #8311 diff --git a/changelog.d/pr-8339 b/changelog.d/pr-8339 deleted file mode 100644 index 1e602c1e985..00000000000 --- a/changelog.d/pr-8339 +++ /dev/null @@ -1,4 +0,0 @@ -synopsis: Add check for upper bound on any dependency in cabal check -report, list, init, fetch, info, upload, get. -prs: #8339 -issues: #8291 diff --git a/changelog.d/pr-8358 b/changelog.d/pr-8358 deleted file mode 100644 index ef1afa7e3b9..00000000000 --- a/changelog.d/pr-8358 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Update and sdist now only check for compiler when project file has conditionals -packages: cabal-install -prs: #8358 #8627 -issues: #8352 #8550 #8589 - -description: { - -- Cabal update and sdist will not require a ghc in path unless the project has conditionals that require it - -} diff --git a/changelog.d/pr-8368 b/changelog.d/pr-8368 deleted file mode 100644 index cf74efb48d7..00000000000 --- a/changelog.d/pr-8368 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Allow offline bootstrapping of cabal-install -prs: #8368 -packages: cabal-install - -description: { - -- The bootstrap script for cabal-install now supports fetching the sources of the dependencies in a separate step. - One can then copy over the resulting archive and perform offline bootstrapping of cabal-install. - -} \ No newline at end of file diff --git a/changelog.d/pr-8414 b/changelog.d/pr-8414 deleted file mode 100644 index b046cea70e0..00000000000 --- a/changelog.d/pr-8414 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Pass some haddock flags to dependencies -packages: cabal-install -prs: #8414 -issues: #8104 #395 - -description: { - -- Pass "--haddock-hoogle", "--haddock-html", "--haddock-internal", "--haddock-quickjump", "--haddock-hyperlinked-source" - to all the dependencies if they are specified as command line args - -} diff --git a/changelog.d/pr-8432 b/changelog.d/pr-8432 deleted file mode 100644 index 2ac22987260..00000000000 --- a/changelog.d/pr-8432 +++ /dev/null @@ -1,15 +0,0 @@ -synopsis: Remove warning on option -threaded when building libraries -packages: Cabal -prs: #8432 -issues: #8431 #774 - -description: { - -- Accompanied by option `-flink-rts`, option `-threaded` defines the flavour of - the ghc RTS library the built library will be linked against. Note that bare - ghc does not warn when option `-threaded` is used for building a library - either. -- Note that the changes require modification of the regression check for issue - #774 which can be regarded as a proper test for this PR. - -} diff --git a/changelog.d/pr-8441 b/changelog.d/pr-8441 deleted file mode 100644 index 39e8feac2c5..00000000000 --- a/changelog.d/pr-8441 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Add warning about expensive globs -packages: Cabal -prs: #8441 -issues: #5311 -description: { - -- Now cabal check will emit a warning when package uses -recursive globs starting at root of the project - -} diff --git a/changelog.d/pr-8493 b/changelog.d/pr-8493 deleted file mode 100644 index 27344116e27..00000000000 --- a/changelog.d/pr-8493 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Add language extensions DeepSubsumption and TypeData -packages: Cabal-syntax -prs: #8493 -significance: significant - -description: { - -- adds support for the DeepSubsumption language extension (GHC proposal #511) -- adds support for the TypeData language extension (GHC proposal #106) - -} diff --git a/changelog.d/pr-8496 b/changelog.d/pr-8496 deleted file mode 100644 index d35a68d867e..00000000000 --- a/changelog.d/pr-8496 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: build pkgconfig db individually when bulk fails -packages: cabal-install cabal-install-solver -prs: #8496 -issues: #8494 - -description: { - -- When pkg-config fails to get versions for all packages in bulk, falls back to querying one-by-one. - -} diff --git a/changelog.d/pr-8498 b/changelog.d/pr-8498 deleted file mode 100644 index b285ef0210b..00000000000 --- a/changelog.d/pr-8498 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: improve install target handling logic regarding of project files -packages: cabal-install -issues: #8352 #8094 -prs: #8498 - -description: { - -- fixes an issue where cabal install pkg-x.y.z fails unless --ignore-project is given -- fixes an issue where cabal install --ignore-project crashes when project file is present - -} diff --git a/changelog.d/pr-8499 b/changelog.d/pr-8499 deleted file mode 100644 index f909fbf18fd..00000000000 --- a/changelog.d/pr-8499 +++ /dev/null @@ -1,7 +0,0 @@ -synopsis: orders extra stanzas -packages: Cabal -prs: #8499 -issues: #8458 -description: { - Ensure that extra-src-dirs, extra sources, and extra other modules all are added using ordNub rather than incidentally alphabetized. -} diff --git a/changelog.d/pr-8500 b/changelog.d/pr-8500 deleted file mode 100644 index a443764e90f..00000000000 --- a/changelog.d/pr-8500 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Redownload pkgs when source hash verification fails -packages: cabal-install -prs: #8500 -issues: #7541 - -description: { - -- Cabal-install will verify source hashes on cached downloads against the current index, and redownload on mismatch. (Which can occur with e.g. head.hackage) - -} diff --git a/changelog.d/pr-8506 b/changelog.d/pr-8506 deleted file mode 100644 index 445f2320e69..00000000000 --- a/changelog.d/pr-8506 +++ /dev/null @@ -1,7 +0,0 @@ -synopsis: prepend rather than append extra prog path -packages: Cabal -prs: #8506 -issues: #6304 -description: { - Prepends the extra-prog-path to the system path rather than appending, to allow binaries in the extra path to override defaults. -} diff --git a/changelog.d/pr-8510 b/changelog.d/pr-8510 deleted file mode 100644 index 2c29db01ab1..00000000000 --- a/changelog.d/pr-8510 +++ /dev/null @@ -1,8 +0,0 @@ -synopsis: don't send non-extant extra-lib-dirs to ghc -packages: Cabal -prs: #8510 -issues: #6492 - -description: { -If an extra-libs-dir does not exist, it does not get sent to ghc, which can error on windows. -} diff --git a/changelog.d/pr-8528 b/changelog.d/pr-8528 deleted file mode 100644 index d11da20adbe..00000000000 --- a/changelog.d/pr-8528 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Add support for ghc-9.4s -fprof-late flag. -packages: Cabal cabal-install -prs: #8528 - -description: { - -- This adds the new late-toplevel profiling-detail option which enables `-fprof-late` based automatic cost centre annotations for ghcs which support it. - -} - - diff --git a/changelog.d/pr-8534 b/changelog.d/pr-8534 deleted file mode 100644 index 2e654063ca6..00000000000 --- a/changelog.d/pr-8534 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Add PackageInfo_ module -packages: Cabal -prs: #8534 -significance: significant - -description: { - -- Add PackageInfo_ module to embed portable package-related informations (issue #3909) - -} diff --git a/changelog.d/pr-8556 b/changelog.d/pr-8556 deleted file mode 100644 index bb4e7894427..00000000000 --- a/changelog.d/pr-8556 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Add installDirs (datadir, etc) to v2-build and remove them from v2-install -packages: cabal-install -prs: #8556 -significance: significant - -description: { - -- Passes through --prefix --datadir and other installdir arguments properly in v2-build, allowing its use in perparing somewhat more relocatable compilation targets (no worse than v1-build). -- Removes these flags (which never worked) from v2-install - -} diff --git a/changelog.d/pr-8561 b/changelog.d/pr-8561 deleted file mode 100644 index f860867228c..00000000000 --- a/changelog.d/pr-8561 +++ /dev/null @@ -1,9 +0,0 @@ -synopsis: cabal init -i should sanitize package name guessed from the directory name -packages: cabal-install -prs: #8561 -issues: #8404 -description: { - If the current directory name has any non-alphanumeric symbol in its name, the symbol will be replaced with a dash. Also, will make sure that the resulting package name starts with a letter. - - This worked for cabal init -n already, and this PR only moves code around so that cabal init -i also benefits from this logic. -} diff --git a/changelog.d/pr-8582 b/changelog.d/pr-8582 deleted file mode 100644 index 01889700ea9..00000000000 --- a/changelog.d/pr-8582 +++ /dev/null @@ -1,8 +0,0 @@ -synopsis: Improve mutually recursive unit identifier error message -packages: Cabal -prs: #8582 -description: { -Improves the error message in case of mutually recursive unit identifiers -by specifying the name of the identifier, the name of the signature, and a suggestion -to check the 'build-depends:' section. -} diff --git a/changelog.d/pr-8607 b/changelog.d/pr-8607 deleted file mode 100644 index 8490646121f..00000000000 --- a/changelog.d/pr-8607 +++ /dev/null @@ -1,13 +0,0 @@ -synopsis: No global packages auto written to env files, allow --force-reinstalls -packages: cabal-install -issues: #6165 #5559 -prs: #8607 -significance: significant - -description: { - -- When v2-install runs on a library, it does not pin global packages in the env file, only those directly necessary for the library. - --- Further, it now fails if there is a reinstall in the plan, and suggests the --force-reinstalls flag, which also now works, cleaning out previous entries from the env file for any target which is reinstalled. - -} diff --git a/changelog.d/pr-8633 b/changelog.d/pr-8633 deleted file mode 100644 index 2aafda9a837..00000000000 --- a/changelog.d/pr-8633 +++ /dev/null @@ -1,7 +0,0 @@ -synopsis: Specify default exe extension on wasm32 to be .wasm -packages: Cabal -prs: #8633 -issues: -description: { - Specify default exe extension on wasm32 to be .wasm, following the convention in other WebAssembly toolchains. -} diff --git a/changelog.d/pr-8636 b/changelog.d/pr-8636 deleted file mode 100644 index 863104601e1..00000000000 --- a/changelog.d/pr-8636 +++ /dev/null @@ -1,8 +0,0 @@ -synopsis: Support `js-sources` with GHC, not only with GHCJS -prs: #8636 -description: { - -- Take into account js-sources when building library components with GHC -- Missing support for js-sources in executable components is tracked in #8639 - -} diff --git a/changelog.d/pr-8640 b/changelog.d/pr-8640 deleted file mode 100644 index 2ea80c8dc32..00000000000 --- a/changelog.d/pr-8640 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Fix extra-source-file rebuild tracking when run in a multi-package project -packages: cabal-install -issues: #8632 #8634 -prs: #8640 - -description: { - -- Fixes an issue where glob expansion of extra-source-files for rebuild tracking purposes was not occuring correctly when run in a multi-package setting (i.e. when the globs needed to be expanded relative to something other than "."). - -} diff --git a/changelog.d/pr-8647 b/changelog.d/pr-8647 deleted file mode 100644 index 341e492b7f0..00000000000 --- a/changelog.d/pr-8647 +++ /dev/null @@ -1,13 +0,0 @@ -synopsis: No up-front warning that assertions are on for special commands (help, version, numeric-version) -packages: cabal-install -prs: #8647 -issues: #8645 - -description: { - -- When compiled with ghc option `-fno-ignore-assert`, `cabal-install` will issue a generic warning that assertions are on. - This warning will no longer be emitted for special modes of operation like `cabal --numeric-version`, `--version` and help, - and also not if `cabal` could not parse its command line. - Further, the warning now goes to `stderr` rather than `stdout`. - -} diff --git a/changelog.d/pr-8648 b/changelog.d/pr-8648 deleted file mode 100644 index 7a4e47931e8..00000000000 --- a/changelog.d/pr-8648 +++ /dev/null @@ -1,12 +0,0 @@ -synopsis: Tiny refactor of how Cabal handles configure scripts -packages: Cabal -prs: #8648 - -description: { -None of this is visible downstream - -- Remove needless parameter on one private function. - -- Move another internal function (and ones that only it uses from the same module) to new private module. - -} diff --git a/changelog.d/pr-8657 b/changelog.d/pr-8657 deleted file mode 100644 index 752d79ca135..00000000000 --- a/changelog.d/pr-8657 +++ /dev/null @@ -1,13 +0,0 @@ -synopsis: Warn if expected files are omitted from extra-doc-files -packages: Cabal -prs: #8657 -issues: #3964 - -description: { - -- Emit a warning if there exist a “changelog” file at the root of the - package which is not included in any field. -- Emit a warning if a “changelog” file at the root of the package is included - in a field different from “extra-doc-files” (Cabal spec >= 1.18) or - “extra-source-files” (spec < 1.18). -} \ No newline at end of file diff --git a/changelog.d/pr-8663 b/changelog.d/pr-8663 deleted file mode 100644 index f70b312fb2b..00000000000 --- a/changelog.d/pr-8663 +++ /dev/null @@ -1,19 +0,0 @@ -synopsis: Fix and improve list parser of cabal init cli -packages: cabal-install -prs: #8663 -issues: #8659 - -description: { -Occurrences of 'Flag [a]' seem to behave in an unexpected way. The monoid -instance of 'Flag' is right associative and discard the value on the -left, but we want to merge the contents of 'Flag'. - -Permits: -- cabal init -d base -d vector -d containers - -Fixes for all Flag '[a]' the cli parser in cabal init. Adds cli parser tests. - -Adds the feature to specify a comma-separated list of dependencies: -- cabal init -d base,vector,containers - -} diff --git a/changelog.d/pr-8686 b/changelog.d/pr-8686 deleted file mode 100644 index 4db79be2d6b..00000000000 --- a/changelog.d/pr-8686 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Fix resolution of imports by relative paths in cabal.project -packages: cabal-install -prs: #8686 - -description: { - -Fix bug where cabal tries to resolve imports by relative paths against -the directory cabal executable was invoked in rather than directory of -cabal.project file that does the import. - -} diff --git a/changelog.d/pr-8732 b/changelog.d/pr-8732 deleted file mode 100644 index 2417885d15b..00000000000 --- a/changelog.d/pr-8732 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Fix repl discarding --build-depends -packages: cabal-install -prs: #8732 -issues: #6859 #7081 - -description: { - -- Fix `repl` command discarding `--build-depends` argument when using - `allow-newer` or `allow-older`. -} \ No newline at end of file diff --git a/changelog.d/pr-8794 b/changelog.d/pr-8794 deleted file mode 100644 index 10babd5d420..00000000000 --- a/changelog.d/pr-8794 +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Disallow GHC <8.0 for -packages: Cabal Cabal-syntax cabal-install-solver -prs: #8794 -issues: #8715 #7531 - -description: { - -Disallow GHC <8.0 by restricting the version of base that can be used to at least 4.9 - -} diff --git a/release-notes/Cabal-3.10.1.0.md b/release-notes/Cabal-3.10.1.0.md new file mode 100644 index 00000000000..02824484dae --- /dev/null +++ b/release-notes/Cabal-3.10.1.0.md @@ -0,0 +1,145 @@ +Cabal and Cabal-syntax 3.10.1.0 changelog and release notes +--- + +Release 3.10.1.0 of cabal now sets the `--enable-documentation` option by default +when running `cabal haddock` (https://github.com/haskell/cabal/issues/7462). +If the new default does not fit your workflow, pass an explicit `--disable-documentation` +option or consider (helping to implement) the other workarounds proposed +in https://github.com/haskell/cabal/issues/8725. + +This version of cabal introduces support for JS cross-compilation (https://github.com/haskell/cabal/pull/8636). +We've seen related Windows segfaults on CI, so please kindly report if you can reproduce either +cabal or GHC segfaults when cross-compiling for JS or compiling normally but with any files +listed in the `js-sources` field of a .cabal file. + +This release of cabal also fixes a lot of bugs in cabal 3.8.1.0 and not all of the fixes +are listed here. + + +### Significant changes + +- Add support for the XDG Base Directory Specification [#680](https://github.com/haskell/cabal/issues/680) [#7386](https://github.com/haskell/cabal/pull/7386) + + Cabal/cabal-install now uses the XDG Base Directory Specification to + store configuration, caches, and the store. Specifically, + `$XDG_CONFIG_HOME/cabal` stores the configuration file, + `$XDG_CACHE_HOME/cabal` stores downloaded packages and similar, and + `$XDG_STATE_HOME/cabal` mainly contains the store of compiled + packages. Further, `cabal install` will put executables in + `~/.local/bin` by default. + + The `dist`/`dist-newstyle` directories are not affected. + + On Windows, these XDG paths are mapped to other (hopefully) + appropriate locations. See the Cabal User Guide for information. + + If the `CABAL_DIR` environment variable is set, the indicated + directory will be used to store all Cabal-related files, as in + previous versions. + + **Backwards compatibility**: If `~/.cabal` already exists, this will be + interpreted as `CABAL_DIR=~/.cabal`. This means that upgrading on an + existing system already using cabal-install should not cause any + change in behaviour. An existing system can be migrated by deleting + `~/.cabal` (possibly copying `~/.cabal/config` to + `~/.config/cabal/config` first). + +- Add `PackageInfo_` module [#8534](https://github.com/haskell/cabal/pull/8534) + + - Add `PackageInfo_` module to embed portable package-related informations (issue #3909) + +- *Cabal-syntax* Add language extensions `DeepSubsumption` and `TypeData` [#8493](https://github.com/haskell/cabal/pull/8493) + + - adds support for the `DeepSubsumption` language extension ([GHC proposal #511](https://github.com/ghc-proposals/ghc-proposals/pull/511)) + - adds support for the `TypeData` language extension ([GHC proposal #106](https://github.com/ghc-proposals/ghc-proposals/pull/106)) + +- Add support for GHC 9.4+ `-fprof-late` flag. [#8528](https://github.com/haskell/cabal/pull/8528) + +- This adds the new `late-toplevel` (and its alias `late`) profiling-detail option which enables `-fprof-late`-based automatic cost centre annotations for GHCs that support it ([earliest is GHC 9.4.1](https://downloads.haskell.org/ghc/9.4.1/docs/users_guide/profiling.html#ghc-flag--fprof-late)). + + +### Other changes + +- Remove "'-main-is' is not portable" check [#8646](https://github.com/haskell/cabal/issues/8646) [#8651](https://github.com/haskell/cabal/pull/8651) + + `cabal check` no longer complains about `-main-is` flag in `ghc-options` + +- Fix generation of Path_ modules with relocatable [#8219](https://github.com/haskell/cabal/issues/8219) [#8220](https://github.com/haskell/cabal/pull/8220) + + The generation of the functions `minusFileName` and `splitFileName` + are now in the same conditional block as their call, + preventing generation of inconsistent Paths_ files + where those functions are used but not defined. + +- Remove warning on option -threaded when building libraries [#774](https://github.com/haskell/cabal/issues/774) [#8431](https://github.com/haskell/cabal/issues/8431) [#8432](https://github.com/haskell/cabal/pull/8432) + + - Accompanied by option `-flink-rts`, option `-threaded` defines the flavour of + the ghc RTS library the built library will be linked against. Note that bare + ghc does not warn when option `-threaded` is used for building a library + either. + - Note that the changes require modification of the regression check for issue + #774 which can be regarded as a proper test for this PR. + +- Add warning about expensive globs [#5311](https://github.com/haskell/cabal/issues/5311) [#8441](https://github.com/haskell/cabal/pull/8441) + + - Now cabal check will emit a warning when package uses + recursive globs starting at root of the project + +- Order `extra*` stanzas [#8458](https://github.com/haskell/cabal/issues/8458) [#8499](https://github.com/haskell/cabal/pull/8499) + + Ensure that `extra-src-dirs`, extra sources, and extra other modules all are added using `ordNub` rather than incidentally alphabetized. + +- Prepend rather than append `extra-prog-path` [#6304](https://github.com/haskell/cabal/issues/6304) [#8506](https://github.com/haskell/cabal/pull/8506) + + Prepends the `extra-prog-path` to the system path rather than appending, to allow binaries in the extra path to override defaults. + +- don't send non-extant `extra-lib-dirs` to GHC [#6492](https://github.com/haskell/cabal/issues/6492) [#8510](https://github.com/haskell/cabal/pull/8510) + + If an extra-libs-dir does not exist, it does not get sent to ghc, which can error on windows. + +- Improve mutually recursive unit identifier error message [#8582](https://github.com/haskell/cabal/pull/8582) + + Improves the error message in case of mutually recursive unit identifiers + by specifying the name of the identifier, the name of the signature, and a suggestion + to check the 'build-depends:' section. + +- Specify default exe extension on wasm32 to be .wasm [#8633](https://github.com/haskell/cabal/pull/8633) + + Specify default exe extension on wasm32 to be .wasm, following the convention in other WebAssembly toolchains. + +- Support `js-sources` with GHC, not only with GHCJS [#8636](https://github.com/haskell/cabal/pull/8636) + + - Take into account js-sources when building library components with GHC + - Missing support for js-sources in executable components is tracked in #8639 + +- Tiny refactor of how Cabal handles configure scripts [#8648](https://github.com/haskell/cabal/pull/8648) + + None of this is visible downstream + + - Remove needless parameter on one private function. + + - Move another internal function (and ones that only it uses from the same module) to new private module. + +- Warn if expected files are omitted from extra-doc-files [#3964](https://github.com/haskell/cabal/issues/3964) [#8657](https://github.com/haskell/cabal/pull/8657) + + - Emit a warning if there exist a “changelog” file at the root of the + package which is not included in any field. + - Emit a warning if a “changelog” file at the root of the package is included + in a field different from “extra-doc-files” (Cabal spec >= 1.18) or + “extra-source-files” (spec < 1.18). + +- Disallow GHC <8.0 for [#7531](https://github.com/haskell/cabal/issues/7531) [#8715](https://github.com/haskell/cabal/issues/8715) [#8794](https://github.com/haskell/cabal/pull/8794) + + Disallow GHC <8.0 by restricting the version of base that can be used to at least 4.9 + +- Avoid spurious warnings from -with-rtsopts [#4255](https://github.com/haskell/cabal/issues/4255) [#8183](https://github.com/haskell/cabal/pull/8183) + +- Do not print "up to date" for commands unless running "cabal build" [#4994](https://github.com/haskell/cabal/issues/4994) [#8569](https://github.com/haskell/cabal/pull/8569) + +- The `configure` script of `build-type: configure` packages now has access to the flag assignment of the package being built via the `CABAL_FLAGS` and `CABAL_FLAG_` environment variables [#8564](https://github.com/haskell/cabal/issues/8564) [#8565](https://github.com/haskell/cabal/pull/8565) + +- Export pretty printer `ppPackageCheck` from [#8311](https://github.com/haskell/cabal/pull/8311) + +- Add check for upper bound on any dependency in `cabal check` [#8291](https://github.com/haskell/cabal/issues/8291) [#8339](https://github.com/haskell/cabal/pull/8339) + +- *Cabal-syntax* Relax language selection parsing in `cabal init` [#8278](https://github.com/haskell/cabal/issues/8278) [#8281](https://github.com/haskell/cabal/pull/8281) diff --git a/release-notes/cabal-install-3.10.1.0.md b/release-notes/cabal-install-3.10.1.0.md new file mode 100644 index 00000000000..88cae108891 --- /dev/null +++ b/release-notes/cabal-install-3.10.1.0.md @@ -0,0 +1,213 @@ +cabal-install and cabal-install-solver 3.10.1.0 changelog and release notes +--- + +Release 3.10.1.0 of cabal now sets the `--enable-documentation` option by default +when running `cabal haddock` (https://github.com/haskell/cabal/issues/7462). +If the new default does not fit your workflow, pass an explicit `--disable-documentation` +option or consider (helping to implement) the other workarounds proposed +in https://github.com/haskell/cabal/issues/8725. + +This version of cabal introduces support for JS cross-compilation (https://github.com/haskell/cabal/pull/8636). +We've seen related Windows segfaults on CI, so please kindly report if you can reproduce either +cabal or GHC segfaults when cross-compiling for JS or compiling normally but with any files +listed in the `js-sources` field of a .cabal file. + +This release of cabal also fixes a lot of bugs in cabal 3.8.1.0 and not all of the fixes +are listed here. + + +### Significant changes + +- `Cabal-3.10.1.0` is used, which brings [its own set of changes](./Cabal-3.10.1.0.md), + many of which are significant. The Cabal and Cabal-syntax changes that touch + the cabal-install or cabal-install-solver codebases are pasted here again in full. + +- Add support for the XDG Base Directory Specification [#680](https://github.com/haskell/cabal/issues/680) [#7386](https://github.com/haskell/cabal/pull/7386) + + Cabal/cabal-install now uses the XDG Base Directory Specification to + store configuration, caches, and the store. Specifically, + `$XDG_CONFIG_HOME/cabal` stores the configuration file, + `$XDG_CACHE_HOME/cabal` stores downloaded packages and similar, and + `$XDG_STATE_HOME/cabal` mainly contains the store of compiled + packages. Further, `cabal install` will put executables in + `~/.local/bin` by default. + + The `dist`/`dist-newstyle` directories are not affected. + + On Windows, these XDG paths are mapped to other (hopefully) + appropriate locations. See the Cabal User Guide for information. + + If the `CABAL_DIR` environment variable is set, the indicated + directory will be used to store all Cabal-related files, as in + previous versions. + + **Backwards compatibility**: If `~/.cabal` already exists, this will be + interpreted as `CABAL_DIR=~/.cabal`. This means that upgrading on an + existing system already using cabal-install should not cause any + change in behaviour. An existing system can be migrated by deleting + `~/.cabal` (possibly copying `~/.cabal/config` to + `~/.config/cabal/config` first). + +- Add `installDirs` (`datadir`, etc) to v2-build and remove them from v2-install [#8556](https://github.com/haskell/cabal/pull/8556) + + - Passes through `--prefix`, `--datadir` and other `installdir`-arguments properly in v2-build, allowing its use in preparing somewhat more relocatable compilation targets (no worse than v1-build). + - Removes these flags (which never worked) from v2-install + +- No global packages auto written to environment files, allow `--force-reinstalls` [#5559](https://github.com/haskell/cabal/issues/5559) [#6165](https://github.com/haskell/cabal/issues/6165) [#8607](https://github.com/haskell/cabal/pull/8607) + + - When v2-install runs on a library, it does not pin global packages in the env file, only those directly necessary for the library. + +- Add support for GHC 9.4+ `-fprof-late` flag [#8528](https://github.com/haskell/cabal/pull/8528) + + - This adds the new `late-toplevel` (and its alias `late`) profiling-detail option which enables `-fprof-late`-based automatic cost centre annotations for GHCs that support it ([earliest is GHC 9.4.1](https://downloads.haskell.org/ghc/9.4.1/docs/users_guide/profiling.html#ghc-flag--fprof-late)). + +- Added `haddock-project` command [#7669](https://github.com/haskell/cabal/issues/7669) [#8162](https://github.com/haskell/cabal/pull/8162) + + The `haddock-project` command can be used to build documentation of multiple + packages. By passing `--local` option the directory will be self contained, + by passing `--hackage` links to dependencies will link to `hackage`. Both + `--local` and `--hackage` options imply `--quickfix`, `--gen-index`, + `--gen-contents`, and `--hyperlinked-source`. + + Building self contained directory is the default, unless `--hackage` or + `--html-location`. + + The PR #8162 also fixes the `--with-haddock` option. + + +### Other changes + +- Pretty-print run targets on failure [#8189](https://github.com/haskell/cabal/issues/8189) [#8234](https://github.com/haskell/cabal/pull/8234) + + - Targets of the `run` command are pretty-printed when failing due to multiple targets. + - Duplicate targets are removed in the output. + +- Expose `BuildFlags` and `ClientHaddockFlags` [#8351](https://github.com/haskell/cabal/issues/8351) [#8353](https://github.com/haskell/cabal/pull/8353) + + Some types are present in public functions in cabal-install, but they are not exported. + This PR fix it for BuildFlags and ClientHaddockFlags. + +- `cabal man` handles `$PAGER` containing arguments now [#8405](https://github.com/haskell/cabal/issues/8405) [#8353](https://github.com/haskell/cabal/pull/8353) + + Things like `PAGER="less -FX" cabal man` work now. + + There's a slight change in the default behavior. We still use `less -R` as the default, + but if the user passes `PAGER=less`, we won't add -R to that, unlike before. This is + reasonable, as the user should be able to set the variable as they see fit. + +- Fix issue with "nix" config option [#8452](https://github.com/haskell/cabal/issues/8452) [#8522](https://github.com/haskell/cabal/pull/8522) + + Nix option in config file was broken with [#8054](https://github.com/haskell/cabal/pull/8054), this should fix it. + +- "Build profile" message now reflects optimization level set in global config [#8487](https://github.com/haskell/cabal/issues/8487) [#8488](https://github.com/haskell/cabal/pull/8488) + + Imagine you have `optimization: 2` in your `~/.cabal/config`, and you call `cabal build` + in a project that doesn't have optimization level explicitly set in its project file. + You will still see 'Build profile: -w ghc- -O1'. This is incorrect and was fixed + in this patch: now you'll see '-O2'. + +- `ghc`, `ghc-boot`, `ghci` packages should be non-upgradable [#8489](https://github.com/haskell/cabal/issues/8489) [#8501](https://github.com/haskell/cabal/pull/8501) + + - Changed both `Distribution.Client.Dependency`'s `dontUpgradeNonUpgradeablePackages` + and `Distribution.Solver.Modular.Solver`'s `nonInstallable` to be in sync. + +- Apply command line flags to install packages [#8637](https://github.com/haskell/cabal/issues/8637) [#8779](https://github.com/haskell/cabal/pull/8779) + + - Command line flags usually only apply to "local" packages (packages specified + in the cabal.project). This change causes the v2-install command to ignore + that distinction to better match the expected behavior for packages specified + directly in the command. + +- Print a warning when assertions are enabled [#4377](https://github.com/haskell/cabal/issues/4377) [#8240](https://github.com/haskell/cabal/pull/8240) + + - Now cabal-install executable will print a warning if assertions are enabled + +- Implement `--prefer-oldest` [#8261](https://github.com/haskell/cabal/pull/8261) + + - The new flag makes Cabal solver try to find a build plan with the oldest versions possible. This is useful to establish lower bounds. + +- Update and sdist now only check for compiler when project file has conditionals [#8352](https://github.com/haskell/cabal/issues/8352) [#8550](https://github.com/haskell/cabal/issues/8550) [#8589](https://github.com/haskell/cabal/issues/8589) [#8358](https://github.com/haskell/cabal/pull/8358) [#8627](https://github.com/haskell/cabal/pull/8627) + + - Cabal update and sdist will not require a ghc in path unless the project has conditionals that require it + +- Allow offline bootstrapping of cabal-install [#8368](https://github.com/haskell/cabal/pull/8368) + + - The bootstrap script for cabal-install now supports fetching the sources of the dependencies in a separate step. + One can then copy over the resulting archive and perform offline bootstrapping of cabal-install. + +- Pass some haddock flags to dependencies [#395](https://github.com/haskell/cabal/issues/395) [#8104](https://github.com/haskell/cabal/issues/8104) [#8414](https://github.com/haskell/cabal/pull/8414) + + - Pass `--haddock-hoogle`, `--haddock-html`, `--haddock-internal`, `--haddock-quickjump`, `--haddock-hyperlinked-source` + to all the dependencies if they are specified as command line args + +- build pkgconfig db individually when bulk fails [#8494](https://github.com/haskell/cabal/issues/8494) [#8496](https://github.com/haskell/cabal/pull/8496) + + - When pkg-config fails to get versions for all packages in bulk, falls back to querying one-by-one. + +- improve install target handling logic regarding of project files [#8094](https://github.com/haskell/cabal/issues/8094) [#8352](https://github.com/haskell/cabal/issues/8352) [#8498](https://github.com/haskell/cabal/pull/8498) + + - fixes an issue where `cabal install pkg-x.y.z` fails unless `--ignore-project` is given + - fixes an issue where `cabal install --ignore-project` crashes when a project file is present + +- Redownload packages when source hash verification fails [#7541](https://github.com/haskell/cabal/issues/7541) [#8500](https://github.com/haskell/cabal/pull/8500) + + - Cabal-install will verify source hashes on cached downloads against the current index, and redownload on mismatch. (Which can occur with e.g. head.hackage) + +- `cabal init -i` should sanitize package name guessed from the directory name [#8404](https://github.com/haskell/cabal/issues/8404) [#8561](https://github.com/haskell/cabal/pull/8561) + + If the current directory name has any non-alphanumeric symbols in its name, the symbols will be replaced with a dash. Also, will make sure that the resulting package name starts with a letter. + + This worked for cabal init -n already, and this PR only moves code around so that cabal init -i also benefits from this logic. + +- Support `js-sources` with GHC, not only with GHCJS [#8636](https://github.com/haskell/cabal/pull/8636) + + - Take into account `js-sources` when building library components with GHC + - Missing support for `js-sources` in executable components is tracked in #8639 + +- Fix `extra-source-file` rebuild tracking when run in a multi-package project [#8632](https://github.com/haskell/cabal/issues/8632) [#8634](https://github.com/haskell/cabal/issues/8634) [#8640](https://github.com/haskell/cabal/pull/8640) + + - Fixes an issue where glob expansion of `extra-source-files` for rebuild tracking purposes was not occurring correctly when run in a multi-package setting (i.e. when the globs needed to be expanded relative to something other than "."). + +- No up-front warning that assertions are on for special commands (help, version, numeric-version) [#8645](https://github.com/haskell/cabal/issues/8645) [#8647](https://github.com/haskell/cabal/pull/8647) + + - When compiled with ghc option `-fno-ignore-assert`, `cabal-install` will issue a generic warning that assertions are on. + This warning will no longer be emitted for special modes of operation like `cabal --numeric-version`, `--version` and help, + and also not if `cabal` could not parse its command line. + Further, the warning now goes to `stderr` rather than `stdout`. + +- Fix and improve list parser for `cabal init` arguments [#8659](https://github.com/haskell/cabal/issues/8659) [#8663](https://github.com/haskell/cabal/pull/8663) + + Occurrences of 'Flag [a]' seem to behave in an unexpected way. The monoid + instance of 'Flag' is right associative and discard the value on the + left, but we want to merge the contents of 'Flag'. + + Permits: + - `cabal init -d base -d vector -d containers` + + Fixes for all Flag '[a]' the cli parser in cabal init. Adds cli parser tests. + + Adds the feature to specify a comma-separated list of dependencies: + - `cabal init -d base,vector,containers` + +- Fix resolution of imports by relative paths in cabal.project [#8686](https://github.com/haskell/cabal/pull/8686) + + Fix bug where cabal tries to resolve imports by relative paths against + the directory cabal executable was invoked in rather than directory of + cabal.project file that does the import. + +- Fix `cabal repl` discarding `--build-depends` [#6859](https://github.com/haskell/cabal/issues/6859) [#7081](https://github.com/haskell/cabal/issues/7081) [#8732](https://github.com/haskell/cabal/pull/8732) + + - Fix `repl` command discarding `--build-depends` argument when using + `allow-newer` or `allow-older`. + +- Add `cabal get --only-package-description` [#1954](https://github.com/haskell/cabal/issues/1954) [#1977](https://github.com/haskell/cabal/pull/1977) [#5162](https://github.com/haskell/cabal/pull/5162) [#8263](https://github.com/haskell/cabal/pull/8263) + +- `cabal haddock` now implies `--enable-documentation` [#7462](https://github.com/haskell/cabal/issues/7462) [#8259](https://github.com/haskell/cabal/pull/8259) + +- Include `extra-lib-dirs-static` into `PackageHash` [#6935](https://github.com/haskell/cabal/issues/6935) [#7794](https://github.com/haskell/cabal/pull/7794) + +- Document `cabal check` in the user guide [#8237](https://github.com/haskell/cabal/pull/8237) + +- Add documentation (or stubs) for cabal-install commands: `fetch`, `get`, `info`, `init`, `list`, `report`, `unpack`, `upload`, `user-config` [#7884](https://github.com/haskell/cabal/issues/7884) [#7978](https://github.com/haskell/cabal/issues/7978) [#8308](https://github.com/haskell/cabal/issues/8308) [#8309](https://github.com/haskell/cabal/pull/8309) + +- Add check for upper bound on any dependency in `cabal check` [#8291](https://github.com/haskell/cabal/issues/8291) [#8339](https://github.com/haskell/cabal/pull/8339)