Changes in v4.14

Release notes for since version v4.13.0.1

This version of NCrunch introduces changes to the grid protocol. This means that grid
node servers must be updated before they can be used with the new version.

Redesigned the coverage packing system to allow the engine to unpack coverage data using multiple threads. This should improve engine start times, especially when working with large solutions with high coverage density. The size of the NCrunch cache file should also be significantly reduced.

Fixed a potential internal exception that could be caused by inconsistent coverage when cross-compiling code.

Removed a number of internal services from the console tool that are not required for its operation (i.e. VS only). This should reduce the resource consumption of the tool.

Added support for MSpec v1.1.0.

Streamlined internal messaging to reduce drag on the VS UI when code in the editor is undergoing heavy changes.

Disabled MSIX build targets when building MAUI projects to prevent compatibility issues.

Adjusted the platform references so that MAUI projects can now be loaded into testing environments.

Removed the Xamarin warning for when NCrunch is used on projects under .NET6 and above (as we intend to support these project types).

NCrunch will now automatically avoid unsupported target frameworks when attempting to load projects (i.e. iOS, Android, macOS) and will show a warning that it isn't loading projects with these frameworks.

Added compatibility for projects that specify a windows based target framework using inline conditions (as can happen with dafault MAUI project templates).

Added automatic file inclusion for MAUI project items into the NCrunch workspace.

Adjusted the VS project loader so that NCrunch won't try to load imported .projitems from SDK paths (such as when compiling MAUI projects)

Fixed an issue that could prevent NCrunch from starting for the first time on a solution.

Adjusted the batching of tests in the pipeline so that tests with slow running fixture setup/teardown will be placed in a separate task if the fixture setup/teardown time makes up less than 25% of the total time of the execution task. Previously, this wouldn't happen as long as the fixture setup/teardown time exceeded 2 seconds. This change should result in much more efficient distribution of tests in scenarios making use of large fixtures with many tests.

Optimised internal test change notification to improve performance and reduce core engine load.

Optimised internal hashing of file paths to improve performance and reduce core engine load.

Fixed an issue that could theoretically cause downstream instability when specifying wildcards for Nuget package selection.

Fixed a buffering issue introduced in v4.12 that would cause NCrunch to write junk data into 0 byte files that were transferred to a grid node. This could cause Nuget packages to be re-transferred on every new node connection due to hash inconsistencies.