Core packages can be incorrect?
tfausak opened this issue · 1 comments
I'm not at all familiar with the Stackage curator, so I apologize if this is not the correct repository. I was brought here more or less by a Reddit thread.
As far as I can tell, the Stackage curator is responsible for coming up with a list of so-called "core" packages. That's what the getCorePackages
function does. A core package is anything that ghc
itself depends on. The list of dependencies comes from ghc-pkg describe
, which spits out a package specification.
This all makes sense to me, but I think there's a problem with it: If the Stackage curator is run with a different version of GHC than the resolver, the list of core packages could be different. I assume that ghc
's dependencies don't change all that often, but I do get different results based on the compiler version.
7.10.2 | 7.10.3 | 8.0.1 | 8.0.2 | 8.2.0.21070507 |
---|---|---|---|---|
array | array | array | array | array |
base | base | base | base | base |
. | . | binary | binary | binary |
bin-package-db | bin-package-db | . | . | . |
bytestring | bytestring | bytestring | bytestring | bytestring |
containers | containers | containers | containers | containers |
. | . | . | deepseq | deepseq |
directory | directory | directory | directory | directory |
filepath | filepath | filepath | filepath | filepath |
. | . | ghc-boot | ghc-boot | ghc-boot |
. | . | . | ghc-boot-th | ghc-boot-th |
. | . | ghci | ghci | ghci |
hoopl | hoopl | hoopl | hoopl | hoopl |
hpc | hpc | hpc | hpc | hpc |
process | process | process | process | process |
template-haskell | template-haskell | template-haskell | template-haskell | template-haskell |
. | . | . | . | terminfo |
time | time | time | time | time |
transformers | transformers | transformers | transformers | transformers |
unix | unix | unix | unix | unix |
Is this a problem?
No, there's no problem. We discussed this a bit on Slack, and:
- stackage-curator expects the correct version of GHC to be on the PATH, and checks that this happens
- It also correctly identifies deepseq as a core package
We could argue about whether the current behavior of Stack regarding rebuilding of core packages is a good idea or not for the GHC release candidate use case, but that's orthogonal to this discussion.