A fork of haskell.nix with a more efficient GHCJS 8.10 compiler
Go to file
Samuel Evans-Powell 0dca71e2f3
Improve coverage reports (#1548)
* 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.
2022-07-19 19:40:41 +12:00
.buildkite Better support for allow-import-from-derivation=false (#1474) 2022-06-02 20:11:27 +12:00
.github/workflows Update windows-secp256k1 github action (#1428) 2022-04-05 18:53:13 +12:00
builder Add nixpkgs-2205 and update other nixpkgs pins (#1506) 2022-07-17 18:18:19 +12:00
compiler Use targetPackages.ncurses for ghc cross compiler (#1513) 2022-06-11 08:37:16 +12:00
docs Supporting ca-derivations experimental feature (#1494) 2022-06-23 12:39:35 +12:00
hix Flakify all inputs (#1180) 2021-08-06 15:54:39 +12:00
lib Improve coverage reports (#1548) 2022-07-19 19:40:41 +12:00
materialized Add nixpkgs-2205 and update other nixpkgs pins (#1506) 2022-07-17 18:18:19 +12:00
mk-local-hackage-repo Don't use allowSubstitutes=false (#1389) 2022-03-03 15:17:42 +13:00
modules enable internal-interpreter flag for ghc (#1536) 2022-07-02 21:07:09 +12:00
overlays Improve coverage reports (#1548) 2022-07-19 19:40:41 +12:00
patches Fix ghc 9 windows cross compilation (#1450) 2022-05-19 20:21:16 +12:00
scripts Fixes for materialization (#1514) 2022-06-15 00:27:05 +12:00
test Add nixpkgs-2205 and update other nixpkgs pins (#1506) 2022-07-17 18:18:19 +12:00
.gitattributes Update ghc 8.4.4 based tools to ghc 8.6.5 (#618) 2020-05-21 11:31:26 +12:00
.gitignore bump nix tools (#476) 2020-03-06 17:19:45 +08:00
bors.toml Add bors.toml to enable bors 2020-03-05 12:22:57 +13:00
build.nix Default reinstallableLibGhc to true (#1498) 2022-06-02 13:21:12 +12:00
changelog.md Improve support for external Hackage repositories (#1370) 2022-02-18 00:42:11 +13:00
ci-lib.nix Flakify all inputs (#1180) 2021-08-06 15:54:39 +12:00
ci.nix Add nixpkgs-2205 and update other nixpkgs pins (#1506) 2022-07-17 18:18:19 +12:00
config.nix Remove openssl-1.0.2u from list of whitelisted insecure packages (#1492) 2022-05-31 11:00:36 +12:00
COPYING License Apache 2.0 2019-04-29 11:08:31 +08:00
default.nix Update flake-compat (#1252) 2021-09-28 17:26:52 +13:00
dimension.nix Tidy ci.nix using dimension (#500) 2020-03-20 20:52:34 +13:00
flake.lock Update Hackage and Stackage 2022-07-19 01:53:26 +00:00
flake.nix Add nixpkgs-2205 and update other nixpkgs pins (#1506) 2022-07-17 18:18:19 +12:00
hackage-src.json Update Hackage and Stackage 2021-08-06 01:13:20 +00:00
mkdocs.yml fix typo (#1213) 2021-08-25 11:51:47 +12:00
package-set.nix Updated system-nixpkgs-map.nix and a default for X11 package (fixes #984) (#988) 2021-01-08 13:10:00 +13:00
README.md fix readme links (#1326) 2022-01-02 10:38:31 +08:00
release-linux-only.nix Add GHC 9.0.1 (#1032) 2021-03-28 21:03:20 +13:00
release.nix ifdLevel 3 2022-05-13 10:59:32 +12:00
shell.nix Flakify all inputs (#1180) 2021-08-06 15:54:39 +12:00
snapshots.nix Default reinstallableLibGhc to true (#1498) 2022-06-02 13:21:12 +12:00
stackage-src.json Update Hackage and Stackage 2021-08-05 01:13:16 +00:00

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

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.

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.