Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support cabal.projects #84

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sevanspowell
Copy link
Contributor

  • Allow user to specify "package directories" corresponding to the
    source directories of packages in a cabal.project.
  • Add functionality required to allow the user to specify the hpc data
    search directories explicitly, rather than searching for it in the
    usual places. This is primarily motivated by the Nix package
    manager, where hpc output is usally written to some folder outside
    of the current directory (e.g. to
    /nix/store/HASH-my-lib-0.1.0.0/share/hpc) as well as cabal.projects,
    where the hpc output directory might be
    "dist-newstyle/build/$platform/$compiler/$package/hpc". Multiple hpc
    directories can be specified, for e.g., one for each package in a
    cabal.project.
  • The filepath listed in a mix file doesn't include the sub-directory
    of the package in a cabal.project. So for cabal.projects, the
    filepath used as the index in the TestSuiteCoverageData is now
    prefixed with the sub-directory of the package. The behaviour when
    not using the "--package-dir" argument, or when using "--package-dir
    ./" is unchanged.
  • Gave a Monoid instance to TestSuiteCoverageData so we can easily use
    folds to sum the data up.
  • Separated the coveralls.io specific logic and the coverage data
    logic. The coverage data could be re-used for other coveralls-style
    tools.
  • Source files are now excluded before searching for them, so that if
    the file does not exist, it does not throw an error (primarily
    motivated by out-of-source builds such as Nix, where modules such as
    Path_library.hs can't be found in the build directory).
  • Changed the structure of getCoverageData a little, and added some
    commentary, so each of the steps required to read all the coverage
    data are a bit clearer.

- Allow user to specify "package directories" corresponding to the
  source directories of packages in a cabal.project.
- Add functionality required to allow the user to specify the hpc data
  search directories explicitly, rather than searching for it in the
  usual places. This is primarily motivated by the Nix package
  manager, where hpc output is usally written to some folder outside
  of the current directory (e.g. to
  /nix/store/HASH-my-lib-0.1.0.0/share/hpc) as well as cabal.projects,
  where the hpc output directory might be
  "dist-newstyle/build/$platform/$compiler/$package/hpc". Multiple hpc
  directories can be specified, for e.g., one for each package in a
  cabal.project.
- The filepath listed in a mix file doesn't include the sub-directory
  of the package in a cabal.project. So for cabal.projects, the
  filepath used as the index in the TestSuiteCoverageData is now
  prefixed with the sub-directory of the package. The behaviour when
  not using the "--package-dir" argument, or when using "--package-dir
  ./" is unchanged.
- Gave a Monoid instance to TestSuiteCoverageData so we can easily use
  folds to sum the data up.
- Separated the coveralls.io specific logic and the coverage data
  logic. The coverage data could be re-used for other coveralls-style
  tools.
- Source files are now excluded before searching for them, so that if
  the file does not exist, it does not throw an error (primarily
  motivated by out-of-source builds such as Nix, where modules such as
  Path_library.hs can't be found in the build directory).
- Changed the structure of getCoverageData a little, and added some
  commentary, so each of the steps required to read all the coverage
  data are a bit clearer.
@sevanspowell
Copy link
Contributor Author

cc @guillaume-nargeot

@JasonSome
Copy link

This repository seems dead years now... I cannot even make it work with the new Cabal 3.0.0 and GHC >= 8.8.

@sevanspowell
Copy link
Contributor Author

@JasonSome Yep, I've figured as much.

As for working with newer versions of Cabal, this might help: sevanspowell@3193755

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants