-
Notifications
You must be signed in to change notification settings - Fork 696
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
Spurious warning: The package has an extraneous version range for a dependency on an internal library #5119
Comments
Yeah this me. My refactor PRs should fix this, but if there are too much for 2.1 should we do something else? You can bisect the test suit to see when. |
#4383 caused this. |
@Ericson2314 is it easy (or possible) to fix without big (including data-type) changes? |
Actually, there might be. The type changes more help make sure its done correctly than fix the problem in itself. Basically, i need to make sure that checking always comes after whatever elaborates the package-local build tool depends. |
And we'd technically need to like phantom type |
@phadej I think what would be easiest is to do the |
@Ericson2314 than I'd opt to revert #4383 in 2.2 branch, this warning is so annoying (and plain wrong), we cannot have release with this either. EDIT because there's hardly time to review refactoring, at least I don't have. I'm very very sorry. |
Also note that #4383 landed only 8 days ago. IMO too late for release. |
@phadej No worries, I'm fine with reverting on 2.2. I meant backporting the fix without refactors, to be clear, but agreed that last PR is not that much less invasive than the others. |
As of #5148 this is just a problem on master. |
This is going to be a problem for 2.4. |
How about just knocking the warning down to an info, as a temporary hack, with the intention of bumping it back up once we're no longer generating the spurious warnings with a proper fix? #4383 seems good and we'd want to keep it in; also, I've got no idea how well a revert would apply six months later (and especially not so close to release...). |
How close is 2.4? |
AIUI, any day now. Ben Gamari said that the 8.6 beta released a few days ago is likely to be the final GHC pre-release, and making the official GHC 8.6.1 release blocks on Cabal 2.4 being cut. |
Ah OK. Then hacks are in order. |
The only thing I'd say is #4265 might fix it. Furthermore, it used to work for all but 7.4, and now that is removed, so I can try rebasing it again. But it's also a bigger change before the release. |
Issue haskell#5119 is tracking spurious generation of these warnings. There are a lot of them! We can't release with so many false positives, so just squelch the warning outright. This is a hack and this commit should be reverted if we get a proper fix that can be backported to the 2.4 branch.
Issue haskell#5119 is tracking spurious generation of these warnings. There are a lot of them! We can't release with so many false positives, so just squelch the warning outright. This is a hack and this commit should be reverted if we get a proper fix that can be backported to the 2.4 branch.
Issue #5119 is tracking spurious generation of these warnings. There are a lot of them! We can't release with so many false positives, so just squelch the warning outright. This is a hack and this commit should be reverted if we get a proper fix that can be backported to the 2.4 branch.
Hi everybody! Would you like to work on this issue? Last moment to snatch it before it gets assigned to an AI robotic assembly for automatic fixing. Seriously, @fgaz just switched the milestone, which means it will be fixed RSN. Please contribute --- there is even a hint in a recent comment pinpointing the offending line (no refunds if it's more than one line). @Ericson2314: any extra hint from you? |
The finding by @quetz above is nice but simply removing
|
Now that we've just commented out the offending check for now, what should we do with this issue? Keep it around as a reminder to try to re-enable it fixed? Ignore it? |
Honestly I don't think this check is important enough to do further work on -- its just a "cleanliness" check that can be disregarded, so I vote close. |
@gbaz I think we discovered that there was no case in which that error was ever needed or even accurate. |
ok, plonk |
It is accurate If user writes: name: my-package
version: 0.1
library
...
test-suite my-tests
...
build-depends: my-package ==0.1 And this is silly. Right now Hackage rejects such packages. With the fix in, it will accept them. This is not the end of the world, but it is a regression. There shouldn't be such extraneous version bounds, the check in |
@phadej in that case, wouldn't the solver always spit out either a build plan with that exact version, or no plans whatsoever (because differing versions on internal libraries is nonsensical)? In that case, the warning is either an error (no build plan could be found), or it warns you about valid syntax being valid (which is not a warning scenario). Unless we plan on introducing |
Just to bump with the relevant commentary: #7470 (comment) |
The current "fix" was to remove that check. I think it's not a "fix", but rather a (hopefully) temporary workaround. I want to see that check reintroduced. This is a principle: there is a condition where we want to issue a warning, than we should be able to. Currently we cannot because (for whatever reason) there are false positives. |
I want to see |
@phadej so the question for me now reviewing that pull request again, is why the warning was being thrown during general build, when it's clearly defined for So the question now is why was it entangled with the general build workflow? It seems to me that a lot of our problems stem from the way that cabal is architectured leads to intense coupling where there need not be any. And I still don't agree that it's even a valid error considering it's caught by the solver, an architectural problem on our end, and it's valid syntax. Worse than being a bug, it's straight up confusing and poor UX. |
@emilypi You asked a good question: nobody looked into. (I don't know either). |
- The haskell.nix cabal now works, so that's nice. - We can use the nice multiple-subdirs feature in cabal.project to cut out a lot of repetition. Note we get annoying warnings about extraneous version ranges due to haskell/cabal#5119.
- The haskell.nix cabal now works, so that's nice. - We can use the nice multiple-subdirs feature in cabal.project to cut out a lot of repetition. Note we get annoying warnings about extraneous version ranges due to haskell/cabal#5119.
- The haskell.nix cabal now works, so that's nice. - We can use the nice multiple-subdirs feature in cabal.project to cut out a lot of repetition. Note we get annoying warnings about extraneous version ranges due to haskell/cabal#5119.
There aren't such additional version restriction:
To help bisecting:
previous
cabal-install-head
(from around 2017-01-15) didn't had this issue, IIRC.The text was updated successfully, but these errors were encountered: