All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.8.5 - 2026-04-21
--format jsonCLI option for machine-readable output (#251)
- Add
benchmarkas a dependency, required for Ruby 4
0.8.4 - 2026-02-06
- Ruby 4 support in CI
0.8.3 - 2025-11-20
- Normalize slash prefix in FilterSet support to work with the 'rails' profile (#244)
0.8.2 - 2025-11-15
- Fix NoMethodError in pretty_print for ignored multi-line branch results (#243)
0.8.1 - 2025-09-27
- Fix missing require in the simplecov formatter causing potential load errors if SimpleCov wasn't required first
- Fix SimpleCov filters (#239 by @loadkpi)
0.8.0 - 2025-08-28
- Filter out files ignored by simplecov using
add_filter(#234) - Add LF and LH parsing to LcovParser for simplecov-lcov 0.9 compatibility
- Fix an
Undercover::Resultedge case causing errors with ignored branches on uningnored lines
0.7.4 - 2025-07-13
- Fix
fnmatchforFilterSetto support glob braces (sets) in--include-filesand--exclude-files
0.7.3 - 2025-07-13
- Improve Options#parse with glob braces support, strip quotes properly from .undercover config files
- Fix Result#coverage_f to support ignored branches
- Fix error parsing JSON coverage with branch coverage disabled (#231)
- Fixed NoMethodError and Errno::ENOENT that were occurring when coverage report doesn't exist (#232)
0.7.2 - 2025-07-07
- Resolved errors when .lcov files doesn't exist using
--lcovCLI flag andguess_lcov_path
0.7.0 - 2025-07-03
- New native SimpleCov formatter that generates coverage data directly without requiring LCOV conversion (#223)
--simplecov -sCLI option to specify coverage JSON file path as an alternative to LCOV and future default (#223)- Improved path handling for projects running in nested subdirectories or monorepo setups (#223)
:nocov:support to skip coverage analysis for specific code blocks works again after a regression in0.6+(#223)
0.6.6 - 2025-07-01
- Bugfix in
max_warnings_limitfollowing (#229)
0.6.5 - 2025-07-01
- Improved performance for large PRs with lazy diff enumeration (#229)
0.6.4 - 2025-03-29
- Fix more false positives due to source file / coverage locator issues (#222)
0.6.3 - 2024-12-23
- Fix false positives with empty blocks/methods on a single line (#216) by @splattael.
- Updated list of default excluded directories (added
db/andconfig/)
0.6.0 - 2024-12-12
- Add support for including and exluding files by glob patterns, supplied through CLI args and the configuration file (#146)
- Files that were changed but don't appear in the coverage report at all will now be reported as uncovered, as expected.
- Fixed an issue where top-level methods were not being considered #135. This was caused by a bug in the tree traversal logic.
- Fixed a bug where
--comparedidn't work with grafted commits as there was no merge base available (#175). Now it's possible to pass a graft commit as--comparewhich enablesundercoverto work with shallow clones.
0.5.0 - 2024-01-09
- Drop ruby 2.x support, require ruby 3.x in gemspec
- Dev dependency updates
0.4.7 - 2024-01-08
0.4.6 - 2023-04-21
- #total_coverage and #total_branch_coverage in the LcovParser
- Drop support for ruby < 2.7
- Test coverage with both local
undercoverand Undercover GitHub App for demo purposes
0.4.5 - 2022-07-28
- Update
ruggeddependency to< 1.6
0.4.4 - 2021-11-29
- Dependency updates
0.4.3 - 2021-03-16
- Branch coverage without line coverage marked as uncovered - fix by @GCorbel
0.4.1 - 2021-03-11
- Fix zero-division edge case resulting in NaN from Result#coverage_f
0.4.0 - 2021-02-06
- Minimal implementation of branch coverage in LCOV parser by @magneland
- Branch coverage output support in Undercover::Formatter
- Min Ruby requirement bumped to 2.5.0
- Dependency updates: Rubocop 1.0 and Rugged 1.1.0
0.3.4 - 2020-04-05
- Updated parsing performance by scoping
all_resultsto git diff - Dependecy updates
0.3.3 - 2019-12-29
.gemspecrequiresimagen >= 0.1.8to address compatibility issues
0.3.2 - 2019-05-08
- LCOV parser fix for incorrect file path handling by @RepoCorp
0.3.1 - 2019-03-19
- Compatibility with
pronto > 0.9andrainbow > 2.1
0.3.0 - 2019-01-05
- Support for
.undercoverconfig file by @cgeorgii
0.2.3 - 2018-12-26
--ruby-syntaxtypo fix by @cgeorgii
travis.ymlupdate by @Bajena
0.2.2 - 2018-12-16
- Change stale_coverage error into a warning
0.2.1 - 2018-09-26
- Bug in mapping changed lines to coverage results
0.2.0 - 2018-08-19
- This
CHANGELOG.md - Ruby syntax version customisable with
-ror--ruby-syntax
- Relative and absolute project path support
- typo in stale coverage warning message by @ilyakorol
0.1.7 - 2018-08-03
- Readme updates by @westonganger.
- Handled invalid UTF-8 encoding errors from
parser
0.1.6 - 2018-07-10
- Updated
imagento0.1.3which avoids a broken release ofparser
0.1.5 - 2018-06-25
- Avoided conflicts between
rainbowandprontoversions for use in upcomingpronto-undercovergem
0.1.4 - 2018-05-20
- Quick fix 🤷♂️
0.1.3 - 2018-05-20
imagenversion bump adding block syntax support
0.1.2 - 2018-05-18
--versioncli option fix
0.1.1 - 2018-05-17
- CLI exit codes on success error
- First release of
undercover🎉