You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
☞ 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.
2
5
3
-
cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
4
6
---
5
7
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
7
9
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)
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.
12
18
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)
17
20
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`.
19
23
20
24
- 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)
21
25
@@ -32,6 +36,13 @@ cabal-install and cabal-install-solver 3.12.1.0 changelog and release notes
32
36
a flag which specifies which libraries should be included in the coverage
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
+
35
46
- Redesign `cabal path` command to account for projects [#9673](https://github.com/haskell/cabal/pull/9673)
36
47
37
48
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
71
82
If you prefer a log file, consider setting `--test-show-details=streaming` (or something
72
83
else) manually.
73
84
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
-
80
85
- Die if package list is missing [#8944](https://github.com/haskell/cabal/pull/8944)
81
86
82
87
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
105
110
directories explicitly specified in cabal file will be considered
106
111
before Cabal’s internal build directory.
107
112
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
-
119
113
- 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)
120
114
121
115
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
136
130
This fixes an assertion failure which was triggered when using `--package-db` and also
137
131
clarifies how it should interact with `--store-dir` and `--dist-dir` flags.
`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
241
204
242
205
- Do not ask overwrite permissions on blank project [#9150](https://github.com/haskell/cabal/issues/9150)[#9155](https://github.com/haskell/cabal/pull/9155)
243
206
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
-
246
207
- 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)
247
208
248
209
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
287
248
This change matters to BSD-2-Clause and BSD-3-Clause licences. For these two
288
249
licences, `cabal init` created a licence file that slightly differed from
289
250
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.
- 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
0 commit comments