From 2019 onwards, all notable changes to tarpaulin will be documented in this file.
- The
CARGO_TARPAULIN_TARGET_DIR
environment variable may be used to set the default target directory for tarpaulin artifacts. The command line argument has precedence.
- Find target folder from metadata if not provided and place reports there (fixes running from packages inside workspaces)
- Using date-locked toolchains no longer defaults to trying to use a toolchain with the channel name and no date
- The following CLI options now take effect even when a custom config file is
in place:
output-dir
,target-dir
,root
,coveralls
,ciserver
,report-uri
.
- Ignore hidden files and folders based on a dot prefix to the folder or filename
- Update object and if an ELF section can't be parsed return an io error instead of letting it continue with an empty section
- Removed forcing of
opt-level
to 0 - When
--debug
is provided now print the cargo command/arg list and pass-vvv
to cargo - Create target directory if option given via
--target-dir
doesn't exist
- Fill in
CARGO_PKG_NAME
,CARG_PKG_VERSION
,CARGO_PKG_AUTHORS
andCARGO_MANIFEST_DIR
environment variables when launching tests - Filter out executables where profile test is false and run type is
Tests
- Can now pass a list of values for
--run-types
- Get manifest directory for packages in workspace so working directory is the same as before 0.12.0
- Concept of logical lines to map multiple physical lines to a single line for statistics added for split lets statements
- Reverted Dockerfiles to full images added dockerfiles with
-slim
postfix for slim images - Added cURL to the slim images
todo!()
macros are now ignored with the--ignore-panics
flag- The HTML output report will no longer fail if a previous run contains a source file that no longer exists
- Process expression preceding method call in source analysis
- Add support for JSON output, including public functions for querying reports programmatically.
- Pulled
trace
function out ofrun
inmain.rs
in order to expose public function for creatingTraceMap
structs. - Moved Dockerfiles to slim images
- Change in coverage between last 2 runs in HTML report
- Filter attributes on match arms
- Add toml config files for multiple runs with merged reports and
--config
and--ignore-config
options
- Now instrument multiple points in the same binary for the same line to remove false negatives
- Filter out constants from coverage results
- Dropped log dependency to 0.4.8 as later versions have been yanked
- Filtering of attributes on
loop
,for
andwhile
expressions - Added support for
lcov.info
report
- Updated dependencies including
Cargo
to mitigate #319
--locked
and--frozen
options to mirrorcargo test
options--target-dir
option to mirrorcargo test
andcargo build
options--offline
option to mirrorcargo test
andcargo build
options
- Fixed issue where examples were ran with
RunType::Tests
- No longer pass
--quiet
to examples - Updated futures test for stable features
- Split up docker run stages to optimise build times and added
.dockerignore
- Added Benchmarks to
RunType
to allow coverage of benchmark tests to be collected - Added Examples to
RunType
to allow coverage of examples to be collected - Instructions for integration to Gitlab pipelines to
README.md
--no-run
option to build tests and not collect coverage- Added run-to-run coverage change reporting through saving the previous run in
target/tarpaulin/coverage.json
- Sets an environment variable
TARPAULIN
to1
when starting so inferiors can detect coverage runs - Limit the processor affinity to a single core to solve #190
- Switch from travis-ci to github actions
- Updated phrasing of error messages on invalid
--out
and--output-dir
command line options - Replaced error printout in statemachine with
log::error
- Check callable arg count to prevent removing callables with no return from coverable lines
- Removed test-threads limit from traced tests solving #190
- Ignore empty executables generated by doctests with
no_run
annotation to avoid parsing errors
- Created
CHANGELOG.md
- Add
--manifest-path
option - Add
--output-dir
option
- Ignore lines containing "}else{"
- Use relative file paths to base_dir (env::current_dir() or --root option if set)
- Use
HashSet
for XML package deduplication in cobertura fixing a codecov rendering issue
- Updated dependencies including cargo so tarpaulin works with
default-run
manifest option
- Fixed function ignoring logic where non-test functions with the ignored attribute weren't ignored
- Updated
README.md
for CircleCI - Updated
README.md
instructions for Docker on Windows
- tarpaulin returns a non-zero error code if test compilation fails
- Added tests for covering match expressions
- Added tests for covering path expressions
- Added tests for doc-test coverage
- Fix unicode handling in json for html reports
span-locations
feature forproc-macro2
removing need for semver-exempt and updatedREADME.md
- Added persistent URLs to HTML report when navigating source
- Updated
cargo
,gimli
,git
,nix
,object
andquick-xml
- Cobertura report now generates name attribute for the package tag
- See 0.8.3 for changes
- See 0.8.3 for changes
- Tarpaulin run type for doc-tests setting
RUSTDOCFLAGS
flag - Added loading of Apple dSYM files
- Save non-persistent reports when debug flag is present
- Populate CI server information for coveralls
- Populate git info in coveralls report
- Debug prinouts for tarpaulin for debugging
- Moved
statemachine
andprocess_handling
modules in preparation for cross-platform support - Go into closures in syntax analysis
- Moved state machine handling to use an event queue system
- Added more attributes for classes in Cobertura reports
- Updated
cargo
,env_logger
,failure
,log
andnix
- Improved structure and layout of cobertura reports
- Added result de-duplication when using doc-tests
- Formatting for HTML characters in JSON files
- Correct path detection for HTML reports
- Made test paths relative to Cargo manifest
- Failure crate for improved error handling
- Added HTML reports
- Added pull-request template
- Moved to Rust 2018 edition
--Release
option to run tarpaulin with tests built in release mode- Tests for coverage of assign operations
- Changed
--skip-clean
to--force-clean
to make skipping clean default - Visit return statements in
source_analysis
to handle attributes - Updated
cargo
,fallible-iterator
,libc
,rustc-demangle
,syn
- Updated Dockerfile for rust 2018 and
procmacro2_semver_exempt
working on stable
- Removed
publish-lockfile
fromCargo.toml
- Updated
nix
,regex
, andsyn