hpc-codecov alternatives and similar packages
Based on the "Data" category.
Alternatively, view hpc-codecov alternatives based on common mentions on social networks and blogs.
-
semantic-source
Parsing, analyzing, and comparing source code across many languages -
lens
Lenses, Folds, and Traversals - Join us on web.libera.chat #haskell-lens -
code-builder
Packages for defining APIs, running them, generating client code and documentation. -
text
Haskell library for space- and time-efficient operations over Unicode text. -
compendium-client
Mu (μ) is a purely functional framework for building micro services. -
unordered-containers
Efficient hashing-based container types -
cassava
A CSV parsing and encoding library optimized for ease of use and high performance -
holmes
A reference library for constraint-solving with propagators and CDCL. -
resource-pool
A high-performance striped resource pooling implementation for Haskell -
primitive
This package provides various primitive memory-related operations. -
binary
Efficient, pure binary serialisation using ByteStrings in Haskell. -
discrimination
Fast linear time sorting and discrimination for a large class of data types -
audiovisual
Extensible records, variants, structs, effects, tangles -
reflection
Reifies arbitrary Haskell terms into types that can be reflected back into terms -
dependent-sum
Dependent sums and supporting typeclasses for comparing and displaying them -
dependent-map
Dependently-typed finite maps (partial dependent products) -
IORefCAS
A collection of different packages for CAS based data structures. -
safecopy
An extension to Data.Serialize with built-in version control -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions -
orgmode-parse
Attoparsec parser combinators for parsing org-mode structured text! -
scientific
Arbitrary-precision floating-point numbers represented using scientific notation -
uuid-types
A Haskell library for creating, printing and parsing UUIDs -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of hpc-codecov or a related project?
README
hpc-codecov
The hpc-codecov
package contains an executable and library codes
for generating Codecov JSON coverage report from
.tix
and .mix
files made with
hpc.
The hpc-codecov
executable does not try to find out the location
of .tix
and mix
files. Instead, let the user to explicitly
specify the file paths and directories. The rational behind the
decision is to support multiple versions of multiple build tools, such
as cabal-install
legacy v1-style build, v2-style build, and
stack.
Examples
Following shows two examples for generating test coverage report of
the hpc-codecov
package itself, one with cabal-install
Nix-style local build commands, and another with stack
.
With cabal-install
First, run the tests with coverage option to generate .tix
and
mix
files:
$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
$ cabal v2-configure --enable-test --enable-coverage
$ cabal v2-test
Then generate a Codecov JSON coverage data from the .tix
and
.mix
files:
$ proj=hpc-codecov-0.1.0.0
$ tix=$(find ./dist-newstyle -name $proj.tix)
$ mix=$(find ./dist-newstyle -name vanilla -print -quit)/mix/$proj
$ hpc-codecov --mix=$mix --exclude=Paths_hpc_codecov --out=codecov.json $tix
The --out
option specifies the output file to write the JSON
report. Observing the contents of codecov.json
with
jq
:
$ jq . codecov.json | head -10
{
"coverage": {
"src/Trace/Hpc/Codecov/Error.hs": {
"27": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"51": 0,
Send the resulting JSON report file to Codecov with the bash
uploader. The file name
codecov.json
is listed in the uploader script as one of the file
name patterns to upload, no need to specify the report filename
explicitly:
$ bash <(curl -s https://codecov.io/bash)
According to the Codecov FAQ, the uploader should work from Travis, CircleCI, and AppVeyor for public projects without Codecov token.
With stack
Build the package and run the tests with coverage option:
$ stack --numeric-version
2.3.3
$ stack build --test --coverage
As done in cabal-install
example, specify the path of .tix
and
.mix
files. Using path
sub-command to get the local hpc root
directory and dist directory:
$ hpcroot=$(stack path --local-hpc-root)
$ tix=$(find $hpcroot -name 'test-main.tix')
$ mix=$(stack path --dist-dir)/hpc
$ hpc-codecov --mix=$mix --exclude=Paths_hpc_codecov -o codecov.json $tix
Then send the resulting report file:
$ bash <(curl -s https://codecov.io/bash)