I was compiling a package that needed to relax some upper bounds. I had set allow-newer-deps
but didn't set allow-newer
. I know this is required as per documentation, and it failed in an expected way, but the messaging is confusing:
WARNING: Ignoring hoauth2's bounds on memory (^>=0.17); using memory-0.18.0.
Reason: allow-newer-deps are specified but allow-newer isn't enabled.
WARNING: Ignoring hoauth2's bounds on text (>=0.11 && <1.3); using text-2.0.1.
Reason: allow-newer-deps are specified but allow-newer isn't enabled.
Error: [S-4804]
Stack failed to construct a build plan.
While constructing the build plan, Stack encountered the following errors:
In the dependencies for hoauth2-2.7.0:
memory-0.18.0 from Stack configuration does not match ^>=0.17 (latest matching version is
0.17.0)
text-2.0.1 from Stack configuration does not match >=0.11 && <1.3 (latest matching
version is 1.2.5.0)
needed due to yesod-auth-oauth2-0.7.0.3 -> hoauth2-2.7.0
Some different approaches to resolving this:
* Set 'allow-newer: true'
in /home/patrick/.stack/config.yaml to ignore all version constraints and build anyway.
* Recommended action: try adding the following to your extra-deps
in /home/patrick/code/freckle/yesod-auth-oauth2/stack-nightly.yaml:
- memory-0.17.0@sha256:ebbd89ead51a2d80176ed2f842d4f7d8d7ac41843783aa429527fc69c471cbbf,4619
- text-1.2.5.0@sha256:791f0f6c97ed96113f17ab520cf0efe1a3a4f883a8c85910a5660567c8241c40,7895
You'll notice:
WARNING: Ignoring hoauth2's bounds on memory (^>=0.17); using memory-0.18.0.
This is not true, it's not going to do this. If it did, it would not fail.
Reason: allow-newer-deps are specified but allow-newer isn't enabled.
That's true, and is the information I needed, but it's not the "reason" for the "warning", right?
I think this case should instead look something like this:
WARNING: Ignoring allow-newer-deps because allow-newer isn't enabled
Error: [S-4804]
Stack failed to construct a build plan.
While constructing the build plan, Stack encountered the following errors:
In the dependencies for hoauth2-2.7.0:
memory-0.18.0 from Stack configuration does not match ^>=0.17 (latest matching version is
0.17.0)
text-2.0.1 from Stack configuration does not match >=0.11 && <1.3 (latest matching
version is 1.2.5.0)
needed due to yesod-auth-oauth2-0.7.0.3 -> hoauth2-2.7.0
Some different approaches to resolving this:
* Set 'allow-newer: true'
in /home/patrick/.stack/config.yaml to ignore all version constraints and build anyway.
* Recommended action: try adding the following to your extra-deps
in /home/patrick/code/freckle/yesod-auth-oauth2/stack-nightly.yaml:
- memory-0.17.0@sha256:ebbd89ead51a2d80176ed2f842d4f7d8d7ac41843783aa429527fc69c471cbbf,4619
- text-1.2.5.0@sha256:791f0f6c97ed96113f17ab520cf0efe1a3a4f883a8c85910a5660567c8241c40,7895
Steps to reproduce
I can put together a reproduction if necessary, but I think my description above should be sufficient.
allow-newer
to compileallower-newer-deps
, but not allow-newer
A warning saying dependency bounds are NOT being ignored because allow-newer-deps
is present but allow-newer
is not specified.
A warning saying dependency bounds ARE being ignored because allow-newer-deps
is present but allow-newer
is not specified.
stack --version
Version 2.9.3, Git revision 6cf638947a863f49857f9cfbf72a38a48b183e7e x86_64 hpack-0.35.1
Method of installation
Your platform (machine architecture and operating system)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4