Open phadej opened 6 years ago
I don't think the solver has any support for disabling components or tracking intra-package dependencies yet. It combines all of the libraries and executables' dependencies here: https://github.com/haskell/cabal/blob/ff32a4ea718095af7e1f0f09dee9efb7cea23570/cabal-install/Distribution/Solver/Modular/IndexConversion.hs#L194-L198
It also ignores dependencies on internal libraries: https://github.com/haskell/cabal/blob/ff32a4ea718095af7e1f0f09dee9efb7cea23570/cabal-install/Distribution/Solver/Modular/IndexConversion.hs#L177-L181
@Mikolaj this ticket hasn't seen activity in a few years. Any particular circumstances that would cause bumping priority at this time?
@gbaz: it's related to #6039 that users are keen to see solved. Also I'd love to learn what's the status of this one and of #6039.
@Mikolaj This issue depends on #6039, but I think that the best way to fix it is by finishing implementing the per-component dependency solving in #4087, which would allow the solver to enable individual components. Is there a reason that this specific part is higher priority now?
I think you're right, yes, that per-component dependency solving subsumes this. The specific issue where this was biting us was like this:
I think that's a manifestation of this particular ticket, but I agree that the per-component dependency solving should fix it.
I'm a bit lost. I understand this here issue (#5413), not https://github.com/haskell/cabal/issues/6039, is the one that hampers @michaelpj, his team, users of his software, etc. But is https://github.com/haskell/cabal/issues/6039 required to solve #5413, or is it one of the ways to solve it, the preferred one being https://github.com/haskell/cabal/issues/4087, or do the two overlap somehow and/or perhaps https://github.com/haskell/cabal/issues/4087 solves https://github.com/haskell/cabal/issues/6039 as well?
I'm asking, because I'd like to downgrade the priority of https://github.com/haskell/cabal/issues/6039 based on how long ago users expressed interest and how it's related to other tickets. (Of course these are not the only indicators of priority, but given that we are understaffed right now, the cooperation or outright PR creation by users is super important.)
But is https://github.com/haskell/cabal/issues/6039 required to solve https://github.com/haskell/cabal/issues/5413,
I think @grayjay tries to say that there is no known easier&faster way to solve either of these than to solve them in principal way by implementing https://github.com/haskell/cabal/issues/4087
If it helps, #6039 and #5413 should be listed as related issues in #4087, among ones already there.
E.g. this issue is very much the same as https://github.com/haskell/cabal/issues/2725, just s/executable/internal lib/
.
I don't understand the landscape here. https://github.com/haskell/cabal/issues/6039 and https://github.com/haskell/cabal/issues/4087 look similar to me as an outsider, but I'm unsure if there's actually a significant difference.
This issue probably does not represent the root cause: I think @grayjay is right to say that the root cause is one of those two issues. But this issue accurately describes the issue that I see, which is why I posted here.
I realized that the relationship between the issues is more complex than I described:
cabal-plan has an internal lib, which depends on
base-orphans ^>= 0.7
, but main-library doesn't depend on that component. There's also an automatic flag, which could turn out the executable component (which depends on the internal lib).EDIT even explicitly saying
cabal new-build --constraint='cabal-plan -exe'
doesn't help.