...
 
Commits (2)
synopsis: Cabal-QuickCheck package with `Arbirary` instances
prs: #6557 #6891
issues: #6882
packages: Cabal
synopsis: Create Cabal-tree-diff package with `ToExpr` instances
prs: #6789
packages: Cabal
synopsis: `Cabal.Distribution.Compiler`: add `Traversable` instance for `PerCompilerFlavor`
prs: #6763
packages: Cabal
synopsis: Add active-repositories configuration
packages: cabal-install
prs: #6724 #6868 #6968
issues: #6819
significance: significant
description: {
New `active-repositories` `cabal.project` fields allows
specifying an order and ways various package repositories are combined.
The active `active-repositories` is saved in `cabal.project.freeze`.
}
synopsis: Tests additions
prs: #6753 #6759 #6802 #6842 #6872
issues: #6409
description: {
- Add shrinker, so writing big non-generic product shrinkers is easier
- Add `hs-source-dirs: NL .` test-case
- Add public multilib test(s)
}
synopsis: Backported to 3.2
packages: Cabal-internal
prs:
-- solver
#5918 #6447
-- buildinfo generator
#6258
-- bump version
#6426
-- cabal install -z
#6428
-- incomplete-uni-patterns
#6433
-- packages/optional packages empty
#6436
-- file+noindex
#6448
-- documentation
#6450 #6464 #6473 #6546
-- bounds
#6455
-- safe functions
#6456
-- Improve few internalErrors in InstallPlan
#6439
-- v2-run -z
#6457
-- test fixes
#6463 #6499 #6518
-- CI
#6469
-- show full abi hash
#6498 #6496 #6476
-- Create distTempDirectory in withTempEnvFile
#6501
-- cabal_macros.h zinza
-- TODO: check whether it made to 3.2
-- issue: #6533
#6502 #6535
-- disallow spaces around : in dependency
#6538
-- pkg-config
#6540 #6541
synopsis: Backported to 3.4
prs: #6968 #6964
synopsis: Change `BuildReports` parse/pretty to use FieldGrammar framework
prs: #6783
packages: cabal-install
synopsis: Various `cabal init` improvements
packages: cabal-install
prs: #6619 #6661 #6641 #6650 #6603 #6632 #6607 #6678 #6690 #6705 #6723 #6676 #6677
issues: #6150 #6675
significance: significant
description: {
- Default to `cabal-version: 2.4`
- `cabal` doesn't force a default license choice anymore
- Licenses are always asked using SPDX expression
- Fix an infinite loop when invalid license was passed on command line
- `Setup.hs` is not written anymore
- Default to --source-dir=src and --application-dir=app
- Add `FileCreators.generateCabalFile` unit tests.
- Default cabal init application-dir to `app`, and source-dir to `src`.
- Default to SPDX.NONE license in cabal init interactive mode.
}
synopsis: `cabal list` accepts regular expression
packages: cabal-install
prs: #6618 #6806
issues: #4267 #6683
significance: significant
synopsis: Tell users about `cabal.project.local~` in `cabal v2-configure`
prs: #6877
packages: cabal-install
synopsis: Rework `v2-sdist` command
packages: cabal-install
issues: #6635 #5813 #2940 #6611 #6514
prs: #6454 #6637 #6640 #6660 #6666 #6884 #6916
significance: significant
description: {
`v2-sdist` marks all files as readonly in resulting tarballs.
The #2940 "cabal sdist should touch preprocessed .hs files" issue
is fixed by virtue of not doing any preprocessing anymore.
It's responsibility of packager.
The #6611 "v2-sdist includes a file twice in the tarball " issue
is fixed as we don't consider only one file list,
not two separate executable and ordinary file lists.
The #6514 "unpack doesn't preserve (executable) permissions" issue
is partially resolved, as there shouldn't be executable permissions
in the tar files.
The rationale for above simplification is simple. The only file
Cabal machinery would run is `configure` script. These
are run with explicit `sh` program. For package internal scripts,
maintainers should also use interpreters explicitly as well.
Scripts with shebangs are not executable on Windows.
The `v1-sdist` command is removed, as its functionality is completely
superseded by `v2-sdist`.
}
synopsis: Add cabal-version: 3.4
prs: #6663
significance: significant
description: {
See various changes in https://cabal.readthedocs.io/en/latest/file-format-changelog.html#cabal-version-3-4
}
synopsis: Improvements to cabal-testsuite framework
prs: #6643
desciption: {
- setupAndCabalTest uses cabal act-as-setup for cabal part
}
synopsis: Refactor cabalInstallVersions, add make doctest-cli
packages: cabal-install
prs: #6720
synopsis: Changelog entries
packages: Cabal-internal
prs: #6634 #6950
synopsis: Version bumps and changelog entries
packages: cabal-development
prs: #6957 #6976
synopsis: CI tweaks
packages: Cabal-internal
prs:
#6494
#6518
#6559
#6564
#6571
#6577
#6578
#6579
#6585
#6617
#6636
#6709
#6827
#6831
#6900
#6902
#6914
#6946
issues:
#6500
#6945
synopsis: CI setup
prs: #6959
description: {
- Remove travis scripts
}
synopsis: Code organization
prs: #6599 #6642 #6734 #6745 #6746 #6817 #6818 #6821 #6867
prs: #6963 #6970 #6974 #6975 #6960
description: {
- Split `Distribution.Client.Types` module
- Move cabal-testsuite code into `src/`
- Add `ProjectFlags`
- Add `NixStyleOptions`
- Internal refactorings to install command.
- Make own modules for `InstallMethod` and `OverwritePolicy`
- Make cabal-install compilable with `NoImplicitPrelude`
- Refactor shared `TargetProblem` data types into their own module.
- Template `cabal-install.cabal` using zinza
- Move Cabal sources into Cabal/src
- Move cabal-install sources to cabal-install/src/
- Move doc/ to the top-level of the repository
- Add stylish-haskell config.
}
synopsis: Update copyright years to 2020
prs: #6644
synopsis: Dependency type refactorings
packages: Cabal
prs: #6798 #6768 #6895 #6896 #6897 #6898
issues: #5570 #6894
significance: significant
description: {
With additions of (public) sublibraries, `Dependency` type use for multiple needs become painful.
Therefore a new type `PackageVersionConstraint` was added to serve *constraint on package* use-case.
`Dependency` type is *dependency on a library component*, i.e. representing `build-depends` entry.
- Use PackageVersionConstraint more
- Add NonEmptySet and use it in Dependency
}
synopsis: The grammar of most package description fields is formally documented
prs: #6591 #6593 #6704 #6766 #6778 #6780 #6781 #6791 #6800
description: {
See https://cabal.readthedocs.io/en/latest/buildinfo-fields-reference.html
}
synopsis: Documentation updates and typo-fixes
prs:
#6613 #6560 #6660 #6668 #6669 #6697 #6761 #6940
#6504 #6550 #6686 #6928 #6954 #6953 #6951
synopsis: Documentation improvements
prs: #6971
description: {
Write highlights
}
synopsis: Add -fexpose-all-unfoldings to parsec and Cabal in release project
packages: cabal-install
prs: #6708
description: {
This makes parser faster with acceptable code-size increase.
}
synopsis: Flag assignment parsing refactorings
prs: #6854 #6858
issues: #6853
synopsis: Support GHC-8.12
prs:
#6735 #6844 #6865 #6848 #6908 #6947
#6552 #6553 #6563 #6545
issues: #6903 #6904 #6905
significance: significant
description: {
- Support for `-this-package-key` deprecation
- Use process `createPipe`
- Add support for WINIO to Cabal
- Adopt to simplfied subsumption changes
There are no magical `IO = WithCallStack Prelude.IO` alias in Cabal,
as it is hard to get working with GHC-8.12's simplified subsumption.
}
synopsis: Fix ghci being launched before other sources are built.
prs: #6923
description: {
Related to foreign calls to C-sources.
}
synopsis: Remove new- command from `--help` output (there are v2-)
prs: #6930
packages: cabal-install
synopsis: More rich `index-state` syntax. `v2-freeze` saves `index-state`.
packages: cabal-install
prs: #6596 #6581 #6597 #6591 #6682 #6733
issues: #6728
significance: significant
synopsis: Installing (copy or symlink) executable message prints destination.
prs: #6590 #6582
packages: cabal-install
synopsis: Check sha256 if `#sha256=...` fragments are given to URIs
packages: cabal-install
prs: #6576
synopsis: all extra-source-files are change-tracked
packages: cabal-install
issues: #4746
prs: #6889
synopsis: `upload --help` now includes `password-command` as a config file option (#5224)
packages: cabal-install
issues: #5224
prs: #6609 #6313 #6680
synopsis: Use PrettyField to format cabal file in `cabal init`
packages: cabal-install
prs: #6718
issues: #5555
synopsis: `source-repository-package` directories aren't local
packages: cabal-install
issues: #5586
prs: #6917 #6915
significance: significant
description: {
Concretely these means that compiled `source-repository-package` entries
used in different projects are stored in the global nix-style store.
}
synopsis: Use default install directory if not specified
packages: cabal-install
prs: #6624
issues: #5973
description: {
Cabal 3.0.0.0 added the --installdir option to specify the location that
binaries should be installed in. Running a cabal user-config update would
populate the config file with the default value, but the cabal install program
would error if it wasn't set. This change uses the default value that would be
written to the config if its unset, and outputs a warning.
}
synopsis: Treat `pkg:sublib` dependency syntax as is in `cabal-version: 3.4`
issues: #6083
prs: #6907 #6893
significance: significant
description: {
In `cabal-version: 3.4` cabal files the dependency definition
```cabal
build-depends: somesublib
```
is not using in-package sublibraries. You have to be explicit and write
```cabal
build-depends: thispkg:somesublib
```
This fixes an issue, where it was impossible to refer to extenral
library, if you had sublibrary of the same name.
}
synopsis: Default to 'NoReports' for remote build reporting
packages: cabal-install
issues: #6210
prs: #6625
synopsis: Add foo:bar syntax to mixins
issues: #6281
prs: #6912
synopsis: default-language field is optional in cabal-version: 3.4
prs: #6926 #6924
issues: #6288
synopsis: Allow cabal v2-install pkgname:exename
packages: cabal-install
prs: #6576
issues: #6369
synopsis: Allow cabal v2-install http://
packages: cabal-install
prs: #6576
issues: #6393
synopsis: Split `KnownRepoType` out of `RepoType`
packages: Cabal
issues: #6432
prs: #6612
synopsis: Include component name in unit-id
issues: #6485
prs: #6547
synopsis: Update GHC environment location
prs: #6822
issues: #6565
packages: cabal-install
description: {
cabal-install currently assumes that the GHC environment files are always located in `$HOME/.ghc/`.
However, GHC itself doesn't query the home directory directly.
Instead, it uses `getAppUserDataDirectory "ghc"` which happens to coincide with `$HOME/.ghc`/ on UNIX systems.
On Windows, however, GHC ends up looking in `%APPDATA%/ghc/`.
}
synopsis: cabal v2-install prints copy/symlink destination
packages: cabal-install
prs: #6582 #6890
issues: #6575
synopsis: Remove `-any` and `-none` syntax for version ranges in cabal-version: 3.4
issues: #6589
prs: #6786
description:
Use `>=0` (or empty in dependencies) and `<0` respectively.
synopsis: Add pijul to known repository type
issues: #6610
prs: #6684
description: {
Pijul is now explicitly recognized version control system.
However `cabal-install` isn't yet able to use it in
`source-repository-package`.
}
synopsis: Prepend hs-source-dir to match-component, fixes `cabal repl file`
packages: cabal-install
prs: #6623 #6826 #6875
issues: #6622
synopsis: Remove upgrade, uninstall and win32selfupgrade commands
packages: cabal-install
issues: #6691
prs: #6707
description: {
This commands were not implemented or are special purpose.
The removal of `win32selfupgrade` might break self upgrade on windows,
when `cabal-install` tries to rewrite the binary of itself.
This shouldn't be a problem when symlinking is used.
}
synopsis: Rename Flag to CompilerFlag and PackageFlag
packages: Cabal
issues: #6710
prs: #6725
description: {
There was three Flag's. Now they are
- `Flag` (cli parsing)
- `PackageFlag`
- `CompilerFlag`
This allows wild-imports without `hiding (Flag)`.
}
synopsis: Remove local-repo
packages: cabal-install
issues: #6729
prs: #6730
description: {
This functionality was mainly used by removed sandboxes.
`file+noindex` repositories are better variant for local package repositories.
}
synopsis: Change 'optional-packages' default to empty, when cabal.project is mising.
issues: #6739 #4797
prs: #6740
synopsis: v2-update reports new index-state
packages: cabal-install
issues: #6804
prs: #6810
synopsis: Fix rpmvercmp (trailing non-digit characters)
issues: #6805
prs: #6808
synopsis: Add list-bin command
packages: cabal-install
issues: #6807
prs: #6931
significance: significant
description: {
`cabal list-bin executable-component` tells the path to the build artifact.
}
synopsis: Add `-z` / `--ignore-project` flag to `cabal v2-update`
packages: cabal-install
issues: #6809
prs: #6814
synopsis: Adjust message indicating `--lib` is likely desired
packages: cabal-install
issues: #6856
prs: #6857
synopsis: cxx-sources, asm-sources and cmm-sources are change-tracked
packages: cabal-install
issues: #6869
prs: #6870
synopsis: Accept "linux-androideabi" as an alias for Android for determining buildOS
prs: #6949 #6301
packages: Cabal
description: {
`Cabal` will able to parse `linux-androideabi` from the value of `System.Info.os`.
}
synopsis: Change manpage command to man
packages: cabal-install
prs: #6548
synopsis: other changes
prs:
-- Expand elem
#6556
-- Add forEachGPD to hackage-tests
#6598
-- Add Pretty Component instance
#6910
synopsis: Package description parser benchmark
prs: #6594
synopsis: Add `licenceIsFsfLibre`
packages: Cabal
prs: #6878
synopsis: Add `+stderr` modifier to `Verbosity`
prs: #6929
synopsis: Mark public-libs as experimental feature
prs: #6605
synopsis: Add support for multiple public libraries to the solver
packages: cabal-install
issues: #6039
prs: #6836 #6812 #6047
description: {
cabal-install can now take into account the presence and visibility of
sublibraries when solving. This also means that, when using cabal-install,
multiple public libraries support is extended to GHCs older than 8.8.
The support is limited to source packages for now.
}
synopsis: Refactor Distribution.PackageDescription module
prs: #6855
packages: Cabal
description: {
Now it re-exports a collection of modules, not individual symbols.
}
synopsis: Remove sandboxes
packages: cabal-install
prs: #6747
issues: #6445
significance: significant
description: {
Sandbox functionality is remove in favour of now default nix-style builds.
}
synopsis: Remove text type-class
packages: cabal-install
prs: #6764 #6777 #6784 #6785 #6793 #6794
description: {
`Text` type-class was removed from `Cabal`, but it still lived in `cabal-install`.
Now it is finally removed.
`cabal-install` is still using `ReadP` parsers for various things though.
}
synopsis: Add rewriteFileLBS and use it to write setup wrapper
packages: Cabal
prs: #6574
synopsis: Add SPDX License List 3.9
prs: #6662 #6944
issues: #6879
synopsis: Change specVersion to have CabalSpecVersion type
packages: Cabal
prs: #6653
synopsis: Windows install symlinks
packages: cabal-install
prs: #5684 #6506 #6519
description: {
`cabal-install` will try to infer whether symlinking is supported on Windows,
and make symlinks in `install`. Otherwise it will fallback to copying files.
Either way can be forced with `--install-method`.
}
synopsis: Use process jobs when spawning subprocesses
prs: #6529 #6536
description: {
Many toolchain tools written for POSIX systems rely on the exec system
call. Unfortunately, it is not possible to implement exec in a
POSIX-compliant manner on Windows. In particular, the semantics of the
exec implementation provided by the widely-used msvcrt C runtime
will cause process's waiting on the exec'ing process to incorrectly
conclude that the process has successfully terminated when in fact it is
still running in another process.
For this reason, the process library exposes the use_process_jobs
flag to use a more strict (although still not POSIX-compliant) mechanism
for tracking process completion.
This is explained in [the Process.hs comment](https://github.com/haskell/process/blob/master/System/Process.hs#L399)
Unfortunately, job support in the process library is currently quite
broken and was only recently fixed. Consequently, we only enable job
object support for process releases >= 1.6.8.
}
synopsis: Better UTF8 handling, parsed `ShortText` is now valid.
packages: Cabal
prs: #6588
synopsis: More checks in version range parser
prs: #6586
synopsis: Remove `AnyVersion` and `WildcardVersion` constructors from `Version`
packages: Cabal
prs: #6742
description: {
This changes makes `Version` type less "syntactic",
i.e. contains less constructors for semantically same version ranges.
}
synopsis: Require cabal-versions `>=1.25` to be exact
prs: #6654
synopsis: Add and use weeder
prs: #6779 #6790