Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Confusing behavior when package depends on a specific Cabal version #134

Closed
pikajude opened this issue Feb 22, 2018 · 2 comments
Closed

Comments

@pikajude
Copy link

I have a project that's pinned to Cabal 2.0.* because it parses Cabal files and requires a specific parser version.

There are two things that were confusing for me when I started setting up a haskell-ci travis file for my repo:

  1. Building with the INSTALLED constraint will only work on GHC 8.2.2, where the installed Cabal version happens to match the one I requested
  2. Even building without INSTALLED, the GHCHEAD cabal config file specifies allow-newer: *:Cabal, which breaks my build because, as far as I understand it, it tries to build with Cabal 2.1.0.0 (which is installed during the setup process). Obviously my package doesn't yet compile with Cabal 2.1 as the API has changed quite a bit.

Is there a straightforward way to make those two cases work for packages that require a specific version for only a single builtin package?

@phadej
Copy link
Collaborator

phadej commented Feb 23, 2018

  1. You can disable that check with --no-installed, there is no way to filter out only single package.
  2. Don't test with GHC-HEAD / GHC-8.4 :) Even if Cabal-2.0 compiles with GHC-HEAD / GHC-8.4, old Cabal + new GHC is not a good idea in general.

@phadej
Copy link
Collaborator

phadej commented Feb 11, 2019

See this package. You can pin all but Cabal ghc boot libs with installed: +all -Cabal.

@phadej phadej closed this as completed Feb 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants