Skip to content

Commit c9d13b9

Browse files
authored
Merge pull request #11306 from haskell/r3.16.1.0-C.2-changelog
R3.16.1.0 c.2 changelog
2 parents 5b30f52 + ebf12f2 commit c9d13b9

File tree

10 files changed

+56
-51
lines changed

10 files changed

+56
-51
lines changed

Cabal-hooks/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog for `Cabal-hooks`
22

3+
## 3.16.1 – November 2025
4+
* No changes
5+
36
## 3.16.0 – July 2025
47
* No changes
58

Cabal-syntax/ChangeLog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Please see https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.16.0.0.md
1+
Please see https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.16.1.0.md

Cabal/ChangeLog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# 3.16.1.0 [Artem Pelenitsyn](mailto:a@pelenitsyn.top) November 2025
2+
* See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.16.1.0.md
3+
14
# 3.16.0.0 [Artem Pelenitsyn](mailto:a@pelenitsyn.top) July 2025
25
* See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.16.0.0.md
36

cabal-install-solver/ChangeLog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Please see https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.16.0.0.md
1+
Please see https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.16.1.0.md

cabal-install/ChangeLog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Change-log
22

3+
## 3.16.1.0 [Artem Pelenitsyn](mailto:a@pelenitsyn.top) November 2025
4+
5+
* See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.16.1.0.md
6+
37
## 3.16.0.0 [Artem Pelenitsyn](mailto:a@pelenitsyn.top) July 2025
48

59
* See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.16.0.0.md

changelog.d/pr-11101

Lines changed: 0 additions & 14 deletions
This file was deleted.

changelog.d/pr-11232.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

changelog.d/pr-11266

Lines changed: 0 additions & 11 deletions
This file was deleted.

release-notes/Cabal-3.16.1.0.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Cabal and Cabal-syntax 3.16.1.0 changelog and release notes
2+
---
3+
4+
- Always pass `--interactive` as the first ghc argument [#11099](https://github.com/haskell/cabal/issues/11099) [#11101](https://github.com/haskell/cabal/pull/11101)
5+
6+
We recently changed Cabal to use response files for all GHC arguments by default.
7+
Unfortunately, this broke a couple of downstream consumers of cabal, notably Haskell Language Server and doctest, which both assume that `--interactive` is the first argument of the `ghc` invocation by `cabal repl`.
8+
9+
This regression was fixed by implementing the `--with-repl` (#9115) argument, and tools, such as hie-bios and doctest, have been updated to take advantage of this. However, this renders already published HLS binaries, so any HLS version <=2.12.0.0, incompatible with `cabal-3.16`, as these old binaries can't be easily updated.
10+
11+
In other words, no released HLS binary (at the point of this commit), is compatible with the cabal-3.16.0.0. Users have to build HLS from source to have a working toolchain.
12+
13+
To give us a slightly better migration window, we undo some of the improvements to cabal, and make sure that `--interactive` is always passed as the first argument to the underlying `ghc` invocation. This hack is supposed to be temporary, and removed for cabal 3.18.
14+
15+
(Ed. note: see https://github.com/haskell/cabal/issues/11305 re deprecation.)
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
cabal-install and cabal-install-solver 3.16.1.0 changelog and release notes
2+
---
3+
4+
### Significant changes
5+
6+
- Don't pass the executable name to external commands [#10275](https://github.com/haskell/cabal/issues/10275) [#11232](https://github.com/haskell/cabal/pull/11232)
7+
8+
Previously the executable name of the external command was passed to external commands as the first argument.
9+
10+
This behaviour was adapted from cargo which does this because of reasons that are internal to rust that do not affect GHC Haskell, and are even orthogonal to patterns that see common use in Haskell.
11+
12+
Additionally, it complicates the 'simple' case which is what we should optimize for when building such a feature - with this change, for any executable `cabal-foo` in your search-path, `cabal foo` will be a valid invocation of that command.
13+
14+
The previous use case (one executable that serves multiple external subcommands) is still possible by the following means:
15+
16+
- using a wrapper around the executable
17+
- using a symlink and check argv\[0\] in the executable
18+
19+
Additionally, the variable `$CABAL` that was set by `cabal-install` was renamed to `CABAL_EXTERNAL_CABAL_PATH`. This has two reasons:
20+
1. it makes migration easier for users of the external command feature that were previously expecting the name of the executable to appear in `argv[1]`
21+
22+
2. it does not unnecessarily pollute the environment variable namespace as it turns out some other tools have been and are already using this name, historically
23+
24+
### Other changes
25+
26+
- Add compiler ABI tag and store path to `cabal path` output [#10165](https://github.com/haskell/cabal/issues/10165) [#11266](https://github.com/haskell/cabal/pull/11266)
27+
28+
This adds the GHC Project Unit ID (ABI tag) and store path to the cabal path output as "compiler-abi-tag" and "compiler-store-path". These have been used in cabal-install since 3.12.1.0.
29+

0 commit comments

Comments
 (0)