haskellstackagelts

Is a package excluded from Stackage LTS because of an omitted dependency?


I'm a bit confused about how a dependency on a package affects including it in Stackage LTS; specifically, if

does package A have to be excluded from LTS-X.Y, particularly if


Solution

  • I'll copy/paste my answer on github


    does package A have to be excluded?

    No, it doesn't have to be excluded. Here's why:

    even if the only reason B is excluded is because of a test suite dependency

    In this case, we can add B to the build plan and mark it under the skipped-tests section in order to avoid pulling in its test suite dependencies. This is true of both LTS and nightly snapshots.

    (However, a preferable course of action would be to remedy B's dependency issue so that the test suite can be run.)


    To further clarify, in response to @bergey's answer:

    packages are only included if the package's maintainer agrees to keep it up to date with respect to its dependencies

    This is only true of packages explicitly included. Some packages are transitive dependencies, which are included implicitly, and are not necessarily held to such strict standards. (However, in the future we may eliminate the concept of implicit inclusion and instead include all packages explicitly.)

    Exceptions can also be made so that a package may be included, even though its test suite or its benchmarks have incompatible dependency constraints with the snapsnot.

    Of course the preferred way to go is to not need to make such exceptions, and we encourage all maintainers to keep all of their build targets up to date.

    Finally, allow me to note that this question would probably be more well suited for the stackage mailing list, which is admittedly not well publicied or utilized.