Skip to content

Commit 3aa20ec

Browse files
committed
Touch up release notes for cabal-install 3.12.0.0 pre-release
1 parent f46dd08 commit 3aa20ec

File tree

1 file changed

+115
-61
lines changed

1 file changed

+115
-61
lines changed

release-notes/WIP-cabal-install-3.12.x.0.md

Lines changed: 115 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
1-
☞ N.B.: this is a WIP release-note file for 3.12.x.0 cabal-install.
1+
Pre-release cabal-install 3.12.0.0/3.11.0.0 changelog and release notes.
2+
3+
This file will be edited and the changes incorprated into the official
4+
3.12.1.0 cabal-install and cabal-install-solver release notes.
25

3-
cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
46
---
57

6-
- 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)
8+
### Significant changes
79

8-
- Added `--project-dir` flag for specifying the project's root directory
9-
- Deprecated using `--project-file` with an absolute filepath without also using `--project-dir`.
10+
- Add support for asm, cmm, and js sources in executable components [#8639](https://github.com/haskell/cabal/issues/8639) [#9061](https://github.com/haskell/cabal/pull/9061)
1011

11-
- Remove useles "Log" log level [#9151](https://github.com/haskell/cabal/issues/9151) [#9346](https://github.com/haskell/cabal/pull/9346)
12+
Executable components now support the inclusion of asm, cmm, and js source
13+
files in a cabal file using the same syntax as is used for these sources
14+
in library components, similar to how c and c++ sources are supported in
15+
both types of components. This syntax was already parsed in cabal files,
16+
but was silently ignored in the build step, so no changes to syntax are
17+
made.
1218

13-
- Remove "Log" as a log level in favour of "Info".
14-
- Remove "Show" in Severity and replace by "displaySeverity" function
15-
16-
- Add `--haddock-output-dir` flag to `cabal haddock`. [#8720](https://github.com/haskell/cabal/issues/8720) [#8788](https://github.com/haskell/cabal/pull/8788)
19+
- 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)
1720

18-
This flag gives the user full control over the directory where the documentation is placed. It allows both relative and absolute paths.
21+
- Added `--project-dir` flag for specifying the project's root directory
22+
- Deprecated using `--project-file` with an absolute filepath without also using `--project-dir`.
1923

2024
- 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)
2125

@@ -32,6 +36,13 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
3236
a flag which specifies which libraries should be included in the coverage
3337
report for some testsuite.
3438

39+
- Add `cabal path` command [#8879](https://github.com/haskell/cabal/pull/8879)
40+
41+
The `cabal path` command prints the file system paths used by Cabal.
42+
It is intended for use by tooling that needs to read or modify Cabal
43+
data, such that it does not need to replicate the complicated logic
44+
for respecting `CABAL_DIR`, `CABAL_CONFIG`, etc.
45+
3546
- Redesign `cabal path` command to account for projects [#9673](https://github.com/haskell/cabal/pull/9673)
3647

3748
Previously, `cabal path` was only able to query from the global configuration file, e.g., `~/.cabal/config` or the XDG equivalent.
@@ -71,12 +82,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
7182
If you prefer a log file, consider setting `--test-show-details=streaming` (or something
7283
else) manually.
7384

74-
### Other changes
75-
76-
- Script cache dir is the base16 hash of the canonical path of the script. [#9459](https://github.com/haskell/cabal/pull/9459)
77-
78-
This fixes sporadic path failures on both Windows and Linux (e.g. [#9334](https://github.com/haskell/cabal/issues/9334)).
79-
8085
- Die if package list is missing [#8944](https://github.com/haskell/cabal/pull/8944)
8186

8287
If a package list is missing, `cabal` will now die and suggest the user to run
@@ -105,17 +110,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
105110
directories explicitly specified in cabal file will be considered
106111
before Cabal’s internal build directory.
107112

108-
- Also render short options with arguments [#8785](https://github.com/haskell/cabal/issues/8785) [#9043](https://github.com/haskell/cabal/pull/9043)
109-
110-
Show how arguments are used with both short and long forms of options:
111-
112-
```diff
113-
<-v, --verbose[=n]Control verbosity (n is 0--3, default
114-
>-v[n], --verbose[=n] Control verbosity (n is 0--3, default
115-
<-w, --with-compiler=PATH give the path to a particular compiler
116-
>-w PATH or -wPATH, --with-compiler=PATH
117-
```
118-
119113
- 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)
120114

121115
The init section of config file now allows the following fields:
@@ -136,8 +130,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
136130
This fixes an assertion failure which was triggered when using `--package-db` and also
137131
clarifies how it should interact with `--store-dir` and `--dist-dir` flags.
138132

139-
- PkgConfig individual calls [#9134](https://github.com/haskell/cabal/pull/9134)
140-
141133
- Add `--semaphore` flag to enable interaction with GHC Job Server protocol [#8557](https://github.com/haskell/cabal/pull/8557)
142134

143135
When cabal-install is passed the `--semaphore` flag it will now act as a job server
@@ -151,11 +143,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
151143
This feature requires ghc-9.8 in order to use, as this is the first version of GHC
152144
which implements the protocol.
153145

154-
- Reimplementing `cabal check` [#7423](https://github.com/haskell/cabal/issues/7423) [#8427](https://github.com/haskell/cabal/pull/8427)
155-
156-
- For `cabal-install` users: `cabal check` do not warn on -O2 or similar
157-
options if under an off-by-default cabal flag.
158-
159146
- Add `--ignore` to `cabal check` [#8587](https://github.com/haskell/cabal/issues/8587) [#9442](https://github.com/haskell/cabal/pull/9442)
160147

161148
- `cabal check` now ignores specific warnings with `--ignore`. E.g.
@@ -192,19 +179,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
192179
The feature is fully explained in [this blog
193180
post](https://well-typed.com/blog/2023/03/cabal-multi-unit/).
194181

195-
- Add `cabal path` command [#8879](https://github.com/haskell/cabal/pull/8879)
196-
197-
The `cabal path` command prints the file system paths used by Cabal.
198-
It is intended for use by tooling that needs to read or modify Cabal
199-
data, such that it does not need to replicate the complicated logic
200-
for respecting `CABAL_DIR`, `CABAL_CONFIG`, etc.
201-
202-
- `cabal check`: clearly mark Errors [#8908](https://github.com/haskell/cabal/pull/8908)
203-
204-
`cabal check` will now mark errors (which make the program return 1 and
205-
Hackage refuse the package) by prepending them with an "Error: " string in
206-
the output.
207-
208182
- Warn when project configuration options are going to be ignored. [#8949](https://github.com/haskell/cabal/pull/8949)
209183

210184
Some project configuration options can only be specified from the command
@@ -217,17 +191,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
217191
Fixes a bug introduced in #8506 that caused executables in the path to
218192
take precedence over those specified in `build-tools-depends`.
219193

220-
- 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)
221-
222-
The `--cabal-file` flag was never meant for public use but only for testing.
223-
To avoid confusing the users any further we removed the flag from v2
224-
commands.
225-
226-
- Avoid a double space in "Executing install plan ..." [#9376](https://github.com/haskell/cabal/pull/9376)
227-
228-
The "Executing·install·plan··serially" and other similar "Executing
229-
install plan··..." outputs no longer contain double spaces.
230-
231194
- Guard `PackageInfo_*` modules behind `cabal-version` ≥ 3.12 [#9331](https://github.com/haskell/cabal/issues/9331) [#9481](https://github.com/haskell/cabal/pull/9481)
232195

233196
`cabal check` now warns whenever `PackageInfo_*` autogen modules are
@@ -241,8 +204,6 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
241204

242205
- Do not ask overwrite permissions on blank project [#9150](https://github.com/haskell/cabal/issues/9150) [#9155](https://github.com/haskell/cabal/pull/9155)
243206

244-
- Don't report `index.html` file as created, if not created by Haddock [#5120](https://github.com/haskell/cabal/issues/5120) [#9332](https://github.com/haskell/cabal/pull/9332)
245-
246207
- 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)
247208

248209
As before, we show a single rejection as hyphenated package-version.
@@ -287,3 +248,96 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
287248
This change matters to BSD-2-Clause and BSD-3-Clause licences. For these two
288249
licences, `cabal init` created a licence file that slightly differed from
289250
wording published at SPDX. This has been rectified.
251+
252+
- Include the GHC "Project Unit Id" in the cabal store path [#8114](https://github.com/haskell/cabal/issues/8114) [#9326](https://github.com/haskell/cabal/pull/9326)
253+
254+
This allows the use of several **API incompatible builds of the same
255+
version of GHC** without corrupting the cabal store.
256+
257+
This relies on the "Project Unit Id" which is available since GHC 9.8.1,
258+
older versions of GHC do not benefit from this change.
259+
260+
- Add support for `GHC2024` [#9736](https://github.com/haskell/cabal/issues/9736)
261+
262+
Support for the `GHC2024` language edition, introduced by GHC 9.10, has been
263+
added. It can now be used in the `default-language` and `other-languages`
264+
fields, and will be offered as an option by `cabal init`.
265+
266+
- Add language extension `ExtendedLiterals` [#8992](https://github.com/haskell/cabal/pull/8992)
267+
268+
Adds support for the `ExtendedLiterals` language extension (GHC proposal #451)
269+
270+
- Add language extension `ListTuplePuns` [#8854](https://github.com/haskell/cabal/pull/8854)
271+
272+
Adds support for the `ListTuplePuns` language extension (GHC proposal #475)
273+
274+
- Add language extension `TypeAbstractions` [#9496](https://github.com/haskell/cabal/issues/9496) [#9502](https://github.com/haskell/cabal/pull/9502)
275+
276+
### Other changes
277+
278+
- Script cache dir is the base16 hash of the canonical path of the script. [#9459](https://github.com/haskell/cabal/pull/9459)
279+
280+
This fixes sporadic path failures on both Windows and Linux (e.g. [#9334](https://github.com/haskell/cabal/issues/9334)).
281+
282+
- Add `--haddock-output-dir` flag to `cabal haddock`. [#8720](https://github.com/haskell/cabal/issues/8720) [#8788](https://github.com/haskell/cabal/pull/8788)
283+
284+
This flag gives the user full control over the directory where the documentation is placed. It allows both relative and absolute paths.
285+
286+
- Remove useles "Log" log level [#9151](https://github.com/haskell/cabal/issues/9151) [#9346](https://github.com/haskell/cabal/pull/9346)
287+
288+
- Remove "Log" as a log level in favour of "Info".
289+
- Remove "Show" in Severity and replace by "displaySeverity" function
290+
291+
- `cabal init` should not suggest Cabal < 2.0 [#8680](https://github.com/haskell/cabal/issues/8680)
292+
293+
'cabal init' no longer suggests users to set cabal-version to less than
294+
2.0.
295+
296+
- PkgConfig individual calls [#9134](https://github.com/haskell/cabal/pull/9134)
297+
298+
`cabal` invokes `pkg-config` individually for each lib if querying for all
299+
doesn't return the expected result.
300+
301+
- Reimplementing `cabal check` [#7423](https://github.com/haskell/cabal/issues/7423) [#8427](https://github.com/haskell/cabal/pull/8427)
302+
303+
- For `cabal-install` users: `cabal check` do not warn on -O2 or similar
304+
options if under an off-by-default cabal flag.
305+
306+
- `cabal check`: clearly mark Errors [#8908](https://github.com/haskell/cabal/pull/8908)
307+
308+
`cabal check` will now mark errors (which make the program return 1 and
309+
Hackage refuse the package) by prepending them with an "Error: " string in
310+
the output.
311+
312+
- Don't report `index.html` file as created, if not created by Haddock [#5120](https://github.com/haskell/cabal/issues/5120) [#9332](https://github.com/haskell/cabal/pull/9332)
313+
314+
- Make check comply with Hackage requirements [#8897](https://github.com/haskell/cabal/pull/8897)
315+
316+
- `cabal check` will only return exitcode 1 when the package is not fit
317+
for Hackage. E.g. it will not error anymore when your `synopsis:` is
318+
larger than `description:`, just emit a warning.
319+
- Cabal: Distribution.Client.Check now exports `isHackageDistError`, for
320+
third-party tools to know if a specific error will preclude a package
321+
from being uploaded to Hacakge.
322+
323+
- Also render short options with arguments [#8785](https://github.com/haskell/cabal/issues/8785) [#9043](https://github.com/haskell/cabal/pull/9043)
324+
325+
Show how arguments are used with both short and long forms of options:
326+
327+
```diff
328+
<-v, --verbose[=n]Control verbosity (n is 0--3, default
329+
>-v[n], --verbose[=n] Control verbosity (n is 0--3, default
330+
<-w, --with-compiler=PATH give the path to a particular compiler
331+
>-w PATH or -wPATH, --with-compiler=PATH
332+
```
333+
334+
- 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)
335+
336+
The `--cabal-file` flag was never meant for public use but only for testing.
337+
To avoid confusing the users any further we removed the flag from v2
338+
commands.
339+
340+
- Avoid a double space in "Executing install plan ..." [#9376](https://github.com/haskell/cabal/pull/9376)
341+
342+
The "Executing·install·plan··serially" and other similar "Executing
343+
install plan··..." outputs no longer contain double spaces.

0 commit comments

Comments
 (0)