mietek/halcyon

`--ignore-all-constraints` doesn't seem to be honored.

Closed this issue · 3 comments

I'm running this command:

> /app/halcyon/halcyon install /source --ignore-all-constraints --sandbox-extra-apps=.halcyon-ghc-7.8.4/sandbox-extra-apps

There is no .halcyon/constraints file in the package (at /source).
The sandbox-extra-apps is there to add Alex and Happy but does't affect this bug report.

Halcyon output is as follow:

-----> Self-updating bashmenot... done, 5165edd
-----> Examining cache contents
       halcyon-cabal-1.20.0.3.tar.gz
       halcyon-cabal-1.20.0.3-hackage-2015-02-16.tar.gz
       halcyon-ghc-7.8.4.tar.gz

-----> Installing hadley-0.0.0
-----> Installing GHC and Cabal
       External storage:                         public
       GHC version:                              7.8.4
       Cabal version:                            1.20.0.3
       Cabal repository:                         Hackage

-----> Using existing GHC directory

-----> Locating Cabal directories
       Listing https://halcyon.global.ssl.fastly.net/?prefix=linux-ubuntu-14.04-x86_64/halcyon-cabal-1.20.0.3-hackage-... done
-----> Restoring base Cabal directory
       Extracting halcyon-cabal-1.20.0.3.tar.gz... done, 13MB
-----> Updating Cabal directory
       Updating Cabal package database... done, 186MB
-----> Archiving Cabal directory
       Creating halcyon-cabal-1.20.0.3-hackage-2015-02-22.tar.gz... done, 20MB

-----> Determining constraints
       cabal: Could not resolve dependencies:
       trying: hadley-0.0.0 (user goal)
       trying: base-4.7.0.2/installed-bfd... (dependency of hadley-0.0.0)
       next goal: directory (dependency of hadley-0.0.0)
       rejecting: directory-1.2.1.0/installed-07c..., 1.2.1.0, 1.2.0.1, 1.2.0.0
       (conflict: hadley => directory==1.1.*)
       rejecting: directory-1.1.0.2 (conflict: base==4.7.0.2/installed-bfd...,
       directory => base>=4.4 && <4.6)
       rejecting: directory-1.1.0.1 (conflict: base==4.7.0.2/installed-bfd...,
       directory => base>=4.2 && <4.5)
       rejecting: directory-1.1.0.0 (conflict: base==4.7.0.2/installed-bfd...,
       directory => base>=4.2 && <4.4)
       rejecting: directory-1.0.1.2, 1.0.1.1, 1.0.1.0, 1.0.0.3, 1.0.0.0 (conflict:
       hadley => directory==1.1.*)
       Dependency tree exhaustively searched.
   *** ERROR: Failed to determine constraints

In particular, note that it rejects directory because it says hadley (the package being installed) specifies a specific version. I thought that the --ignore-all-constraints would give something similar to manually removing all bounds from the .cabal file.

Please note this option is intended to ignore version constraints declared with the HALCYON_CONSTRAINTS option, or in the constraints field of a cabal.config file — and not version constraints which may be included in the build-depends field of a Cabal package description file. This should be made clear in the documentation.

Ok, I was wondering about that. Thanks.

This is now tracked as mietek/halcyon-website#1.