From 740686763303072332d9dd624099d38519725b4c Mon Sep 17 00:00:00 2001 From: Francesco Ariis Date: Thu, 7 Mar 2024 11:57:09 +0100 Subject: [PATCH] Fix formatting Fix formatting for for cabal-install-3.12.0.0 release notes. --- release-notes/cabal-install-3.12.0.0.md | 214 ++++++++++++------------ 1 file changed, 110 insertions(+), 104 deletions(-) diff --git a/release-notes/cabal-install-3.12.0.0.md b/release-notes/cabal-install-3.12.0.0.md index cb223c0aa51..059e1f287d1 100644 --- a/release-notes/cabal-install-3.12.0.0.md +++ b/release-notes/cabal-install-3.12.0.0.md @@ -3,13 +3,13 @@ cabal-install and cabal-install-solver 3.12.0.0 changelog and release notes - Add --project-dir flag [#7695](https://github.com/haskell/cabal/issues/7695) [#7940](https://github.com/haskell/cabal/issues/7940) [#8454](https://github.com/haskell/cabal/pull/8454) -- Added --project-dir flag for specifying the project's root directory -- Deprecated using --project-file with an absolute filepath without also using --project-dir + - Added --project-dir flag for specifying the project's root directory + - Deprecated using --project-file with an absolute filepath without also using --project-dir -- remove[#9151](https://github.com/haskell/cabal/issues/9151) [#9346](https://github.com/haskell/cabal/pull/9346) +- Remove useles "Log" log level [#9151](https://github.com/haskell/cabal/issues/9151) [#9346](https://github.com/haskell/cabal/pull/9346) -- Remove "Log" as a log level in favour of "Info". -- Remove "Show" in Severity and replace by "displaySeverity" function + - Remove "Log" as a log level in favour of "Info". + - Remove "Show" in Severity and replace by "displaySeverity" function - Add `--haddock-output-dir` flag to `cabal haddock`. [#8720](https://github.com/haskell/cabal/issues/8720) [#8788](https://github.com/haskell/cabal/pull/8788) @@ -17,177 +17,183 @@ cabal-install and cabal-install-solver 3.12.0.0 changelog and release notes - Support per-component builds when coverage is enabled [#4798](https://github.com/haskell/cabal/issues/4798) [#5213](https://github.com/haskell/cabal/issues/5213) [#6397](https://github.com/haskell/cabal/issues/6397) [#6440](https://github.com/haskell/cabal/issues/6440) [#9464](https://github.com/haskell/cabal/pull/9464) -Cabal now supports per-component builds when coverage is enabled.This enables -coverage for packages with internal libraries (#6440), and enables coverage for -packages that use backpack (#6397), even though we do not get coverage for -instantiations of an indefinite module (it is not clear what it means for HPC -to support backpack, regardless of Cabal). + Cabal now supports per-component builds when coverage is enabled.This enables + coverage for packages with internal libraries (#6440), and enables coverage for + packages that use backpack (#6397), even though we do not get coverage for + instantiations of an indefinite module (it is not clear what it means for HPC + to support backpack, regardless of Cabal). -To achieve this, hpc information (`.mix` files) from a library is now written -into the package database of a library under `extraCompilationArtifacts`. + To achieve this, hpc information (`.mix` files) from a library is now written + into the package database of a library under `extraCompilationArtifacts`. -Cabal configure (via the Setup interface) now accepts --coverage-for=, -a flag which specifies which libraries should be included in the coverage -report for some testsuite. + Cabal configure (via the Setup interface) now accepts --coverage-for=, + a flag which specifies which libraries should be included in the coverage + report for some testsuite. ### Other changes - Script cache dir is the base16 hash of the canonical path of the script. [#9459](https://github.com/haskell/cabal/pull/9459) -Script cache dir is the base16 hash of the canonical path of the script. + Script cache dir is the base16 hash of the canonical path of the script. - Die if package list is missing [#8944](https://github.com/haskell/cabal/pull/8944) -If a package list is missing, `cabal` will now die and suggest the user to run -`cabal update` instead of continuing into not being able to find packages coming -from the remote package server. + If a package list is missing, `cabal` will now die and suggest the user to run + `cabal update` instead of continuing into not being able to find packages coming + from the remote package server. - Reject index-state younger than cached index file [#8944](https://github.com/haskell/cabal/pull/8944) -Requesting to use an index-state younger than the cached version will now fail, -telling the user to use an index-state older or equal to the cached file, or to -run `cabal update`. + Requesting to use an index-state younger than the cached version will now fail, + telling the user to use an index-state older or equal to the cached file, or to + run `cabal update`. -The warning for a non-existing index-state has been also demoted to appear only -on verbose logging. + The warning for a non-existing index-state has been also demoted to appear only + on verbose logging. - Warn early that overwrite policy is needed [#5993](https://github.com/haskell/cabal/issues/5993) [#9268](https://github.com/haskell/cabal/pull/9268) -Waiting for a long build and then seeing the install fail because a flag was -missing is frustrating.With this change we skip the wait and warn early, -before the build, that an overwrite policy flag would be needed for the -install to succeed. + Waiting for a long build and then seeing the install fail because a flag was + missing is frustrating.With this change we skip the wait and warn early, + before the build, that an overwrite policy flag would be needed for the + install to succeed. - Add support for authentication tokens for uploading to Hackage [#6738](https://github.com/haskell/cabal/issues/6738) [#9058](https://github.com/haskell/cabal/pull/9058) -A new flag `--token` (`-t`) has been created. Token authentication takes -precedence over username and password meaning that, if a token is set, -the username and password flags are ignored. + A new flag `--token` (`-t`) has been created. Token authentication takes + precedence over username and password meaning that, if a token is set, + the username and password flags are ignored. - Make --(test-)show-details=direct the default [#8942](https://github.com/haskell/cabal/pull/8942) -This option leaves it up to the testing framework to decide what and how to print out, -potentially leading to a prettier output. For example, most of the testing frameworks -use colors, which wouldn't be seen with any other option. + This option leaves it up to the testing framework to decide what and how to print out, + potentially leading to a prettier output. For example, most of the testing frameworks + use colors, which wouldn't be seen with any other option. -This comes with a tradeoff, though: Cabal will not create a log file with this option. -If you prefer a log file, consider setting `--test-show-details=streaming` (or something -else) manually. + This comes with a tradeoff, though: Cabal will not create a log file with this option. + If you prefer a log file, consider setting `--test-show-details=streaming` (or something + else) manually. - Make sure Haskell files in explicit source directories take precedence over autogenerated Haskell files [#8689](https://github.com/haskell/cabal/issues/8689) [#8690](https://github.com/haskell/cabal/pull/8690) -- Changed order or directories in GHC invocation so that source -directories explicitly specified in cabal file will be considered -before Cabal’s internal build directory. + - Changed order or directories in GHC invocation so that source + directories explicitly specified in cabal file will be considered + before Cabal’s internal build directory. - Also render short options with arguments [#8785](https://github.com/haskell/cabal/issues/8785) [#9043](https://github.com/haskell/cabal/pull/9043) -Show how arguments are used with both short and long forms of options: + Show how arguments are used with both short and long forms of options: -```diff -<-v, --verbose[=n]Control verbosity (n is 0--3, default ->-v[n], --verbose[=n] Control verbosity (n is 0--3, default -<-w, --with-compiler=PATH give the path to a particular compiler ->-w PATH or -wPATH, --with-compiler=PATH -``` + ```diff + <-v, --verbose[=n]Control verbosity (n is 0--3, default + >-v[n], --verbose[=n] Control verbosity (n is 0--3, default + <-w, --with-compiler=PATH give the path to a particular compiler + >-w PATH or -wPATH, --with-compiler=PATH + ``` - config file: allow more flags in the init section [#8835](https://github.com/haskell/cabal/issues/8835) [#8839](https://github.com/haskell/cabal/pull/8839) -The init section of config file now allows the following fields: + The init section of config file now allows the following fields: - Fix handling of ETag header for remote packages [#9113](https://github.com/haskell/cabal/issues/9113) [#9116](https://github.com/haskell/cabal/pull/9116) -Remote packages will now be cached regardless of the capitalization of the -"ETag" header. Previously remote packages would not be cached if the header -name did not match exactly. Now they will be cached even if the header's -capitalization is different. + Remote packages will now be cached regardless of the capitalization of the + "ETag" header. Previously remote packages would not be cached if the header + name did not match exactly. Now they will be cached even if the header's + capitalization is different. - Clarify the semantics of the -package-db flag [#9678](https://github.com/haskell/cabal/issues/9678) -The `--package-db` flag now only applies to the default -immutable initial package stack rather than also applying to the store -package database. + The `--package-db` flag now only applies to the default + immutable initial package stack rather than also applying to the store + package database. -This fixes an assertion failure which was triggered when using -package-db and also -clarifies how it should interact with `--store-dir` and `--dist-dir` flags. + This fixes an assertion failure which was triggered when using -package-db and also + clarifies how it should interact with `--store-dir` and `--dist-dir` flags. - PkgConfig individual calls [#9134](https://github.com/haskell/cabal/pull/9134) - Add `--semaphore` flag to enable interaction with GHC Job Server protocol [#8557](https://github.com/haskell/cabal/pull/8557) -When cabal-install is passed the `--semaphore` flag it will now act as a job server -according to the GHC Jobserver Protocol. + When cabal-install is passed the `--semaphore` flag it will now act as a job server + according to the GHC Jobserver Protocol. -In particular this means that cabal-install will create a semaphore which it then -passes to `./Setup build` (and hence `ghc`) which can be used by `ghc` in order to -control how much paralellism it uses, coordinating with other simultaneously running -processes. + In particular this means that cabal-install will create a semaphore which it then + passes to `./Setup build` (and hence `ghc`) which can be used by `ghc` in order to + control how much paralellism it uses, coordinating with other simultaneously running + processes. -This feature requires ghc-9.8 in order to use, as this is the first version of GHC -which implements the protocol. + This feature requires ghc-9.8 in order to use, as this is the first version of GHC + which implements the protocol. - Reimplementing `cabal check` [#7423](https://github.com/haskell/cabal/issues/7423) [#8427](https://github.com/haskell/cabal/pull/8427) - For `cabal-install` users: `cabal check` do not warn on -O2 or similar options if under an off-by-default cabal flag. -The protocol is specified by [GHC Proposal #540](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0540-jsem.rst). - - Adds functionality for the --offline flag with the "build" command. [#8676](https://github.com/haskell/cabal/pull/8676) -The --offline flag previously created in #2578 but was only implemented for the install command even thought the flag didn't throw an error whenever the build command was run. This PR adds functionality for the --offline flag with the build command. -Additionally there is a new PackageTest for the flag using the build command. + The --offline flag previously created in #2578 but was only implemented + for the install command even thought the flag didn't throw an error + whenever the build command was run. This PR adds functionality for the + --offline flag with the build command. Additionally there is a new + PackageTest for the flag using the build command. - Add warning for running cabal run, cabal test and cabal bench with +RTS flag [#8709](https://github.com/haskell/cabal/pull/8709) -This adds a warning when RTS options are passed to cabal instead of the binary -for the commands 'run', 'bench' and 'test', as most users want to pass these -options to their binary. + This adds a warning when RTS options are passed to cabal instead of the + binary for the commands 'run', 'bench' and 'test', as most users want to + pass these options to their binary. - Add support for loading multiple components into one repl session [#8238](https://github.com/haskell/cabal/pull/8238) [#8491](https://github.com/haskell/cabal/pull/8491) [#8726](https://github.com/haskell/cabal/pull/8726) -The `repl` command is extended in order to allow starting a repl session with -multiple local components. When a user specifies a target to the "repl" command -which resolves to multiple local components then `cabal` will start a repl session -which loads them all into a single GHC session if the multi-repl is enabled. + The `repl` command is extended in order to allow starting a repl session + with multiple local components. When a user specifies a target to the + "repl" command which resolves to multiple local components then `cabal` + will start a repl session which loads them all into a single GHC session + if the multi-repl is enabled. -The multi-repl can be enabled by passing `--enable-multi-repl`, or writing `multi-repl: True` in -your cabal.project file. + The multi-repl can be enabled by passing `--enable-multi-repl`, or writing + `multi-repl: True` in your cabal.project file. -The feature is fully explained in [this blog post](https://well-typed.com/blog/2023/03/cabal-multi-unit/). + The feature is fully explained in [this blog + post](https://well-typed.com/blog/2023/03/cabal-multi-unit/). - Add `cabal path` command [#8879](https://github.com/haskell/cabal/pull/8879) -The `cabal path` command prints the file system paths used by Cabal. -It is intended for use by tooling that needs to read or modify Cabal -data, such that it does not need to replicate the complicated logic -for respecting `CABAL_DIR`, `CABAL_CONFIG`, etc. + The `cabal path` command prints the file system paths used by Cabal. + It is intended for use by tooling that needs to read or modify Cabal + data, such that it does not need to replicate the complicated logic + for respecting `CABAL_DIR`, `CABAL_CONFIG`, etc. - `cabal check`: clearly mark Errors [#8908](https://github.com/haskell/cabal/pull/8908) -- `cabal check` will now mark errors (which make the program return 1 and -Hackage refuse the package) by prepending them with an "Error: " string -in the output. + `cabal check` will now mark errors (which make the program return 1 and + Hackage refuse the package) by prepending them with an "Error: " string in + the output. - Warn when project configuration options are going to be ignored. [#8949](https://github.com/haskell/cabal/pull/8949) -Some project configuration options can only be specified from the command line. -If the user specified those options from a project file, cabal-install would -silently ignore them. Now cabal-install will emit a warning. + Some project configuration options can only be specified from the command + line. If the user specified those options from a project file, + cabal-install would silently ignore them. Now cabal-install will emit a + warning. - Fix precedence for PATH for build-tools-depends [#8972](https://github.com/haskell/cabal/pull/8972) -- fixes a bug introduced in #8506 that caused executables in the path to take precedence over those specified in build-tools-depends. + Fixes a bug introduced in #8506 that caused executables in the path to + take precedence over those specified in build-tools-depends. - Remove --cabal-file flags from v2 commands [#6880](https://github.com/haskell/cabal/issues/6880) [#7225](https://github.com/haskell/cabal/issues/7225) [#8395](https://github.com/haskell/cabal/issues/8395) [#9123](https://github.com/haskell/cabal/pull/9123) -The --cabal-file flag was never meant for public use but only for testing. To -avoid confusing the users any further we removed the flag from v2 commands. + The --cabal-file flag was never meant for public use but only for testing. + To avoid confusing the users any further we removed the flag from v2 + commands. - Avoid a double space in "Executing install plan ..." [#9376](https://github.com/haskell/cabal/pull/9376) -The "Executing·install·plan··serially" and other similar "Executing install -plan··..." outputs no longer contain double spaces. + The "Executing·install·plan··serially" and other similar "Executing + install plan··..." outputs no longer contain double spaces. - Guard PackageInfo_* modules behind `cabal-version` ≥ 3.12 [#9331](https://github.com/haskell/cabal/issues/9331) [#9481](https://github.com/haskell/cabal/pull/9481) @@ -203,17 +209,17 @@ plan··..." outputs no longer contain double spaces. - Shorten solver rejection messages by removing repetition [#4251](https://github.com/haskell/cabal/issues/4251) [#9559](https://github.com/haskell/cabal/issues/9559) [#9560](https://github.com/haskell/cabal/pull/9560) -As before, we show a single rejection as hyphenated package-version. + As before, we show a single rejection as hyphenated package-version. -For multiple rejections, we show a list of versions preceded by package -semicolon, a much shorter rendering of the same information. + For multiple rejections, we show a list of versions preceded by package + semicolon, a much shorter rendering of the same information. -```diff -- [__0] rejecting: pandoc-3.1.8, pandoc-3.1.7, pandoc-3.1.6.2, pandoc-3.1.6.1, -- pandoc-3.1.6, pandoc-3.1.5, pandoc-3.1.4, pandoc-3.1.3, pandoc-3.1.2, -- pandoc-3.1.1, pandoc-3.1, pandoc-3.0.1, pandoc-3.0, pandoc-2.19.2, -- 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, + ```diff + - [__0] rejecting: pandoc-3.1.8, pandoc-3.1.7, pandoc-3.1.6.2, pandoc-3.1.6.1, + - pandoc-3.1.6, pandoc-3.1.5, pandoc-3.1.4, pandoc-3.1.3, pandoc-3.1.2, + - pandoc-3.1.1, pandoc-3.1, pandoc-3.0.1, pandoc-3.0, pandoc-2.19.2, + - 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, ```