Skip to content

Releases: xaizek/uncov

v0.5: performance & git worktrees

18 Nov 17:57
v0.5
50c0d85
Compare
Choose a tag to compare

Not many changes here, but a nasty bug was fixed, worktrees are handled well now and performance of adding a build went up by an order of magnitude or so (depends on GCC version in use, project size and how coverage is collected).

General

  • Create index on files table of the database. This bumps database version even though its schema doesn't actually change. The change grows database size a bit, but makes addings new reports significantly faster.

Core and CLI

  • Handle git worktrees (config and database are looked up first in parent's .git now).
  • Use "current_working_directory" key of gcov's JSON.
  • Take advantage of --stdout option of gcov if present. new-gcovi works significantly faster thanks to it and with less I/O.
  • Fixed one use-after-free.

Vim-plugin

  • Update Vim plugin for newer fugitive API.

Building

  • Remove -Werror from Makefile.
  • Make it work better with clang.

v0.4: uncov.ini, `gcov --json-format`, `uncov help`

08 Jun 12:29
v0.4
8e6c87a
Compare
Choose a tag to compare

Configuration file, JSON-based intermediate format of gcov, help subcommand and other improvements.

General

  • Pin version of the license to be AGPLv3 only.

Core and CLI

  • Add help builtin command which details commands and their usage.
  • Parse .git/uncov.ini configuration file for settings.
  • Implement name-binning of gcov input files to work around its bug. This fixes use of new-gcovi with GCC 8.
  • Support gcov --json-format by new-gcovi, which makes it usable with GCC 9 and newer.

Web-UI

  • Make UI look better on smaller screens.
  • Fix links to builds having number separators.

uncov-gcov

  • Add --cpp-dtor-invocations option (by Fabian Wermelinger).
  • A slightly more robust parsing of .gcov files (by Fabian Wermelinger).
  • Parse .gcov line data based on line number ID (by Fabian Wermelinger). This fixes incorrect coverage results on explicit template instantiation.
  • Make --exclude and --include accept list of arguments (by Fabian Wermelinger).

Vim-plugin

  • Switch to using newer fugitive API.
  • Improve startup time.

Building

  • Add install PREFIX to Makefile (by Fabian Wermelinger).
  • Add ld_extra variable for linker to Makefile (by Fabian Wermelinger).
  • Always use UTC timezone in the tests.

v0.3: Intermediate gcov format and other improvements

25 Mar 16:04
v0.3
c613ee9
Compare
Choose a tag to compare

Core and CLI

  • Add new-gcovi subcommand that uses gcov's intermediate format and thus works faster than uncov-gcov.
  • Better normalization of relative paths.
  • Better parsing error messages for new subcommand.
  • More strict input parsing for new subcommand.
  • Make new subcommand accept reference with spaces.
  • Fix incorrect parsing of optional build ids in subcommands.

Web-UI

  • Add line numbers to diffs. Clicking on them opens corresponding files.
  • Add map of missed ranges for faster overview of what's not covered.
  • Add LSB header to the sample init script.
  • Put links in tables on first column instead of on whole row.
  • Disallow robots from bothering the site (it doesn't contain interesting stuff).
  • Highlight current line number.
  • Fix formatting of line number anchors (avoid separators).

uncov-gcov

The script is now deprecated in favour of new-gcovi subcommand.

  • Add "WIP on " prefix to captured builds.
  • Ignore }; lines.
  • Do not ignore lines starting with static_cast.
  • Account for possible * in count column of gcov-files produced by new gcov.
  • Fix uncov-gcov failing to restore untracked directory.

Vim-plugin

  • Make :Uncov command accept @-buildid.
  • Fix error on folding last lines of a buffer.
  • Fix coverage signs being offset by one.

Building

  • Build web object files from correct source files.
  • Build with -std={c=>gnu}++11 language option.
  • Try to avoid file-system races on parallel build.
  • Fix compiling tests against Boost 1.55.

AppImage

The name of the tool should be provided as the first argument. For convenience, rename the binary to uncov and access the tools as uncov builds, uncov web, etc. Alternatively, make symbolic links to the file named uncov, uncov-gcov and uncov-web (this works with tools, but not with subcommands).

Python interpreter isn't bundled, so you need to have it installed for uncov-gcov to work (or just use uncov new-gcovi).

The AppImage is signed with PGP key which has the following fingerprint:

2234 9CDB E522 7D21 08A5  6677 99DC 5E4D B05F 6BE2

v0.2: Add Web-UI

24 Sep 11:48
v0.2
0d27538
Compare
Choose a tag to compare

Core and CLI

  • Add "regress" subcommand.
  • Add @branch notation to specify build.
  • Add relative build addressing via @-N form.
  • Make sure there are no separators in line numbers.
  • Small speed improvement in diffs.
  • Allow one extra coverage line compared to source file.
  • Fix folding on colorless printing.
  • Fix buildid resolution for "files" and alike.

Web-UI

Added it.

Capable of:

  • browsing files;
  • displaying current coverage;
  • displaying changes;
  • providing badges.

uncov-gcov

  • Add --ref-name option to uncov-gcov.
  • Provide manual page.
  • Make it possible to specify location of gcov files (--collect-root option).
  • Fix a typo in usage message.

Vim-plugin

  • Accept buildid in :Uncov command.
  • Ensure current line is not folded.
  • Make :Uncov operate differently in uncov-buffer.
  • Fix table of contents in Vim's documentation file.

Documentation

  • Add complete Doxygen documentation.
  • Better structure of the README.
  • Make args in synopsis bold in the manual page.
  • Fix diff screenshot in the README being blurry.
  • Fix what INSTALL says about build mans.

v0.1: First release.

23 Sep 20:43
v0.1
fbdeb60
Compare
Choose a tag to compare

Capable of:

  • Code highlighting.
  • Comparison of coverage.
  • Displaying parts of files that need attention with regard to coverage.
  • Displaying coverage right in Vim.

Includes:

  • Console utility.
  • gcov data importer.
  • Vim-plugin.