Skip to content
Snippets Groups Projects
Unverified Commit 7a5affbd authored by Mikolaj Konarski's avatar Mikolaj Konarski
Browse files

Forwardport changelogs from the 3.8.0.20220526 pre-release

parent 76c77fe3
No related branches found
No related tags found
No related merge requests found
# 3.8.0.20220526 a pre-release [Mikolaj Konarski](mikolaj@well-typed.com) May 2022
* See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.8.0.20220526.md
# 3.6.3.0 March 2022
* See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.6.3.0.md
......
-*-change-log-*-
3.8.0.20220526 a pre-release; Mikolaj Konarski <mikolaj@well-typed.com> May 2022
* See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.8.0.20220526.md
3.6.2.0 Emily Pillmore <emilypi@cohomolo.gy> October 2021
* See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.6.2.0.md
......
Cabal 3.6.0.0 Changelog
---
- Added fields :pkg-field:`extra-libraries-static` and
:pkg-field:`extra-lib-dirs-static` to allow Haskell libraries to remember
linker flags needed for fully static linking of system libraries into executables. [#7536](https://github.com/haskell/cabal/pull/7536)
- The existing field :pkg-field:`pkgconfig-depends` can used to append the relevant
output of ``pkg-config --libs --static`` to these new fields automatically.
When :pkg-field:`extra-libraries-static` is not given, it defaults to
:pkg-field:`extra-libraries`. When :pkg-field:`extra-lib-dirs-static` is not
given, it defaults to :pkg-field:`extra-lib-dirs`. [#7536](https://github.com/haskell/cabal/pull/7536)
Cabal 3.8.0.20220526 Changelog
---
### Significant changes
- Cabal init rewrite [#1074](https://github.com/haskell/cabal/issues/1074) [#6758](https://github.com/haskell/cabal/issues/6758) [#6864](https://github.com/haskell/cabal/issues/6864) [#7251](https://github.com/haskell/cabal/issues/7251) [#7255](https://github.com/haskell/cabal/issues/7255) [#7256](https://github.com/haskell/cabal/issues/7256) [#7273](https://github.com/haskell/cabal/issues/7273)
- Restructures the `cabal init` command to fix historical
issues. All flags are preserved.
- Codebases for interactive and non-interactive flags
are disentangled.
- Data structures now exploit relevant stanza structure
and formatters only care about stanza data
- Heuristics and prompts have a pure and impure implementation.
- Sets default behavior to be `--interactive` as opposed to
`--non-interactive`.
- Rewrites tests to achieve 98% coverage
- Golden files now test every stanza individually
- Every flag is covered by a unit test
- Interactive, simple, and non-interactive workflows are
covered.
- Make Paths_ modules work with non-standard preludes again [#7494](https://github.com/haskell/cabal/issues/7494) [#7649](https://github.com/haskell/cabal/issues/7649)
- Reverts #7510 that failed on Windows when used with pre-generated scripts included in packages such as network, time, process.
- Adds a subtler fix/workaround for the deficiencies of new autoconf versions on Windows.
- Windows: rewrite paths to configure [#7494](https://github.com/haskell/cabal/issues/7494) [#7649](https://github.com/haskell/cabal/issues/7649)
- Expose `cabal-install` as library [#1597](https://github.com/haskell/cabal/issues/1597) [#3781](https://github.com/haskell/cabal/issues/3781) [#4798](https://github.com/haskell/cabal/issues/4798) [#6090](https://github.com/haskell/cabal/issues/6090) [#7224](https://github.com/haskell/cabal/issues/7224) [#7358](https://github.com/haskell/cabal/pull/7358)
- Allow preprocessors to register a reordering [#55](https://github.com/haskell/cabal/issues/55) [#1906](https://github.com/haskell/cabal/issues/1906)
- Changes the PreProcessor type to include a field ppOrdering so that modules are presented to the preprocessor in the right order (w.r.t. dependencies)
- Use ghc -flink-rts option when available [#7763](https://github.com/haskell/cabal/issues/7763) [#7764](https://github.com/haskell/cabal/pull/7764) [#8111](https://github.com/haskell/cabal/pull/8111)
Previously Cabal did quite some headstands to link against libHSrts.
Note only this is complex but it couples very tightly to GHC's implementation.
Thankfully, as of GHC 9.0 GHC provides a -flink-rts flag for precisely this purpose.
Use it when available.
It fixed a bug which make Cabal unusable to build foreign libraries for windows and ghc 9.0 or 9.2.
See <https://gitlab.haskell.org/ghc/ghc/-/issues/20520>
- Remove the Generic instance of LicenseId [#8074](https://github.com/haskell/cabal/issues/8074) [#8117](https://github.com/haskell/cabal/pull/8117)
- The `Generic` instance of LicenseId is removed, due to the extraordinary amount of memory required to compile
the Generic instances of large sum types in GHC.
### Other changes
- Handle option argument parse errors without 'error' [#7573](https://github.com/haskell/cabal/issues/7573) [#7579](https://github.com/haskell/cabal/pull/7579)
- Errors parsing arguments such as `-v=3` no longer result in
stack traces.
- `Distribution.ReadE.readEOrFail` was removed.
- Fix bugs in filename validation [#7426](https://github.com/haskell/cabal/issues/7426) [#7429](https://github.com/haskell/cabal/pull/7429) [#7479](https://github.com/haskell/cabal/pull/7479)
- Relative paths starting with single-character directories are now properly allowed
- `cabal check` rejects paths which are invalid on Windows or in tarballs
- Fix test --enable-coverage for multi-package projects [#5213](https://github.com/haskell/cabal/issues/5213) [#5433](https://github.com/haskell/cabal/issues/5433) [#7200](https://github.com/haskell/cabal/issues/7200) [#7250](https://github.com/haskell/cabal/pull/7250) [#7467](https://github.com/haskell/cabal/pull/7467)
- Fix `cabal test --enable-coverage` for multi-package projects by invoking `hpc markup --include=` and listing only modules of libraries of the single tested package.
- Make cabal respect setgid permission bit when creating directories [#7560](https://github.com/haskell/cabal/issues/7560) [#7572](https://github.com/haskell/cabal/pull/7572)
- Previously cabal would override an admin's choice to use setgid on the
.cabal directory by using hardcoded file and directory modes upon
creation. Instead we now take what the system decides and only add to
that set of permissions.
- Handle conditionals in duplicate module checks [#4629](https://github.com/haskell/cabal/issues/4629) [#7525](https://github.com/haskell/cabal/issues/7525) [#7616](https://github.com/haskell/cabal/pull/7616)
Improves `cabal check` logic for duplicate modules to take into account conditional branches. If a module appears on both sides of an `if/else` clause in a cabal file, it is now correctly not reported as a duplicate.
- Backtrack when no pkg-config is present [#7448](https://github.com/haskell/cabal/issues/7448) [#7621](https://github.com/haskell/cabal/pull/7621)
When solving for pkgconfig-depends, when pkg-config is not present, the cabal solver will now backtrack and try a different automatic flag and dependency configuration, just as it does if pkg-config is present, but does not contain the specified package.
- Add code-generators field to test-suite stanza [#4500](https://github.com/haskell/cabal/issues/4500) [#7688](https://github.com/haskell/cabal/pull/7688)
Test-suite stanzas now may contain a `code-generators:` field that can be used to run executables as preprocessors which take existing locations of library code and cabal-generated ghc build flags, and output new modules for use in the test stanza. This can be used to automatically generate drivers for "discover" style tests, including doctests.
- Terminate subprocesses when killed [#7914](https://github.com/haskell/cabal/issues/7914) [#7921](https://github.com/haskell/cabal/pull/7921)
- cabal (and 'cabal run' in particular) no longer leaves children running
when it is killed (unix)
- Cleanup subprocess helpers, remove obsolete functions [#7995](https://github.com/haskell/cabal/pull/7995)
- Distribution.Compat.Process: Remove createProcess, runInteractiveProcess
and rawSystem.
- Distribution.Simple.Utils: Remove printRawCommandAndArgs,
printRawCommandAndArgsAndEnv and createProcessWithEnv.
- Allow glob-star matches with literal filenames (no extensions) [#5883](https://github.com/haskell/cabal/issues/5883) [#8005](https://github.com/haskell/cabal/pull/8005)
- Cabal file glob syntax extended to allow matches of the form dir/**/FileNoExtension
- Flatten duplicate warnings about experimental features [#8023](https://github.com/haskell/cabal/pull/8023)
- Make builds that use experimental Cabal language features less noisy. At -v1
(normal) we show just first instance of use of experimental cabal language
features, along with count of further occurences in the same file.
- Fix Cabal not finding public sublibraries of installed packages [#7270](https://github.com/haskell/cabal/issues/7270) [#8089](https://github.com/haskell/cabal/pull/8089)
Fix bug in lookup of installed sublibraries with nonexact dependencies (ie. when
not using --exact-configuration). That is the mode of operation of distribution
packages, so this should allow distros to package Cabal packages with multiple
libraries.
- Make type field optional for tests and benchmarks [#7459](https://github.com/haskell/cabal/issues/7459) [#8115](https://github.com/haskell/cabal/pull/8115)
Allow the omission of the `type` field in `test-suite` and `benchmark` stanzas
when the type can be inferred by the presence of `main-is` or `test-module`.
- Improve error message for empty --allow-newer= [#7740](https://github.com/haskell/cabal/issues/7740) [#8140](https://github.com/haskell/cabal/pull/8140)
Instead of internal error, the message now explains that empty argument for
argument) means.
- Create Cabal-syntax for .cabal files [#7559](https://github.com/haskell/cabal/issues/7559) [#7620](https://github.com/haskell/cabal/pull/7620)
- Fix haddock command via Setup.hs for internal libraries [#1919](https://github.com/haskell/cabal/issues/1919) [#7827](https://github.com/haskell/cabal/pull/7827)
- `ghc-options` and `--with-gcc` are now passed to GHC when compiling C and C++ sources [#4439](https://github.com/haskell/cabal/issues/4439) [#5440](https://github.com/haskell/cabal/pull/5440) [#7874](https://github.com/haskell/cabal/pull/7874)
- 'cabal check' to fail when no upper bounds for base or Cabal are present in setup dependencies [#4683](https://github.com/haskell/cabal/issues/4683) [#5370](https://github.com/haskell/cabal/pull/5370) [#7409](https://github.com/haskell/cabal/pull/7409)
- --repl-options doesn’t split on whitespace [#6190](https://github.com/haskell/cabal/issues/6190) [#7799](https://github.com/haskell/cabal/pull/7799)
- '--repl-no-load' option skips startup modules load in REPL [#7541](https://github.com/haskell/cabal/issues/7541) [#7578](https://github.com/haskell/cabal/pull/7578)
- Add -c alias for --constraint command line flag [#7765](https://github.com/haskell/cabal/issues/7765) [#7766](https://github.com/haskell/cabal/pull/7766)
- Add "prompt" strategy when symlinking binaries. [#5672](https://github.com/haskell/cabal/pull/5672)
- Add fields extra-libraries-static and extra-lib-dirs-static [#6688](https://github.com/haskell/cabal/issues/6688) [#7399](https://github.com/haskell/cabal/issues/7399) [#7536](https://github.com/haskell/cabal/pull/7536)
- Paths passed to GHC are now relative to the current working directory
- Autoatically pipe auth from repo uris into curl transport. [#4743](https://github.com/haskell/cabal/issues/4743) [#7630](https://github.com/haskell/cabal/pull/7630)
- raise lower bound of process and remove compatibility shims [#7922](https://github.com/haskell/cabal/pull/7922)
- changes the cabal check warning about long synopsis, so it warns only synopsis bigger than the set size [#7932](https://github.com/haskell/cabal/issues/7932) [#7933](https://github.com/haskell/cabal/pull/7933)
- Remove bootstrapping plan files from version control, and simplify bootstrap update Makefile targets. [#7949](https://github.com/haskell/cabal/pull/7949)
- Remove deprecated file finding functions [#7955](https://github.com/haskell/cabal/pull/7955)
- Support GHC 9.4's `clang`-based Windows toolchain [#8062](https://github.com/haskell/cabal/pull/8062)
- Add support for the 64-bit S390X architecture [#8065](https://github.com/haskell/cabal/pull/8065)
- Add wasm32-wasi to recognized arch/os [#8096](https://github.com/haskell/cabal/pull/8096)
- Unmarked "visibility: public" and "build-depends: pkg:lib" syntaxes as experimental, allowing Hackage upload of packages exposing or using multiple public libraries [#6801](https://github.com/haskell/cabal/issues/6801) [#7286](https://github.com/haskell/cabal/issues/7286) [#8089](https://github.com/haskell/cabal/pull/8089)
- Sync repo darcs [#7137](https://github.com/haskell/cabal/pull/7137)
- *Cabal-syntax* Derive Eq for DependencyMap [#7849](https://github.com/haskell/cabal/issues/7849) [#8061](https://github.com/haskell/cabal/pull/8061)
- *Cabal-syntax* Allow trailing whitespace after flags in cabal.project [#7279](https://github.com/haskell/cabal/issues/7279) [#8006](https://github.com/haskell/cabal/pull/8006)
- *Cabal-syntax* Update the SPDX License List to version 3.16 [#8126](https://github.com/haskell/cabal/issues/8126) [#8127](https://github.com/haskell/cabal/pull/8127)
The LicenseId and LicenseExceptionId types are updated to reflect the SPDX License List version 3.16 (2022-02-06).
- Added fields :pkg-field:`extra-libraries-static` and
:pkg-field:`extra-lib-dirs-static` to allow Haskell libraries to remember
linker flags needed for fully static linking of system libraries into executables. [#7536](https://github.com/haskell/cabal/pull/7536)
- The existing field :pkg-field:`pkgconfig-depends` can used to append the relevant
output of ``pkg-config --libs --static`` to these new fields automatically.
When :pkg-field:`extra-libraries-static` is not given, it defaults to
:pkg-field:`extra-libraries`. When :pkg-field:`extra-lib-dirs-static` is not
given, it defaults to :pkg-field:`extra-lib-dirs`. [#7536](https://github.com/haskell/cabal/pull/7536)
cabal-install 3.8.0.20220526 Changelog
---
### Significant changes
- Cabal init rewrite [#1074](https://github.com/haskell/cabal/issues/1074) [#6758](https://github.com/haskell/cabal/issues/6758) [#6864](https://github.com/haskell/cabal/issues/6864) [#7251](https://github.com/haskell/cabal/issues/7251) [#7255](https://github.com/haskell/cabal/issues/7255) [#7256](https://github.com/haskell/cabal/issues/7256) [#7273](https://github.com/haskell/cabal/issues/7273)
- Restructures the `cabal init` command to fix historical
issues. All flags are preserved.
- Codebases for interactive and non-interactive flags
are disentangled.
- Data structures now exploit relevant stanza structure
and formatters only care about stanza data
- Heuristics and prompts have a pure and impure implementation.
- Sets default behavior to be `--interactive` as opposed to
`--non-interactive`.
- Rewrites tests to achieve 98% coverage
- Golden files now test every stanza individually
- Every flag is covered by a unit test
- Interactive, simple, and non-interactive workflows are
covered.
- Make Paths_ modules work with non-standard preludes again [#7494](https://github.com/haskell/cabal/issues/7494) [#7649](https://github.com/haskell/cabal/issues/7649)
- Reverts #7510 that failed on Windows when used with pre-generated scripts included in packages such as network, time, process.
- Adds a subtler fix/workaround for the deficiencies of new autoconf versions on Windows.
- Windows: rewrite paths to configure [#7494](https://github.com/haskell/cabal/issues/7494) [#7649](https://github.com/haskell/cabal/issues/7649)
- Expose `cabal-install` as library [#1597](https://github.com/haskell/cabal/issues/1597) [#3781](https://github.com/haskell/cabal/issues/3781) [#4798](https://github.com/haskell/cabal/issues/4798) [#6090](https://github.com/haskell/cabal/issues/6090) [#7224](https://github.com/haskell/cabal/issues/7224) [#7358](https://github.com/haskell/cabal/pull/7358)
- Conditionals and imports in cabal.project files [#7556](https://github.com/haskell/cabal/issues/7556) [#7783](https://github.com/haskell/cabal/pull/7783)
Cabal.project files now allow conditional logic on compiler version, arch, etc. as well as imports of other local or remote project of freeze files (both old and new style).
### Other changes
- CI setup [#6959](https://github.com/haskell/cabal/pull/6959)
- Remove travis scripts
- Remove World file functionality [#6767](https://github.com/haskell/cabal/issues/6767) [#7746](https://github.com/haskell/cabal/pull/7746)
In v1-install, 'world' was used to trace what packages have been
installed, and re-install everything that is listed in it on-demand. However, in
v2-install, this is no longer needed, and outdated.
Additionally, 'world' code-path is probably not up-to-date, remove it instead of
having partial features.
- Don't generate `world` file in `~/.cabal` when `v1-install` is executed.
- Don't ever read `world` from `~/.cabal`.
- Remove meta-target `world` from `v1-install`.
- default configuration no longer written when config file is given explicitly [#7705](https://github.com/haskell/cabal/issues/7705) [#7715](https://github.com/haskell/cabal/pull/7715)
- When no config file exists, `cabal` commands will create a default one.
- This behavior is discontinued now when the config file is given explicitly
via the `--config-file` option or the `CABAL_CONFIG` environment variable.
- If no config file is given explicitly, and the default config file
(relative to `CABAL_DIR`) does not exist, it is created as it used to be.
- use `nroff -man | less` instead of `man` as backend for `cabal man` [#7714](https://github.com/haskell/cabal/issues/7714) [#7726](https://github.com/haskell/cabal/pull/7726)
The previous implementation of `cabal man` used `man` as backend to
view the generated manpage file. However, macOS' and BSD's `man` does
not accept a file as input, so `cabal man` was broken on macOS and
BSD.
The issue has been fixed by piping the generated manpage through
`nroff -man` and then into `$PAGER` which defaults to `less`. Thus,
`cabal man` now works both on Linux and macOS/BSD.
NB: `cabal man` requires `nroff` to be installed which is the case for
standard setups (but may not be case on slim setups like VMs used in
CI). Note that `nroff` is not necessarily a prerequisite of a package
containing `man`.
- Use Win32 >= 2.8 to get Win32.sYNCHRONIZE [#7835](https://github.com/haskell/cabal/issues/7835) [#7982](https://github.com/haskell/cabal/pull/7982)
#7982 also completes a changelog entry for Cabal-3.6.1.0, noting it is required for cabal-install >= 3.6
- Handle option argument parse errors without 'error' [#7573](https://github.com/haskell/cabal/issues/7573) [#7579](https://github.com/haskell/cabal/pull/7579)
- Errors parsing arguments such as `-v=3` no longer result in
stack traces.
- `Distribution.ReadE.readEOrFail` was removed.
- Add 'preferred-versions' support for LocalIndexRepo [#7294](https://github.com/haskell/cabal/issues/7294) [#7295](https://github.com/haskell/cabal/pull/7295)
- Previously, the only repo-index-type that reads the preferred-versions file is `RepoRemote`.
`LocalIndexRepo` now also supports parsing `preferred-versions` file, main purpose is to write tests.
As a nice side-effect, users can provide their own overlay over package sets to restrict or prefer certain package versions.
- Add 'preferred-versions' support for LocalIndexRepo [#5603](https://github.com/haskell/cabal/issues/5603) [#7249](https://github.com/haskell/cabal/issues/7249) [#7296](https://github.com/haskell/cabal/pull/7296)
- `cabal outdated` honours the 'preferred-versions' file which might deprecate or prefer certain
versions of packages. In particular, if the only newer version of a package has been deprecated,
`cabal outdated` should not report that there are newer versions available.
- changes to cabal v2-configure [#5591](https://github.com/haskell/cabal/issues/5591) [#7180](https://github.com/haskell/cabal/issues/7180) [#7405](https://github.com/haskell/cabal/issues/7405) [#7402](https://github.com/haskell/cabal/pull/7402)
- Removes the --dry-run part of the v2-configure command
- Adds --enable-append and --disable-append flags to v2-configure, which toggle the option for the new configuration to be appended to the old config file
- Adds --enable-backup and --disable-backup flags to v2-configure, which toggle the backup feature for the configuration file
- standalone tests for cabal init [#7410](https://github.com/haskell/cabal/issues/7410) [#7424](https://github.com/haskell/cabal/pull/7424)
- changes the behaviour of the --tests flag for cabal init,
see https://github.com/haskell/cabal/issues/7410#issuecomment-849913926
- adds a new value TestSuite for the PackageType type
- Print error message if not freeze file can be found [#7406](https://github.com/haskell/cabal/issues/7406) [#7440](https://github.com/haskell/cabal/pull/7440)
Instead of ignoring a missing .freeze file, abort execution and print an error message.
- Make cabal respect setgid permission bit when creating directories [#7560](https://github.com/haskell/cabal/issues/7560) [#7572](https://github.com/haskell/cabal/pull/7572)
- Previously cabal would override an admin's choice to use setgid on the
.cabal directory by using hardcoded file and directory modes upon
creation. Instead we now take what the system decides and only add to
that set of permissions.
- Glob expand extra-source-files when tracking for rebuild [#4746](https://github.com/haskell/cabal/issues/4746) [#7608](https://github.com/haskell/cabal/pull/7608)
- Since 3.4, extra-source-files have been tracked by cabal-install in the rebuild-checking logic. However, this tracking did not, until this PR, take into account glob-expansion.
- Improve error message when no test/benchmark is found [#5079](https://github.com/haskell/cabal/issues/5079) [#5255](https://github.com/haskell/cabal/issues/5255) [#7834](https://github.com/haskell/cabal/pull/7834)
When `cabal test` and the error message recommends setting `tests: True`, the next `cabal test` run is likely to fail with a solver error. The user might incorrectly conclude that setting `tests: True` made the problem worse, because the failure now occurs earlier (at solving time rather than at testing time).
By including the fact that a plan failure is expected in the error message, hopefully users will be more confident that setting `tests: True` was the right move, so they will be able to focus on the true cause of the problem: the fact that no plan including the tests exists.
- Better support for scripts [#5508](https://github.com/haskell/cabal/issues/5508) [#5698](https://github.com/haskell/cabal/issues/5698) [#6149](https://github.com/haskell/cabal/issues/6149) [#6354](https://github.com/haskell/cabal/issues/6354) [#7073](https://github.com/haskell/cabal/issues/7073) [#7842](https://github.com/haskell/cabal/issues/7842) [#7851](https://github.com/haskell/cabal/pull/7851) [#7925](https://github.com/haskell/cabal/pull/7925) [#7938](https://github.com/haskell/cabal/pull/7938) [#7990](https://github.com/haskell/cabal/pull/7990) [#7997](https://github.com/haskell/cabal/pull/7997)
- Script support improved or added across relevant commands.
- `cabal run script` will now cache results and will not do a fresh build every time.
- `cabal build script` added. It will build the cache for script.
- `cabal repl script` added. It will open a repl for script using the cache if available.
- `cabal clean script` added. It will clean the cache for script.
- `cabal clean` will now remove script caches for which there is no marching script.
- `cabal list-bin` now works with scripts
- The name of the generated script executable has been changed from "script" to
"cabal-script-<your-sanitized-script-name>" for easier process management.
- Reduce the default verbosity of scripts, so that the build output doesn't interfere with the script output.
- Scripts now support a project metadata block that allows them to use options
that would normally be set in a cabal.project file.
- Remove Distribution.Client.Compat.FilePerms [#7948](https://github.com/haskell/cabal/pull/7948)
- Remove the module Distribution.Client.Compat.FilePerms, since it's
both dead code and duplicates code from Distribution.Compat.CopyFile.
- Avoid malformed range requests [#5952](https://github.com/haskell/cabal/issues/5952) [#7970](https://github.com/haskell/cabal/pull/7970)
- Don't send malformed range requests. Should make fetching from head.hackage and other "unstable" overlays more reliable.
- Apply local options only to local packages [#7998](https://github.com/haskell/cabal/issues/7998) [#7973](https://github.com/haskell/cabal/pull/7973)
- Command-line `ghc-options` only applies to local packages
- `program-options` stanza only applies to local packages
- Improve error message for empty --allow-newer= [#7740](https://github.com/haskell/cabal/issues/7740) [#8140](https://github.com/haskell/cabal/pull/8140)
Instead of internal error, the message now explains that empty argument for
argument) means.
- Create Cabal-syntax for .cabal files [#7559](https://github.com/haskell/cabal/issues/7559) [#7620](https://github.com/haskell/cabal/pull/7620)
- 'cabal check' to fail when no upper bounds for base or Cabal are present in setup dependencies [#4683](https://github.com/haskell/cabal/issues/4683) [#5370](https://github.com/haskell/cabal/pull/5370) [#7409](https://github.com/haskell/cabal/pull/7409)
- Fix v2-haddock results in "unexpected status" [#6679](https://github.com/haskell/cabal/issues/6679) [#7843](https://github.com/haskell/cabal/pull/7843)
- cabal v2 commands (install, repl, run) uses duplicate global config and rebuilds libs twice in the store [#6907](https://github.com/haskell/cabal/issues/6907) [#7753](https://github.com/haskell/cabal/pull/7753) [#7759](https://github.com/haskell/cabal/pull/7759)
- '--repl-no-load' option skips startup modules load in REPL [#7541](https://github.com/haskell/cabal/issues/7541) [#7578](https://github.com/haskell/cabal/pull/7578)
- Fix post-checkout-command crash when 0 exit status bug [#7641](https://github.com/haskell/cabal/issues/7641) [#7847](https://github.com/haskell/cabal/pull/7847)
- Fix list-bin to only choose the selected component [#7679](https://github.com/haskell/cabal/issues/7679) [#7791](https://github.com/haskell/cabal/pull/7791)
- `cabal sdist` works in projects with `extra-packages` [#7698](https://github.com/haskell/cabal/issues/7698)
- Add -c alias for --constraint command line flag [#7765](https://github.com/haskell/cabal/issues/7765) [#7766](https://github.com/haskell/cabal/pull/7766)
- Ensure that v2-sdist command respects the --ignore-project flag [#7965](https://github.com/haskell/cabal/issues/7965) [#8109](https://github.com/haskell/cabal/pull/8109)
- Make enable/disable nix flags easier to read [#8036](https://github.com/haskell/cabal/issues/8036) [#8054](https://github.com/haskell/cabal/pull/8054)
- Add "prompt" strategy when symlinking binaries. [#5672](https://github.com/haskell/cabal/pull/5672)
- adds a verbosity flag "+nowarn", to suppress all warnings [#7286](https://github.com/haskell/cabal/issues/7286) [#7470](https://github.com/haskell/cabal/pull/7470)
- lazily decode cache files for checking invalidation [#7466](https://github.com/haskell/cabal/issues/7466) [#7516](https://github.com/haskell/cabal/pull/7516)
- Add --open flag to `cabal haddock` [#7366](https://github.com/haskell/cabal/issues/7366) [#7550](https://github.com/haskell/cabal/pull/7550)
- defer build-tools-depends choices as well as setup choices [#7532](https://github.com/haskell/cabal/pull/7532) [#7561](https://github.com/haskell/cabal/pull/7561)
- Fix running GHCJS executables [#6175](https://github.com/haskell/cabal/issues/6175) [#6361](https://github.com/haskell/cabal/issues/6361) [#7575](https://github.com/haskell/cabal/pull/7575)
- Support Git submodules in source-package-respository [#5536](https://github.com/haskell/cabal/issues/5536) [#7625](https://github.com/haskell/cabal/pull/7625)
- Add support for `--package-db` flags to v2 commands [#5773](https://github.com/haskell/cabal/issues/5773) [#7676](https://github.com/haskell/cabal/pull/7676)
- cabal init now takes an optional argument and treats it as root directory for the new package [#7871](https://github.com/haskell/cabal/issues/7871) [#7873](https://github.com/haskell/cabal/pull/7873)
- silence warning about world-file field being unrecognised for flat config files [#7894](https://github.com/haskell/cabal/issues/7894) [#7903](https://github.com/haskell/cabal/pull/7903)
- fix Ctrl-C handling during package download [#6322](https://github.com/haskell/cabal/issues/6322) [#7929](https://github.com/haskell/cabal/pull/7929)
- Fix the timestamp shown during cabal update [#7934](https://github.com/haskell/cabal/pull/7934)
- Remove bootstrapping plan files from version control, and simplify bootstrap update Makefile targets. [#7949](https://github.com/haskell/cabal/pull/7949)
- Sync repo darcs [#7137](https://github.com/haskell/cabal/pull/7137)
- *cabal-install-solver* Provide more context in error messages [#7468](https://github.com/haskell/cabal/issues/7468) [#7473](https://github.com/haskell/cabal/pull/7473)
- Error messages for misspelled extensions and languages now provide additional context.
- The error messages will provide a suggested fix if the misspelled extension or language is similar enough
to known languages and extensions.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment