Commit Graph
4 Commits
Author SHA1 Message Date
Leon Anavi a4d91adc6b python3-gcovr: Upgrade 8.6 -> 8.7
Upgrade to release 8.7:

Breaking changes:

- Jinja2 environment for HTML report is now created with
  undefined=StrictUndefined to raise an error if a variable is not
  defined in the template.
- Links to lines in HTML reports now use L<line> instead of a
  l<line>.
- Rename config key txt-metric (string) to txt-metrics (list of
  strings in TOML and multiple entries in gcovr.config). Remove the
  deprecated aliases -b, --txt-branches and --branches.
- Adjust column width of total count in text reports.

New features and notable changes:

- Improve HTML report:
  - Improve wrapping of the counter in the default theme.
  - Replace meter with div elements in the default theme (like in
    GitHub themes).
  - Add jinja2 rendering for CSS files.
  - Add new HTML themes boost.green and boost.blue.
  - Show excluded lines, branches, ... in the summary only if there
    are any.
  - Remove the branches summary and columns if there are no
    branches in the report, e.g all branches are excluded by
    patterns or comments.
  - Replace default theme with github theme which is the new
    default one. If the prefix github. isn't used a warning is
    printed which will turn into an error in a the next version.
- Add compare mode for JSON, text and HTML reports.
- Stub missing line coverage for branches in LLVM source based code
  coverage format.
- Add support for TOML files with --config
- Add --fail-under-condition-or-decision with
  --fail-under-condition and --fail-under-decision as synonyms,
  change the key for the configuration file.
- Add support for multiple metrics in one text report and add
  support for condition coverage.
- Warn if a option is used which has no effect when processing
  tracefiles.
- Add options to restrict where GCOV is executed to prevent
  generating temporary files in arbitrary directories. Write
  protected files are now skipped by default.

Bug fixes and small improvements:

- Fix runtime problem introduced with 8.4.
- Fix boost HTML details and simple output.
- Fix boost HTML support for Conditions, Decisions and Calls
  optional stats.
- Add excluded metrics to boost HTML template.
- Fix alignment in summary header of HTML single page report.
- Fix link to lines in HTML single page report.
- Preserve coverage for procedures declared in Fortran modules.
- Fix missing branches and conditions for uncovered lines in HTML
  report.
- Fix KeyError when merging tracefiles in which only some report a
  function position.

Documentation:

- Add section about gcov options which should not be used to FAQ.
- Add separate option groups for each format.

Internal changes:

- Add CSS and JS files to all folders where a HTML reference file
  is present.
- Refactor internal data model from a flat list to a tree which
  matches the folder structure of the source files. Also add a
  properties element which is cleared after each report format to
  store meta data for the report generation and update the dicts in
  the HTML report to use it.
- Activate sorting of includes for ruff.
- Add gcc-16, clang-21 and clang-22 to the test suite.
- Use different python versions for testing in docker depending on
  Ubuntu version.
- Activate most checks of ruff.
- Update CI runner images.
- Always use GCOVR fixture in tests.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-20 07:51:43 -07:00
Leon Anavi 56f4b30c99 python3-gcovr: Upgrade 8.3 -> 8.5
Upgrade to release 8.5:

Breaking changes:

- The option --lcov-test-name doesn't accept values with spaces
  anymore.
- The option --lcov-format-1.x is deprecated and mapped to
  --lcov-format-version=1.x.
- Changes to HTML templates.

New features and notable changes:

- Due to added support for LLVM source based code coverage format
  some configuration file keys got changed. The old gcov named
  options are still supported but they also affect the LLVM
  toolchain.

Bug fixes and small improvements:

- Fix coveralls report if there are several coverage elements per
  line.
- Fix not excluded conditions if branches are excluded by comments.
- Fix reported excluded branches in LCOV report.
- Fix exclusion filter --gcov-exclude.
- Add --json-trace-data-source to include the trace data source in
  the JSON report independent from --verbose.
- Remove generated gcov files on error and catch additional gcov
  error message.
- Change default HTML theme excluded line color.
- Move theme colors to a separate CSS file so they can be overridden
  with a simple --html-template-dir directory with only the
  style.colors.css file.
- Fix regular expression for detecting a version mismatch between
  gcc and gcov.
- Improve logging messages for GCOV execution errors to not print
  information twice and add trace messages for gcov execution.
- Fix handling of lines after function specialization.
- Improve performance by changing logging messages (level and lazy
  interpolation).
- Fix text report for covered decisions.
- Fix runtime problem introduced with 8.4.
- Fix wrong entries in data source attribute of JSON report.
- Fix nested HTML report without coverage data.
- Add warning if coverage data is empty.
- Add warning if function lines are missing in external generated
  GCOV files.
- Extend support for zipped reports. If last suffix is .xz then
  LZMA is used to compress the report.
- Fix function exclusion in report generation.
- Do not ignore lines without functions, e.g. from inlined code.
- Ignore all whitespaces instead of only spaces for detection of
  noncode lines.
- Add support for temporary merging line coverage objects without
  modifying the data model.
- Change internal behavior of --exclude-function-lines to exclude
  the line of function definition instead of removing it completely.
- Ensure that all functions have a line coverage element in LCOV
  report.

License-Update: Update years

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2026-01-12 08:53:49 -08:00
Martin Jansa 3366a012c5 python3-gcovr: fix build with newer hatch-fancy-pypi-readme
It was upgraded in:
https://lists.openembedded.org/g/openembedded-core/message/216335

and now this fails with:
* Getting build dependencies for wheel...

ERROR Missing dependencies:
hatch-fancy-pypi-readme==24.1.0

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-05-14 08:37:28 -07:00
Leon Anavi 94b44822d5 python3-gcovr: Upgrade 8.2 -> 8.3
Upgrade to release 8.3:

- Replace setup.py with hatchling. To install from source at least
  version 21.3 of pip is needed.
- Drop support for Python 3.8.
- Add condition coverage to text summary report.
- Add --include to search files in search paths which should be
  added to report.
- Add option to generate LCOV format produced by version 1.x of
  LCOV tool.
- Extend logging for data merge errors with info about the data
  sources.
- Add condition coverage merge mode option --merge-mode-conditions
- Add --gcov-suspicious-hits-threshold to configure the value for
  detecting suspicious hits in GCOV files.
- Renamed JSON element destination_blockno to destination_block_id.
- Add --html-block-ids to show the block ids of the lines and
  branches in HTML report.
- Fixed an error handling bug throwing a TypeError exception on a
  gcov merge assertion failure instead of reporting the error and
  (if requested by the user) continuing execution
- Check format version of external generated gcov JSON files.
- Fix crash on Windows when trying to fix the case of the files.
- Fix LCOV report. Excluded lines where added with a count of 0.
- Fix line exclusion not clearing all child coverage data.
- Fix summary stats in JaCoCo report.
- Fix path issue when reading/writing Coveralls report.
- Fix issue with negative counters in GCOV JSON export.

License-Update: Update year

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-03-06 06:58:00 -08:00