From 25f9453457685e71523c93c71c7a277d9954d8be Mon Sep 17 00:00:00 2001 From: Francesco Ariis Date: Thu, 18 Apr 2024 10:58:53 +0200 Subject: [PATCH 1/2] Update changelog for 3.12 (and for future WIP 3.12.1.0 cabal-install) --- release-notes/Cabal-3.12.0.0.md | 10 ++++ release-notes/WIP-cabal-install-3.12.x.0.md | 54 ++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/release-notes/Cabal-3.12.0.0.md b/release-notes/Cabal-3.12.0.0.md index 6912d946a76..056dc9588fe 100644 --- a/release-notes/Cabal-3.12.0.0.md +++ b/release-notes/Cabal-3.12.0.0.md @@ -55,6 +55,12 @@ Cabal and Cabal-syntax 3.12.0.0 changelog and release notes `filterPackageChecksById`, this can be used by third-party tools to filter warnings. +- Add support for `GHC2024` [#9736](https://github.com/haskell/cabal/issues/9736) + + Support for the `GHC2024` language edition, introduced by GHC 9.10, has been + added. It can now be used in the `default-language` and `other-languages` + fields, and will be offered as an option by `cabal init`. + ### Other changes - `cabal init` should not suggest Cabal < 2.0 [#8680](https://github.com/haskell/cabal/issues/8680) @@ -246,3 +252,7 @@ Cabal and Cabal-syntax 3.12.0.0 changelog and release notes - Add support for 64-bit LoongArch architecture [#9215](https://github.com/haskell/cabal/pull/9215) - Add support for 64-bit SPARC as a separate architecture [#9445](https://github.com/haskell/cabal/pull/9445) +- Update SPDX License List to version `3.23 2024-02-08` [#9818](https://github.com/haskell/cabal/pull/9818) + + - LicenseId and LicenseExceptionId now conform to SPDX License List + version 3.23 2024-02-08. diff --git a/release-notes/WIP-cabal-install-3.12.x.0.md b/release-notes/WIP-cabal-install-3.12.x.0.md index 2f48dcfffa8..b3fb01900a4 100644 --- a/release-notes/WIP-cabal-install-3.12.x.0.md +++ b/release-notes/WIP-cabal-install-3.12.x.0.md @@ -32,6 +32,29 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes a flag which specifies which libraries should be included in the coverage report for some testsuite. +- Redesign 'cabal path' command to account for projects [#9673](https://github.com/haskell/cabal/pull/9673) + + Previously, `cabal path` was only able to query from the global configuration file, e.g., `~/.cabal/config` or the XDG equivalent. + We take the foundations and enhance `cabal path` to take project configuration, such as `cabal.project`, into account. + + Additionally, we add support for multiple output formats, such as key-value pairs and json. + + The key-value pair output prints a line for each queried key and its respective value: + + key1: value2 + key2: value2 + + If only a single key is queried, we print only the value, for example: + + value1 + + The json output format is versioned by the cabal-install version, which is part of the json object. + Thus, all result objects contain at least the key "cabal-install-version". + + We expand the `cabal path` to also produce information of the compiler that is going to be used in a `cabal build` or `cabal repl` invocation. + To do that, we re-configure the compiler program, and outputs the location, version and compiler flavour. + This is helpful for downstream tools, such as HLS, to figure out the GHC version required to compile a project with, without dependency solving. + ### Other changes - Script cache dir is the base16 hash of the canonical path of the script. [#9459](https://github.com/haskell/cabal/pull/9459) @@ -231,5 +254,34 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes - pandoc-2.19.1, pandoc-2.19, pandoc-2.18, pandoc-2.17.1.1, pandoc-2.17.1, + [__0] rejecting: pandoc; 3.1.8, 3.1.7, 3.1.6.2, 3.1.6.1, 3.1.6, 3.1.5, 3.1.4, + 3.1.3, 3.1.2, 3.1.1, 3.1, 3.0.1, 3.0, 2.19.2, 2.19.1, 2.19, 2.18, 2.17.1.1, -``` + ``` + +- Show provenance of project constraints [#9562](https://github.com/haskell/cabal/issues/9562) [#9578](https://github.com/haskell/cabal/pull/9578) + + Show imports when the solver rejects a package version due to a project + constraint. Even though imports are relative to their parent when imported, + their paths are shown relative to the directory of the project in the solver + output. + + ``` + $ cabal build all --dry-run + ... + [__1] next goal: hashable + [__1] rejecting: hashable-1.4.3.0 + (constraint from cabal.project requires ==1.4.2.0) + [__1] rejecting: hashable-1.4.2.0 + (constraint from project-stackage/nightly-2023-12-07.config requires ==1.4.3.0) + imported by: cabal.project + ``` + + Fixes some test failures detecting cycles in imports, when; + + - the wrong import was reported as starting the cycle + - a cycle was reported that wasn't actually a cycle + +- Adjust BSD-2-Clause and BSD-3-Clause licence text [#9812](https://github.com/haskell/cabal/issues/9812) [#9813](https://github.com/haskell/cabal/pull/9813) + + This change matters to BSD-2-Clause and BSD-3-Clause licences. For these two + licences, `cabal init` created a licence file that slightly differed from + wording published at SPDX. This has been rectified. From e6edd794db5ee6952fe746f63f36499369df6a18 Mon Sep 17 00:00:00 2001 From: Francesco Ariis Date: Thu, 18 Apr 2024 10:58:28 +0200 Subject: [PATCH 2/2] Remove changelog.d files --- changelog.d/issue-9578 | 26 -------------------------- changelog.d/issue-9736 | 11 ----------- changelog.d/pr-9583 | 28 ---------------------------- changelog.d/pr-9813 | 12 ------------ changelog.d/pr-spdx | 10 ---------- 5 files changed, 87 deletions(-) delete mode 100644 changelog.d/issue-9578 delete mode 100644 changelog.d/issue-9736 delete mode 100644 changelog.d/pr-9583 delete mode 100644 changelog.d/pr-9813 delete mode 100644 changelog.d/pr-spdx diff --git a/changelog.d/issue-9578 b/changelog.d/issue-9578 deleted file mode 100644 index 63913b7f675..00000000000 --- a/changelog.d/issue-9578 +++ /dev/null @@ -1,26 +0,0 @@ -synopsis: Show provenance of project constraints -description: - Show imports when the solver rejects a package version due to a project - constraint. Even though imports are relative to their parent when imported, - their paths are shown relative to the directory of the project in the solver - output. - - ``` - $ cabal build all --dry-run - ... - [__1] next goal: hashable - [__1] rejecting: hashable-1.4.3.0 - (constraint from cabal.project requires ==1.4.2.0) - [__1] rejecting: hashable-1.4.2.0 - (constraint from project-stackage/nightly-2023-12-07.config requires ==1.4.3.0) - imported by: cabal.project - ``` - - Fixes some test failures detecting cycles in imports, when; - - - the wrong import was reported as starting the cycle - - a cycle was reported that wasn't actually a cycle - -packages: cabal-install-solver cabal-install -prs: #9578 -issues: #9562 diff --git a/changelog.d/issue-9736 b/changelog.d/issue-9736 deleted file mode 100644 index e5b91b49404..00000000000 --- a/changelog.d/issue-9736 +++ /dev/null @@ -1,11 +0,0 @@ -synopsis: Add support for `GHC2024` -packages: Cabal cabal-install -issues: #9736 - -description: { - -Support for the `GHC2024` language edition, introduced by GHC 9.10, has been -added. It can now be used in the `default-language` and `other-languages` -fields, and will be offered as an option by `cabal init`. - -} diff --git a/changelog.d/pr-9583 b/changelog.d/pr-9583 deleted file mode 100644 index 1b9f1caaf33..00000000000 --- a/changelog.d/pr-9583 +++ /dev/null @@ -1,28 +0,0 @@ -synopsis: Redesign 'cabal path' command to account for projects -packages: cabal-install -prs: #9673 - -description: { - -Previously, `cabal path` was only able to query from the global configuration file, e.g., `~/.cabal/config` or the XDG equivalent. -We take the foundations and enhance `cabal path` to take project configuration, such as `cabal.project`, into account. - -Additionally, we add support for multiple output formats, such as key-value pairs and json. - -The key-value pair output prints a line for each queried key and its respective value: - - key1: value2 - key2: value2 - -If only a single key is queried, we print only the value, for example: - - value1 - -The json output format is versioned by the cabal-install version, which is part of the json object. -Thus, all result objects contain at least the key "cabal-install-version". - -We expand the `cabal path` to also produce information of the compiler that is going to be used in a `cabal build` or `cabal repl` invocation. -To do that, we re-configure the compiler program, and outputs the location, version and compiler flavour. -This is helpful for downstream tools, such as HLS, to figure out the GHC version required to compile a project with, without dependency solving. - -} diff --git a/changelog.d/pr-9813 b/changelog.d/pr-9813 deleted file mode 100644 index fc6195ac6e5..00000000000 --- a/changelog.d/pr-9813 +++ /dev/null @@ -1,12 +0,0 @@ -synopsis: Adjust BSD-2-Clause and BSD-3-Clause licence text -packages: cabal-install -prs: #9813 -issues: #9812 - -description: { - -This change matters to BSD-2-Clause and BSD-3-Clause licences. For these two -licences, `cabal init` created a licence file that slightly differed from -wording published at SPDX. This has been rectified. - -} diff --git a/changelog.d/pr-spdx b/changelog.d/pr-spdx deleted file mode 100644 index e2cbdef9373..00000000000 --- a/changelog.d/pr-spdx +++ /dev/null @@ -1,10 +0,0 @@ -synopsis: Update SPDX License List to version `3.23 2024-02-08` -packages: Cabal-syntax -prs: #9818 - -description: { - -- LicenseId and LicenseExceptionId now conform to SPDX License List - version 3.23 2024-02-08. - -}