haskell / haskell/cabal

Deterministic solver output

Open
#4,332 2 comments 0 reactions 0 assignees View on GitHub
cabal-install: solver type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

CC @grayjay

I wanted to add expect tests for the dependency solver but unfortunately the output wobbles depending on the state of built in packages. For example:

```
@@ -7,7 +7,6 @@
cabal: Could not resolve dependencies:
trying: custom-setup-1.0 (user goal)
next goal: custom-setup:setup.Cabal (dependency of custom-setup-1.0)
-rejecting: custom-setup:setup.Cabal-1.24.0.0/installed-1.2... (conflict: custom-setup => custom-setup:setup.Cabal<1.20)
-rejecting: custom-setup:setup.Cabal-1.18.0.0 (constraint from minimum version of Cabal used by Setup.hs requires >=1.20)
+rejecting: custom-setup:setup.Cabal-1.18.1.5/installed-inp..., custom-setup:setup.Cabal-1.18.0.0 (constraint from minimum version of Cabal used by Setup.hs requires >=1.20)
fail (backjumping, conflict set: custom-setup, custom-setup:setup.Cabal)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: custom-setup, custom-setup:setup.Cabal
```

Is there anything we could do to make this totally deterministic, even when the global packages change?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.