Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Changelogs for 3.12.1.0 #10124

Merged
merged 9 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions changelog.d/issue-10042

This file was deleted.

14 changes: 0 additions & 14 deletions changelog.d/issue-10063

This file was deleted.

13 changes: 0 additions & 13 deletions changelog.d/issue-6750

This file was deleted.

10 changes: 0 additions & 10 deletions changelog.d/issue-8680

This file was deleted.

10 changes: 0 additions & 10 deletions changelog.d/issue-8875

This file was deleted.

19 changes: 0 additions & 19 deletions changelog.d/issue-9098-lexbraces

This file was deleted.

8 changes: 0 additions & 8 deletions changelog.d/issue-9641

This file was deleted.

17 changes: 0 additions & 17 deletions changelog.d/issue-9678

This file was deleted.

12 changes: 0 additions & 12 deletions changelog.d/issue-9736

This file was deleted.

4 changes: 0 additions & 4 deletions changelog.d/issue-9919

This file was deleted.

6 changes: 0 additions & 6 deletions changelog.d/issue-9971

This file was deleted.

9 changes: 0 additions & 9 deletions changelog.d/pkgconfig-once

This file was deleted.

11 changes: 0 additions & 11 deletions changelog.d/pr-10014

This file was deleted.

11 changes: 0 additions & 11 deletions changelog.d/pr-9766

This file was deleted.

10 changes: 0 additions & 10 deletions changelog.d/pr-9824

This file was deleted.

8 changes: 0 additions & 8 deletions changelog.d/pr-9878

This file was deleted.

21 changes: 0 additions & 21 deletions changelog.d/pr-9950

This file was deleted.

8 changes: 6 additions & 2 deletions release-notes/Cabal-3.12.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ 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)
- Add support for `GHC2024` [#9736](https://github.com/haskell/cabal/issues/9736) [#9791](https://github.com/haskell/cabal/pull/9791)

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`
Expand All @@ -73,9 +73,13 @@ Cabal and Cabal-syntax 3.12.0.0 changelog and release notes
If you are dealing with a custom setup, you have to invoke
`./Setup repl --repl-multi-file`.

- Cabal labeled messages

As with GHC and Stack, Cabal and cabal-install now generate warnings and errors prefixed with error codes of the form `[Cabal-xxxxx]`. These will be documented on https://errors.haskell.org, although very few are as yet.

### Other changes

- `cabal init` should not suggest Cabal < 2.0 [#8680](https://github.com/haskell/cabal/issues/8680)
- `cabal init` should not suggest Cabal < 2.0 [#8680](https://github.com/haskell/cabal/issues/8680) [#8700](https://github.com/haskell/cabal/pull/8700)

'cabal init' no longer suggests users to set cabal-version to less than
2.0.
Expand Down
56 changes: 56 additions & 0 deletions release-notes/Cabal-3.12.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
Cabal and Cabal-syntax 3.12.1.0 changelog and release notes
---


### Significant changes

- Update ghc args normalization and ghc option rendering [#9729](https://github.com/haskell/cabal/issues/9729) [#10014](https://github.com/haskell/cabal/pull/10014)
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

The flags -fdiagnostics-as-json, -fprint-error-index-lists, -fbreak-points, -dipe-stats, -ffamily-application-cache, -fprint-redundant-promotion-ticks, -fshow-error-context and -funoptimized-core-for-interpreter have been added to the flags that do not cause recompilation.
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

- Warn on missing `default-language` [#9620](https://github.com/haskell/cabal/issues/9620) [#9766](https://github.com/haskell/cabal/pull/9766)

- To help the adoption of GHC language editions, `cabal check` will now
warn about missing `default-language`.

- Add mhs as a known Haskell compiler [#9878](https://github.com/haskell/cabal/pull/9878)
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

This simply add MHS to the enumeration of known Haskell compilers.
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

- Re-instate `initialBuildSteps` [#9856](https://github.com/haskell/cabal/issues/9856) [#9950](https://github.com/haskell/cabal/pull/9950)

The `initialBuildSteps` function from `Distribution.Simple.Build`, which had
been hastily removed, has been reinstated.

It now comes with a deprecation warning: calling that function does not suffice
to prepare the sources for a package, as there are other steps that one might
also need to perform:

- running pre-processors (such as alex/happy)
- running pre-build hooks or custom logic
(in build-type: Hooks or build-type: Custom or Configure)
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

Consumers wanting to prepare the sources of a package, e.g. in order to launch a
REPL session, are advised to run `setup repl --repl-multi-file=<fn>` instead.

- Cabal labeled messages
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

As with GHC and Stack, Cabal and cabal-install now generate warnings and errors prefixed with error codes of the form `[Cabal-xxxxx]`. These will be documented on https://errors.haskell.org, although very few are as yet.

This change was actually present in Cabal-3.12.0.0, but was inadvertently omitted from the changelog.

### Other changes

- Don't recommend deprecated/removed 'extensions:' field [#10042](https://github.com/haskell/cabal/issues/10042) [#10044](https://github.com/haskell/cabal/pull/10044)
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

When applicable, field 'default-extensions:' is recommended (rather than
deprecated/removed 'extensions:').
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

- Make Setup copy/install succeed when there's no executable or library [#6750](https://github.com/haskell/cabal/issues/6750) [#9926](https://github.com/haskell/cabal/pull/9926)
geekosaur marked this conversation as resolved.
Show resolved Hide resolved

Historically the Setup copy and install steps would fail if the package didn't
contain an executable or library component. In this case there's nothing to do.

This required workarounds for downstream users of Cabal to handle this edge case.
Now that this error has been downgraded to a warning, Cabal will succeed if
there's nothing to do.
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
Pre-release cabal-install 3.12.0.0/3.11.0.0 changelog and release notes.

This file will be edited and the changes incorprated into the official
3.12.1.0 cabal-install and cabal-install-solver release notes.

cabal-install 3.12.1.0 changelog and release notes.
---

### Significant changes
Expand Down Expand Up @@ -36,17 +32,14 @@ This file will be edited and the changes incorprated into the official
a flag which specifies which libraries should be included in the coverage
report for some testsuite.

- Add `cabal path` command [#8879](https://github.com/haskell/cabal/pull/8879)
- Add `cabal path` command [#8879](https://github.com/haskell/cabal/pull/8879) [#9673](https://github.com/haskell/cabal/pull/9673)

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.

- 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.
It will obey a `cabal.project` if present.

Additionally, we add support for multiple output formats, such as key-value pairs and json.

Expand All @@ -62,7 +55,7 @@ This file will be edited and the changes incorprated into the official
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.
It also produces 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.

Expand Down Expand Up @@ -121,7 +114,7 @@ This file will be edited and the changes incorprated into the official
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)
- Clarify the semantics of the `--package-db` flag [#9678](https://github.com/haskell/cabal/issues/9678) [#9683](https://github.com/haskell/cabal/pull/9683)

The `--package-db` flag now only applies to the default
immutable initial package stack rather than also applying to the store
Expand Down Expand Up @@ -257,7 +250,7 @@ This file will be edited and the changes incorprated into the official
This relies on the "Project Unit Id" which is available since GHC 9.8.1,
older versions of GHC do not benefit from this change.

- Add support for `GHC2024` [#9736](https://github.com/haskell/cabal/issues/9736)
- Add support for `GHC2024` [#9736](https://github.com/haskell/cabal/issues/9736) [#9791](https://github.com/haskell/cabal/pull/9791)

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`
Expand All @@ -273,6 +266,23 @@ This file will be edited and the changes incorprated into the official

- Add language extension `TypeAbstractions` [#9496](https://github.com/haskell/cabal/issues/9496) [#9502](https://github.com/haskell/cabal/pull/9502)

- cabal-install labeled messages

geekosaur marked this conversation as resolved.
Show resolved Hide resolved
As with GHC and Stack, Cabal and cabal-install now generate warnings and errors prefixed with error codes of the form `[Cabal-xxxxx]`. These will be documented on https://errors.haskell.org, although very few are as yet.

- offline flag applied to `source-repository-package`s [#9641](https://github.com/haskell/cabal/issues/9641) [#9771](https://github.com/haskell/cabal/pull/9771)

geekosaur marked this conversation as resolved.
Show resolved Hide resolved
`--offline` flag is already used to block access to Hackage. Now with this PR, this also applies to remote dependency `source-repository-package` in `cabal.project`.

geekosaur marked this conversation as resolved.
Show resolved Hide resolved
- Fix --program-suffix resulting in invalid installation [#8823](https://github.com/haskell/cabal/issues/8823) [#9919](https://github.com/haskell/cabal/issues/9919) [#10056](https://github.com/haskell/cabal/pull/10056)

geekosaur marked this conversation as resolved.
Show resolved Hide resolved
Formerly, using `--program-suffix` resulted in bad symlinks into the store. This has been corrected.

- Warn on missing `default-language` [#9620](https://github.com/haskell/cabal/issues/9620) [#9766](https://github.com/haskell/cabal/pull/9766)

- To help the adoption of GHC language editions, `cabal check` will now
warn about missing `default-language`.

### Other changes

- Script cache dir is the base16 hash of the canonical path of the script. [#9459](https://github.com/haskell/cabal/pull/9459)
Expand Down Expand Up @@ -341,3 +351,17 @@ This file will be edited and the changes incorprated into the official

The "Executing·install·plan··serially" and other similar "Executing
install plan··..." outputs no longer contain double spaces.

- Allow whitespace in targets [#8875](https://github.com/haskell/cabal/issues/8875) [#10032](https://github.com/haskell/cabal/pull/10032)

Allow spaces in the final component of target selectors. This resolves an issue
where using absolute paths in selectors can fail if there is whitespace in the
parent directories of the project.

- Renders project configuration provenance as a list of canonical paths [#9971](https://github.com/haskell/cabal/issues/9971) [#9985](https://github.com/haskell/cabal/pull/9985)

Removes interleaved rendering of project imports.

- Abbrevate solver rejection messages with installed versions [#9823](https://github.com/haskell/cabal/issues/9823) [#9824](https://github.com/haskell/cabal/pull/9824)

geekosaur marked this conversation as resolved.
Show resolved Hide resolved
Abbreviate solver rejection messages even in the presence of installed versions.
Loading