From 0e2800b3a4bf0296dbd889ad62ef94565a4f9344 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Tue, 20 Aug 2019 09:31:47 -0700 Subject: [PATCH] chore: release v2.0.0 --- CHANGELOG.md | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 123 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1a9e0d..05912f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,125 @@ + +# [2.0.0](https://github.com/karma-runner/karma-coverage/compare/v1.1.1...v2.0.0) (2019-08-20) + + +### Bug Fixes + +* **build:** Update to lodash 4 ([d6d21d2](https://github.com/karma-runner/karma-coverage/commit/d6d21d2)), closes [#242](https://github.com/karma-runner/karma-coverage/issues/242) +* **reporter:** replace colons in the output path ([3b2bffa](https://github.com/karma-runner/karma-coverage/commit/3b2bffa)) +* bump lodash for CVE-2018-16487 ([15f8b12](https://github.com/karma-runner/karma-coverage/commit/15f8b12)) + + +### Chores + +* Update travis config ([00090ea](https://github.com/karma-runner/karma-coverage/commit/00090ea)) +* **deps:** Use latest istanbul lib packages ([#377](https://github.com/karma-runner/karma-coverage/issues/377)) ([f40d6af](https://github.com/karma-runner/karma-coverage/commit/f40d6af)) + + +### BREAKING CHANGES + +* **deps:** This set of changes may impact some use cases. + +* chore: Add Updated Istanbul Dependencies + +The istanbul package is deprecated in favor several split packages that +control different aspects of how istanbul works. This commit adds the +recommended packages that will be used in future commits as +karma-coverage's usage of istanbul is updated to the latest api. + +* refactor(reporter): Follow new report API + +This commit refactors the in memory report implementation to use the new +istanbul report API. + +Report creation is removed from newer versions of the istanbul API, so +this commit adds a set of utility functions to wrap around the new API +and provide similar functionality as the old API. The top level export +uses the new utility function to register the in-memory report. + +* refactor(preprocessor): Switch to istanbul-lib-instrument + +This commit updates the preprocessor to use istanbul-lib-instrument +instead of the deprecated istanbul package. The biggest change in this +refactor is using a callable function instead of a constructor when +creating instrumenters + +The old istanbul package exposed the Instrumenter directly, allowing the +preprocessor to create an instance of it. istanbul-lib-instrument, +however, exposes a callable function that creates an Instrumenter. +This commit updates the preprocessor to follow this new pattern of using +a callable function. In order to ensure backwards compatibility, a +utility function is added to wrap constructors with a callable function +for creation automatically. + +This change allows the following configuration for creating instrumenters: +1. An object that contains an Instrumenter constructor +2. An Instrumenter constructor itself +3. A callable function that returns an Instrumenter instance. + +This commit also uses the istanbul-lib-source-maps package to handle +storing source maps. A global source map store registers source maps so +they can be used later on in the reporter. + +* refactor(reporter): Switch to istanbul-lib-coverage + +This commit updates the reporter by using the istanbul-lib-coverage +package api for handling coverage checking/management and the +istanbul-lib-report package api for handling reporting. + +The new apis remove the need for collectors and remove the need to +handle disposing collectors. + +* refactor: Remove unused source cache utilities + +This commit removes the source-cache-store and source-cache files as +they are no longer being used. The source-map-store and +istanbul-lib-source-maps are used instead, so these files are no longer +needed. + +* feat(util): Add Reset Functionality + +This commit updates the report creator utility to allow resetting the +custom reporter map. + +* fix(preprocessor): Track Coverage Maps Properly + +This commit updates the preprocessor to properly access file coverage +when storing it in the global coverage map (when includeAllSources is +true). The previous method did not work because the returned +instrumented code from the default istanbul instrumenter returns the +coverage map in a POJO object instead of JSON notation. This breaks the +coverage regex used to match and parse the coverage map. + +The istanbul instrumenter offers the ability to receive the coverage map +for the last instrumented file through a separate function, so that is +tested for and used if it is supported. The original method is used as a +fallback for backwards compatibility. + +This commit also addresses changes from the v0 instanbul instrumenter +options. The changes are additive only to maintain backwards compatibility +for other instrumenters. + +* fix(reporter): Access Data Properly to Check Coverage + +This commit fixes errors with accessing data properly during the +checkCoverage method. A previous commit updated the implementation to +use istanbul-lib-coverage, but this involved an api change to access the +raw coverage data (which checkCoverage uses). + +This commit also fixes the checking coverage for each file by using a +map to store file coverage summaries instead of merging summaries like +the global results. Per file coverage now works as expected. + +* test: Update Unit Tests to use new Istanbul API + +This commit updates the mocking done in unit tests to properly mock the +new istanbul API. Additionally, new unit test suites are added for the +utility methods report-creator and source-map-store. +* drop support for node < 8 +* **reporter:** the output folder names change, they no longer contain `:` + + + ## [1.1.2](https://github.com/karma-runner/karma-coverage/compare/v1.1.1...v1.1.2) (2018-05-03) diff --git a/package.json b/package.json index f2d0262..2996a73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "karma-coverage", - "version": "1.1.2", + "version": "2.0.0", "description": "A Karma plugin. Generate code coverage.", "main": "lib/index.js", "scripts": {