* Provide an empty coverage report when package has no coverage - When covering a project with multiple packages, the project coverage report will produce a table of individual coverage reports for each package. The links in this table don't go anywhere when a package is uncovered (they are broken links). - By producing an empty coverage report when a package has no coverage, we fix the broken links, and provide a tad more information about the coverage state of that package. * Improve project coverage report index page - Provide a link to the union/all coverage report. - Format the reports as a list instead of a table of one column. - Provide better explanation of what each report means. * Add warning explaining modules with no coverage - Modules that have no coverage at all are simply not included in the HTML reports generated by HPC. - Add a warning to the project coverage report index page so users are aware of this limitation of HPC. * Simplify interface of coverageReport - Remove the concept of "package boundaries" from the "coverageReport" function. - The "coverageReport" is now a function of: - arbitrary checks generating tix files - arbitrary mix modules - This more closely reflects the usage of hpc, which doesn't care about package boundaries. - Use this new "coverageReport" function to simplify the "projectCoverageReport" implementation. A project coverage report now simply: - copies out constituent coverage reports. - writes out an "all coverage report" using all checks in the project and all mix modules.. - writes out a summary index page. |
||
---|---|---|
.buildkite | ||
.github/workflows | ||
builder | ||
compiler | ||
docs | ||
hix | ||
lib | ||
materialized | ||
mk-local-hackage-repo | ||
modules | ||
overlays | ||
patches | ||
scripts | ||
test | ||
.gitattributes | ||
.gitignore | ||
bors.toml | ||
build.nix | ||
changelog.md | ||
ci-lib.nix | ||
ci.nix | ||
config.nix | ||
COPYING | ||
default.nix | ||
dimension.nix | ||
flake.lock | ||
flake.nix | ||
hackage-src.json | ||
mkdocs.yml | ||
package-set.nix | ||
README.md | ||
release-linux-only.nix | ||
release.nix | ||
shell.nix | ||
snapshots.nix | ||
stackage-src.json |
haskell.nix
is infrastructure for building Haskell packages with Nix
haskell.nix
can automatically translate your Cabal or Stack project and
its dependencies into Nix code.
Documentation
- Introduction
- Getting Started
- Troubleshooting
- Explore the documentation from there to find further topics.
Help! Something isn't working
The #1 problem that people have when using haskell.nix
is that they find themselves building GHC.
This should not happen, but you must follow the haskell.nix
setup instructions properly to avoid it.
If you find this happening to you, please check that you have followed the
getting started instructions and
consult the corresponding troubleshooting section.
The troubleshooting documentation also contains some help for other common issues. Please give it a read before asking on IRC or opening an issue.
If you're still stuck, join the #haskell.nix channel on irc.libera.chat, or open an issue.
Related repos
The haskell.nix
repository contains the runtime system for building
Haskell packages in Nix. It depends on other repos, which are:
-
nix-tools
— provides the programs for generating Nix expressions from Haskell projects. -
hackage.nix
— the latest contents of the Hackage databases, converted to Nix expressions. -
stackage.nix
— all of the Stackage snapshots, converted to Nix expressions.