Skip to content

Releases: SteveGilham/altcover

Genbu series release 12

12 Jan 12:01
Compare
Choose a tag to compare

7.4.807

  • [MAYBE BREAKING] Set InPlace default to false uniformly across the API
    • Add dotnet test command line option /p:AltCoverInPlace=true|false (default false)
    • If /p:AltCoverInPlace=true then /p:AltCoverForce=true has its pre-v7.3.805 meaning
    • Wire up "InPlace" to the Fake DotNet.test driver for the above
    • If /p:AltCoverInPlace is not true, then copy all files in the project included as <None Include="./[some subdirectory]/..." with CopyToOutputDirectory of Always or PreserveNewest to the appropriate relative location wrt the intrumented files
    • NB /p:AltCoverInPlace=true will not play well with the concurrent instrument-and-test behaviour of dotnet test [multipletestprojects].sln /p:AltCover="true" --output [commonArtifactsFolder]
  • Allow --callContext and --single together, which will log at most one visit per context per location, not just one visit per location

Genbu series release 11a

07 Jan 09:39
Compare
Choose a tag to compare

7.3.806

  • [BUGFIX] Handle concurrent instrumentation in the case dotnet test [multipletestprojects].sln /p:AltCover="true" --output [commonArtifactsFolder] -- only changes the .targets file

Genbu series release 11

01 Jan 09:34
Compare
Choose a tag to compare

7.3.805

  • Extra detection and removal of compiler generated branches in C# async/await constructs
  • Revise the whole dotnet test integration
    • Will support SDK versions back at least to v2.1.809, but v2.1.300 is definitely now out of support due to API changes to the Microsoft.TestPlatform.Build.Tasks.VSTestTask task in the interim
    • Rather than copy/instrument back to $(TargetDir)/clean and copy-back, now instrument to a new directory and test there; there are now no worries about instrumented code ever being in the actual build artifact output directory
    • /p:AltCoverForce=true now simply clears the instrumentation target directory, and gives an informational message only
    • Resolve the instrumentation directory once and only once -- prevents inconsistent handling in the case where command line parameter--output redirects $(TargetDir) part-way through the process
  • Some refactoring and other build process improvements

Genbu series release 10

15 Dec 12:17
Compare
Choose a tag to compare

7.3.802

  • Add a -qoption for AltCover, given once suppresses informational messages, twice also suppresses warnings and thrice also suppresses errors. Away from the command line, the option is called Verbosity, and is based on System.Diagnostics.TraceLevel -- the default level being Info, with Warning, Error and Off equivalent to -q, -qq and -qqq respectively. For the monent Verbose is the same as Info
  • Other minor build process improvements

Genbu series release 9

07 Dec 14:49
Compare
Choose a tag to compare

7.2.801

  • [BUGFIX] Don't ArgumentNullException when running the --callContext for async feature off the build machine
  • [BUGFIX] Refactor to avoid "System.ArgumentException: An item with the same key has already been added. Key: AltCover.Recorder.g/7.2.0.0" that could occur in some rare circumstances while instrumenting code.
  • Other minor build process improvements

Genbu series release 8

02 Dec 11:29
Compare
Choose a tag to compare

7.2.800

  • [BUGFIX] Don't produce invalid IL when --callContext indicates a method with a non-void return (issue #105, and probably #26 too)
  • [BUGFIX] Restore application icons, even if they only show in the .exe forms (lost in 7.1.795 if not before)
  • [BUGFIX] Add AltCover prefix to MSBuild property names NetCoreEngine, NetStdEngine (global), InputDirectory and OutputDirectory (target-scoped) in the injected .targets file for dotnet test integration.
  • [BUGFIX] Let the AvaloniaUI based visualizer roll forwards from netcoreapp2.1 onto later runtimes
  • Finer-grained control of the coverage summary output
  • When --callContext indicates an async method, then track all calls within the same async flow, and not just in the direct same-thread call stack. Note other out-of-thread calls (Thread.Start, Parallel.Invoke, explict Async-named method invocation, ...) are not tracked.
  • Build with net5.0 SDK (modulo work-round for dotnet/fsharp#10442) in net5-only environments
    • Still build AltCover.exe/.dll against net472 for framework support, netcoreapp2.1 for the global tool and netcoreapp2.0 for everywhere else
    • Still build the GTK2 visualizer against net472 for consistency
    • Still build the recorder at net20 and use that assembly everywhere (see F# compiler issue noted above) except where a net46 version is substituted for tracking through async calls
    • Move unit tests to net5.0, as they are not public API

Genbu series release 7

09 Nov 14:09
Compare
Choose a tag to compare

7.1.795

  • [BUGFIX] Make LCov tracefile output follow what is actually generated, and not just what the man page says
  • As well as interfaces, hide other types with no non-abstract methods (e.g. plain enums) in the coverage
  • Show the branch in public int string Ternary(bool select) => !select ? Left : Right; just like it is shown in public int Ternary (bool select, int left, int right) { return select ? left : right; }.
  • For records, add entry and exit attributes as semicolon separated lists of the UTC times in ticks at which the method was entered and returns
  • For dotnet test ... /p:AltCoverXmlReport=... , if the value for the report file path contains one of the following literals
    • $(ProjectName)
    • $(SolutionDir)
    • $([System.Guid]::NewGuid())
      then substitute in the actual values of those build parameters where they haven't already been replaced by MSBuild.
      Example: Using /p:AltCoverXmlReport=$(SolutionDir)/_Reports/solution.$(ProjectName).xml with dotnet test of a solution to place distinctly named report files in a common folder.
      Also
  • Rationalise .net versions to help speed up the build and ease the net5.0 transition
    • Clear out some corner case differences between .net core and .net framework builds based on old work-arounds for symbol writing for the instrumented files
    • Build the recorder at net20 only and use the same assembly everywhere
    • Move all the core logic from AltCover.exe/.dll to AltCover.Engine.dll
    • Unify the three different entry-point assembly instances into the now shim-like AltCover.exe/.dll
    • Build everything against netstandard2.0 except executable shims and unit tests (tests at netcoreapp3.0 by default)
    • Build AltCover.exe/.dll against net472 for framework support, netcoreapp2.1 for the global tool and netcoreapp2.0 for everywhere else
    • Build the GTK2 visualizer against net472 for consistency
    • net472 debug builds for published libraries are retained purely for FxCop consumption
  • Collect coverage from unit tests at build time too

Genbu series release 6a

24 Jul 18:08
Compare
Choose a tag to compare

7.1.783

  • [Visualizer-global-tool]
  • [BUGFIX] Don't NRE when cancelling a File Open dialog when Avalonia uses its GTK binding (Linux)
  • Support font selection on Windows natively (monospace fonts only)
  • On non-Windows platforms, if Tcl/Tk wish is present, use that to perform font selection (choose wisely)

Genbu series release 6

24 Jul 18:06
Compare
Choose a tag to compare

7.1.782

  • [BUGFIX] Don't throw NRE when encountering an interface with a default method implementation
  • Omit interfaces without default method implementations from coverage recording, to match the behaviour of OpenCover (Issue #91)
  • [Visualizer-global-tool]
    • Fix the display of branch information on the second and subsequent coverage file loaded in a session
    • Fix the loading of the most recently accessed files list to prune ones that don't now exist
    • other minor tidyings
  • [Visualizer-GTK]
    • Make this look more like the Avalonia version
    • Tentative fix for the About dialog link-button on non-Windows platforms based partly on the Avalonia code.
    • Keep the GTK3 build in step, even though it's not packaged for release

Genbu series release 5a

08 Jul 18:10
Compare
Choose a tag to compare

7.1.780

  • [Visualizer] Rewritten global tool based on the cross-platform AvaloniaUI toolkit (so no need for all the GTK3 set-up, including the --schemadir[=path] command-line parameter)
    • There's no font selection support yet as AvaloniaUI doesn't offer a cross-platform one
    • The colour scheme differs as there's not yet support for selecting a different background brush for text ranges -- covered = blue text
    • line numbers are shown, and are coloured according to any sequence point starting that line