Skip to content

Commit

Permalink
Changelogs 3.14 (#10338)
Browse files Browse the repository at this point in the history
* Bumpo “Redefine `build-type: Configure`” importance

* Move “`pkg-config` error message” entry

to “Other changes”

* Fix typo

* cabal file → `.cabal` file

* Remove #9702 from `cabal-install` changelog

It is invisible to `cabal-install` user

* Changelog: add OrPatterns extension

* Changelog: add SPDX note

* Make release notes for cabal-install 3.14

We are after all releasing cabal-install 3.14

* Fix SPDX entry

We are not doing the sensible thing anymore.
  • Loading branch information
ffaf1 authored Sep 14, 2024
1 parent ce7546b commit 93db940
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 56 deletions.
7 changes: 7 additions & 0 deletions release-notes/Cabal-3.14.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@

- Add `NamedDefaults` extension (GHC proposal #409) [#9740](https://github.com/haskell/cabal/pull/9740)

- Add `OrPatterns` extension (GHC proposal #958) [#10339](https://github.com/haskell/cabal/pull/10339)


### Other changes

Expand Down Expand Up @@ -150,3 +152,8 @@
things (Setup configure, the package's "configure" script, or "cabal
configure"). This has recently caught out even Cabal devs. Clarify these
messages. [#9476](https://github.com/haskell/cabal/pull/9476)

- Update the SPDX License List to version 3.25

The LicenseId and LicenseExceptionId types are updated to reflect the SPDX
License List version 3.25 (2024-08-19).
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
### THIS iS A WIP CHANGELOG FOR 3.16
cabal-install 3.14.0.0 changelog and release notes.
---

**It will have to be updated with whatever gets added between 3.14 and 3.16**


- Clarify error message when `pkg-config` is not found [#10122](https://github.com/haskell/cabal/pull/10122)

- The error message when `pkg-config` is not found or querying it fails will no
longer incorrectly claim that the package is missing in the database.

### Significant changes

- `haddock-project` support for subcomponents [#9821](https://github.com/haskell/cabal/pull/9821)

- `haddock-project` handles sublibraries, test suites and benchmarks.
- `haddock` receives `--package-name` flag whcih allows to set names of
- `haddock` receives `--package-name` flag which allows to set names of
components which are included in the main `index.html` file.
- added `--use-unicode` flag to `haddock` and `haddock-project` commands.
- The directory structure of `./dist-newstyle` has changed. `haddock`
Expand All @@ -23,6 +17,20 @@
support of sublibraries. See
https://github.com/haskell/cabal/pull/9821#discussion_r1548557115.

- Redefine `build-type: Configure` in terms of `Hooks` [#9969](https://github.com/haskell/cabal/pull/9969)

The `build-type: Configure` is now implemented in terms of `build-type: Hooks`
rather than in terms of `build-type: Custom`. This moves the `Configure`
build-type away from the `Custom` issues. Eventually, `build-type: Hooks` will
no longer imply packages are built in legacy-fallback mode. When that
happens, `Configure` will also stop implying `legacy-fallback`.

The observable aspect of this change is `runConfigureScript` now having a
different type, and `autoconfSetupHooks` being exposed from `Distribution.Simple`.
The former is motivated by internal implementation details, while the latter
provides the `SetupHooks` value for the `Configure` build type, which can be
consumed by other `Hooks` clients (e.g. eventually HLS).

### Other changes

- Add support for building profiled dynamic way [#4816](https://github.com/haskell/cabal/issues/4816) [#9900](https://github.com/haskell/cabal/pull/9900)
Expand All @@ -37,7 +45,7 @@
Support for using `profiling-shared` is guarded behind a constraint
which ensures you are using `Cabal >= 3.13`.

In the cabal file:
In the `.cabal` file:

* `ghc-prof-shared-options`, for passing options when building in
profiling dynamic way
Expand All @@ -62,39 +70,6 @@
* `--enable-executable-dynamic --enable-profiling` will automatically turn on building
shared profiling libraries (if supported by your compiler).

- Working directory support for `Cabal` [#9702](https://github.com/haskell/cabal/issues/9702) [#9718](https://github.com/haskell/cabal/pull/9718)

The `Cabal` library is now able to handle a passed-in working directory, instead
of always relying on the current working directory of the parent process.

In order to achieve this, the `SymbolicPath` abstraction was fleshed out, and
all fields of `PackageDescription` that, if relative, should be interpreted
with respect to e.g. the package root, use `SymbolicPath` instead of `FilePath`.

This means that many library functions in `Cabal` take an extra argument of type
`Maybe (SymbolicPath CWD (Dir "Package"))`, which is an optional (relative or
absolute) path to the package root (if relative, relative to the current working
directory). In addition, many functions that used to manipulate `FilePath`s now
manipulate `SymbolicPath`s, require explicit conversion using e.g. `getSymbolicPath`.

To illustrate with file searching, the `Cabal` library defines:

```haskell
findFileCwd
:: forall dir1 dir2 file
. Verbosity
-> Maybe (SymbolicPath CWD (Dir dir1))

-> [SymbolicPath dir1 (Dir dir2)]

-> RelativePath dir2 File

-> IO (SymbolicPath dir1 File)
```

See Note [Symbolic paths] in `Distribution.Utils.Path` for further information
on the design of this API.

- `curl` transport now supports Basic authentication [#10089](https://github.com/haskell/cabal/pull/10089)

- The `curl` HTTP transport previously only supported the HTTP Digest
Expand Down Expand Up @@ -151,20 +126,16 @@
* `documentation: true` or `--enable-documentation` now implies `-haddock` for
GHC.

- Redefine `build-type: Configure` in terms of `Hooks` [#9969](https://github.com/haskell/cabal/pull/9969)
- Bug fix - Don't pass `--coverage-for` for non-dependency libs of testsuite [#10046](https://github.com/haskell/cabal/issues/10046) [#10250](https://github.com/haskell/cabal/pull/10250)

The `build-type: Configure` is now implemented in terms of `build-type: Hooks`
rather than in terms of `build-type: Custom`. This moves the `Configure`
build-type away from the `Custom` issues. Eventually, `build-type: Hooks` will
no longer imply packages are built in legacy-fallback mode. When that
happens, `Configure` will also stop implying `legacy-fallback`.
- Added `--all` and `--haddock-all` switches to `haddock-project` subcommand [#10051](https://github.com/haskell/cabal/issues/10051) [#10163](https://github.com/haskell/cabal/pull/10163)

The observable aspect of this change is `runConfigureScript` now having a
different type, and `autoconfSetupHooks` being exposed from `Distribution.Simple`.
The former is motivated by internal implementation details, while the latter
provides the `SetupHooks` value for the `Configure` build type, which can be
consumed by other `Hooks` clients (e.g. eventually HLS).
- Clarify error message when `pkg-config` is not found [#10122](https://github.com/haskell/cabal/pull/10122)

- Bug fix - Don't pass `--coverage-for` for non-dependency libs of testsuite [#10046](https://github.com/haskell/cabal/issues/10046) [#10250](https://github.com/haskell/cabal/pull/10250)
- The error message when `pkg-config` is not found or querying it fails will no
longer incorrectly claim that the package is missing in the database.

- Added `--all` and `--haddock-all` switches to `haddock-project` subcommand [#10051](https://github.com/haskell/cabal/issues/10051) [#10163](https://github.com/haskell/cabal/pull/10163)
- Update the SPDX License List to version 3.25

The LicenseId and LicenseExceptionId types are updated to reflect the SPDX
License List version 3.25 (2024-08-19).

0 comments on commit 93db940

Please sign in to comment.