Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

If excludeAfterRemap is enabled, the coverage stats become constant 100 #462

Open
prantlf opened this issue Apr 2, 2023 · 0 comments · May be fixed by #463
Open

If excludeAfterRemap is enabled, the coverage stats become constant 100 #462

prantlf opened this issue Apr 2, 2023 · 0 comments · May be fixed by #463

Comments

@prantlf
Copy link

prantlf commented Apr 2, 2023

Environment

  • Version: Node.js v18.14.2
  • Platform: OSX 13.2.1 (Darwin macik.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:42:11 PST 2023; root:xnu-8792.81.3~2/RELEASE_X86_64 x86_64)

Report Example

With no source file excluded:

❯ npx c8 report
-------------------------------------------------|---------|----------|---------|---------|-------------------
File                                             | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------------------------------------|---------|----------|---------|---------|-------------------
All files                                        |   90.74 |    67.85 |   47.46 |   90.74 |
 [email protected]/node_modules/@hpcc-js/wasm/dist |     100 |    59.16 |   40.68 |     100 |
  graphviz.js                                    |     100 |    59.16 |   40.68 |     100 | 1
 src                                             |    98.4 |      100 |     100 |    98.4 |
  bundled-engine.js                              |     100 |      100 |     100 |     100 |
  graph.js                                       |     100 |      100 |     100 |     100 |
  renderer.js                                    |     100 |      100 |     100 |     100 |
  script-editor.js                               |   96.84 |      100 |     100 |   96.84 | 71-76
  separate-engine.js                             |     100 |      100 |     100 |     100 |
 src/codejar                                     |     100 |       70 |      30 |     100 |
  codejar.js                                     |     100 |       70 |      30 |     100 | 4-17
 src/prism                                       |   83.56 |    78.72 |   59.25 |   83.56 |
  prism-core.js                                  |   78.75 |    73.13 |   68.42 |   78.75 | ...48-252,322-325
  prism-graphviz.js                              |     100 |      100 |     100 |     100 |
  prism-line-numbers.js                          |   98.19 |    86.66 |      75 |   98.19 | 147-149
  prism-match-braces.js                          |   82.58 |      100 |       0 |   82.58 | ...53,57-61,65-75
-------------------------------------------------|---------|----------|---------|---------|-------------------
ERROR: Coverage for lines (90.74%) does not meet global threshold (100%)
ERROR: Coverage for functions (47.46%) does not meet global threshold (100%)
ERROR: Coverage for branches (67.85%) does not meet global threshold (100%)
ERROR: Coverage for statements (90.74%) does not meet global threshold (100%)

With src/codejar and src/prism excluded:

❯ npx c8 report -a
--------------------|---------|----------|---------|---------|-------------------
File                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------|---------|----------|---------|---------|-------------------
All files           |     100 |      100 |     100 |     100 |
 bundled-engine.js  |     100 |      100 |     100 |     100 |
 graph.js           |     100 |      100 |     100 |     100 |
 renderer.js        |     100 |      100 |     100 |     100 |
 script-editor.js   |     100 |      100 |     100 |     100 |
 separate-engine.js |     100 |      100 |     100 |     100 |
--------------------|---------|----------|---------|---------|-------------------

Note the coverage of script-editor.js jumping from 96.84 to 100.

Test Project

The repository https://github.com/prantlf/c8-ethernal-100 contains test coverage data and instructions how to reproduce the problem. The branch c8-ethernal-100-coverage of the original project (https://github.com/prantlf/graphviz-webcomponent/tree/c8-ethernal-100-coverage) can be use to run the test including the computation of the code coverage.

prantlf added a commit to prantlf/c8 that referenced this issue Apr 2, 2023
… 100

Do not use the `excludePath` callback. Remove the excluded sources at the end, after all coverage parts have been merged. This might be a problem in `v8-to-istanbul`, because `istanbul-lib-coverage` doesn't offer a method to filter the coverage data at the end.

Attempts to fix bcoe#462
github-actions bot pushed a commit to prantlf/c8 that referenced this issue Apr 2, 2023
# 1.0.0 (2023-04-02)

### Bug Fixes

* `--all` now respects `--extension` flag. ([bcoe#357](https://github.com/prantlf/c8/issues/357)) ([a5deb27](a5deb27))
* add missing space in text ([bcoe#245](https://github.com/prantlf/c8/issues/245)) ([efe6d04](efe6d04))
* address bugs with source remapping on Windows ([bcoe#301](https://github.com/prantlf/c8/issues/301)) ([c817902](c817902))
* address file:// issue with CJS ([bcoe#39](https://github.com/prantlf/c8/issues/39)) ([d4f9cab](d4f9cab))
* all flag not propagated to check-coverage command ([bcoe#188](https://github.com/prantlf/c8/issues/188)) ([86eaf72](86eaf72))
* **config:** support configuration inheritance ([bcoe#343](https://github.com/prantlf/c8/issues/343)) ([e81ed5d](e81ed5d))
* **deps:** merging failed when the same script occurred multiple times in the same report ([bcoe#147](https://github.com/prantlf/c8/issues/147)) ([1ebcaf9](1ebcaf9))
* **deps:** update dependency find-up to v4 ([bcoe#119](https://github.com/prantlf/c8/issues/119)) ([c568d96](c568d96))
* **deps:** update dependency find-up to v5 ([bcoe#242](https://github.com/prantlf/c8/issues/242)) ([8a0cfd7](8a0cfd7))
* **deps:** update dependency furi to v2 ([bcoe#193](https://github.com/prantlf/c8/issues/193)) ([6b9af6e](6b9af6e))
* **deps:** update dependency rimraf to v3 ([bcoe#132](https://github.com/prantlf/c8/issues/132)) ([7601748](7601748))
* **deps:** update dependency v8-to-istanbul to v4 ([bcoe#167](https://github.com/prantlf/c8/issues/167)) ([97b9769](97b9769))
* **deps:** update dependency yargs to v14 ([bcoe#134](https://github.com/prantlf/c8/issues/134)) ([e49737f](e49737f))
* **deps:** update dependency yargs to v15 ([bcoe#164](https://github.com/prantlf/c8/issues/164)) ([e41a483](e41a483))
* **deps:** update dependency yargs to v16 ([bcoe#251](https://github.com/prantlf/c8/issues/251)) ([0436816](0436816))
* **deps:** update dependency yargs-parser to v13 ([bcoe#124](https://github.com/prantlf/c8/issues/124)) ([1eb3394](1eb3394))
* **deps:** update dependency yargs-parser to v14 ([bcoe#144](https://github.com/prantlf/c8/issues/144)) ([9b3d089](9b3d089))
* **deps:** update dependency yargs-parser to v15 ([bcoe#153](https://github.com/prantlf/c8/issues/153)) ([80153de](80153de))
* **deps:** update dependency yargs-parser to v16 ([bcoe#157](https://github.com/prantlf/c8/issues/157)) ([15746e5](15746e5))
* **deps:** update dependency yargs-parser to v17 ([bcoe#201](https://github.com/prantlf/c8/issues/201)) ([d730c63](d730c63))
* **deps:** update dependency yargs-parser to v18 ([bcoe#202](https://github.com/prantlf/c8/issues/202)) ([983de44](983de44))
* **deps:** update dependency yargs-parser to v19 ([bcoe#241](https://github.com/prantlf/c8/issues/241)) ([baa01df](baa01df))
* **deps:** update dependency yargs-parser to v20 ([bcoe#252](https://github.com/prantlf/c8/issues/252)) ([ae845f0](ae845f0))
* **deps:** update deps to address warning in cross-spawn ([bcoe#141](https://github.com/prantlf/c8/issues/141)) ([4b66221](4b66221))
* **deps:** update deps to latest ([bcoe#384](https://github.com/prantlf/c8/issues/384)) ([78eac8c](78eac8c)), closes [bcoe#375](https://github.com/prantlf/c8/issues/375)
* **deps:** v8-to-istanbul with fix for Windows paths ([bcoe#311](https://github.com/prantlf/c8/issues/311)) ([ef1b875](ef1b875))
* **deps:** v8-to-istanbul with patch for crasher ([bcoe#200](https://github.com/prantlf/c8/issues/200)) ([d4b7d80](d4b7d80))
* **deps:** v8-to-istnbul with fixes for Node 10/18 ([bcoe#392](https://github.com/prantlf/c8/issues/392)) ([d5f642a](d5f642a))
* do not override NODE_V8_COVERAGE if set ([bcoe#70](https://github.com/prantlf/c8/issues/70)) ([8bb67b0](8bb67b0))
* don't load JSON that does not look like coverage ([bcoe#146](https://github.com/prantlf/c8/issues/146)) ([a6481f1](a6481f1))
* escaping issue with cobertura reporter ([bcoe#203](https://github.com/prantlf/c8/issues/203)) ([e93747b](e93747b))
* exclude coverage of the CJS-ESM bridge from results ([bcoe#83](https://github.com/prantlf/c8/issues/83)) ([da2c945](da2c945))
* exit with code 1 when report output fails ([bcoe#92](https://github.com/prantlf/c8/issues/92)) ([a27b694](a27b694))
* file URL to system path conversion ([bcoe#46](https://github.com/prantlf/c8/issues/46)) ([e7f8cf2](e7f8cf2))
* fix package.json `test:snap` script to use cross-env ([bcoe#366](https://github.com/prantlf/c8/issues/366)) ([5d2981c](5d2981c))
* Fix usage of excludeAfterRemap not to set the coverage always to 100 ([9113449](9113449)), closes [bcoe#462](https://github.com/prantlf/c8/issues/462)
* float patch for branch/function coverage merge bug ([bcoe#56](https://github.com/prantlf/c8/issues/56)) ([1de0cca](1de0cca))
* HTML report now has correct source positions for Node >10.16.0 ([bcoe#125](https://github.com/prantlf/c8/issues/125)) ([c49fa7f](c49fa7f))
* ignore missing source maps in raw coverage output ([bcoe#233](https://github.com/prantlf/c8/issues/233)) ([eed98af](eed98af))
* make tests run on Windows ([bcoe#25](https://github.com/prantlf/c8/issues/25)) ([08e44d0](08e44d0))
* make tmp directory regardless of clean ([44d2185](44d2185))
* **perf:** cache `this.exclude.shouldInstrument` for improved performance ([bcoe#388](https://github.com/prantlf/c8/issues/388)) ([8b36f23](8b36f23))
* pin to functional version of spawn-wrap ([d1ced8c](d1ced8c))
* process coverage merging ([bcoe#37](https://github.com/prantlf/c8/issues/37)) ([67959b4](67959b4))
* regex flags in dependency were breaking Node 8 ([a9d9645](a9d9645))
* remove the unmaintained mkdirp dependency ([bcoe#91](https://github.com/prantlf/c8/issues/91)) ([a465b65](a465b65))
* snapshot ([7fd9e13](7fd9e13))
* support [email protected] built-in modules ([bcoe#265](https://github.com/prantlf/c8/issues/265)) ([1b90a22](1b90a22))
* switch to mkdirp for Node 8 ([206b83f](206b83f))
* temporary files should be in tmp folder ([bcoe#106](https://github.com/prantlf/c8/issues/106)) ([64dd2e6](64dd2e6))
* tweak inspector event timing ([bcoe#6](https://github.com/prantlf/c8/issues/6)) ([01f654e](01f654e))
* **types:** add excludeAfterRemap and allowExternal  ([bcoe#297](https://github.com/prantlf/c8/issues/297)) ([e32a53f](e32a53f))
* Upgrade dependencies ([c288f5f](c288f5f))
* upgrade to @bcoe/v8-coverage with breaking regex dropped ([6c28e7f](6c28e7f))
* **v8-to-istanbul:** fixes shebang handling/ignore behavior ([bcoe#267](https://github.com/prantlf/c8/issues/267)) ([21cd41f](21cd41f))
* **v8-to-istanbul:** pull in fix for missing branches ([bcoe#258](https://github.com/prantlf/c8/issues/258)) ([eaffa78](eaffa78))
* **v8-to-istanbul:** revert off by one that broke TypeScript ([bcoe#262](https://github.com/prantlf/c8/issues/262)) ([81ab5b7](81ab5b7))
* we were not exiting with 1 if mkdir failed ([bcoe#89](https://github.com/prantlf/c8/issues/89)) ([fb02ed6](fb02ed6))

* feat!: use Node.js' source-map cache, to support tools like ts-node (bcoe#152) ([53bba15](53bba15)), closes [bcoe#152](https://github.com/prantlf/c8/issues/152)
* feat!: default temp directory to report directory (bcoe#102) ([8602f4a](8602f4a)), closes [bcoe#102](https://github.com/prantlf/c8/issues/102)

### Features

* `--100` ([bcoe#332](https://github.com/prantlf/c8/issues/332)) ([4205f2f](4205f2f))
* add --config option and documentation on options and configs ([bcoe#308](https://github.com/prantlf/c8/issues/308)) ([99436ef](99436ef))
* add --exclude-node-modules option ([bcoe#321](https://github.com/prantlf/c8/issues/321)) ([a4733c6](a4733c6))
* add --extension option ([bcoe#331](https://github.com/prantlf/c8/issues/331)) ([ff01cd8](ff01cd8))
* add --report-dir alias (for consistency with nyc) ([0dd1b04](0dd1b04))
* add --skip-full ([bcoe#287](https://github.com/prantlf/c8/issues/287)) ([8b01b63](8b01b63))
* add `skipFull` and `excludeNodeModules` to type definitions ([bcoe#417](https://github.com/prantlf/c8/issues/417)) ([b93b9c0](b93b9c0))
* add support for 1:1 source-maps ([bcoe#85](https://github.com/prantlf/c8/issues/85)) ([6ca4345](6ca4345))
* add support for ignoring lines, functions, and blocks ([bcoe#87](https://github.com/prantlf/c8/issues/87)) ([c66950e](c66950e))
* add thresholds for enforcing coverage percentage ([bcoe#59](https://github.com/prantlf/c8/issues/59)) ([70e8943](70e8943))
* adds --all functionality ([bcoe#158](https://github.com/prantlf/c8/issues/158)) ([2eb631e](2eb631e))
* adds support for 1:many source maps ([bcoe#238](https://github.com/prantlf/c8/issues/238)) ([dbf94a0](dbf94a0))
* adds TypeScript definitions ([d39801b](d39801b)), closes [bcoe#195](https://github.com/prantlf/c8/issues/195)
* **all:** handle base64 inline source maps ([bcoe#283](https://github.com/prantlf/c8/issues/283)) ([3f12dd4](3f12dd4))
* allow  --reports-dir to be configured ([bcoe#65](https://github.com/prantlf/c8/issues/65)) ([5ab31f5](5ab31f5))
* allow relative paths to be optionally included ([3806c79](3806c79))
* allow script wrapper length to be specified ([bcoe#51](https://github.com/prantlf/c8/issues/51)) ([a22c4e0](a22c4e0))
* first pass at functional prototype without subprocess support ([bcoe#5](https://github.com/prantlf/c8/issues/5)) ([9534f56](9534f56))
* foreground-child's done() method was not being called ([bcoe#82](https://github.com/prantlf/c8/issues/82)) ([fde596e](fde596e))
* implement Istanbul reporting ([bcoe#8](https://github.com/prantlf/c8/issues/8)) ([8e430bf](8e430bf))
* improve test assertions ([bcoe#28](https://github.com/prantlf/c8/issues/28)) ([522720e](522720e))
* introduce --exclude-after-remap flag ([bcoe#293](https://github.com/prantlf/c8/issues/293)) ([53c4234](53c4234)), closes [bcoe#224](https://github.com/prantlf/c8/issues/224)
* load .nycrc/.nycrc.json to simplify migration ([bcoe#100](https://github.com/prantlf/c8/issues/100)) ([bd7484f](bd7484f))
* playing around with initial implementation ([18f5471](18f5471))
* support --check-coverage for reports ([bcoe#60](https://github.com/prantlf/c8/issues/60)) ([b542930](b542930))
* support for instrumenting files outside of current working directory ([7e53a0e](7e53a0e))
* support ignore start/stop comment ([bcoe#273](https://github.com/prantlf/c8/issues/273)) ([90949fa](90949fa)), closes [bcoe#271](https://github.com/prantlf/c8/issues/271)
* support passing reporter options ([bcoe#423](https://github.com/prantlf/c8/issues/423)) ([bc347a9](bc347a9))
* switch to stderr and default port ([bcoe#7](https://github.com/prantlf/c8/issues/7)) ([bb117b7](bb117b7))
* switch to using Node's built in coverage ([bcoe#22](https://github.com/prantlf/c8/issues/22)) ([3c1b92b](3c1b92b))
* **types:** add typings for reporterOptions ([bcoe#446](https://github.com/prantlf/c8/issues/446)) ([3646e6e](3646e6e))
* use debuglog rather than console.warn ([bcoe#279](https://github.com/prantlf/c8/issues/279)) ([7c04a4d](7c04a4d))
* use process.stdout.columns for reporter maxCols ([bcoe#409](https://github.com/prantlf/c8/issues/409)) ([7731574](7731574))
* warn instead of throw on exception ([bcoe#29](https://github.com/prantlf/c8/issues/29)) ([a8620d4](a8620d4))

### BREAKING CHANGES

* Node.js' source-map and lineLength cache is now used to remap coverage output (this allows tools like ts-node to be supported, which transpile at runtime).
* temp directory now defaults to setting for report directory
* c8 will now load source-maps if possible and remap coverage accordingly
* switches to using NODE_V8_COVERAGE rather than inspector directly
* dropped subprocess support for the time being, while we march towards an initial implementation.
github-actions bot pushed a commit to prantlf/c8 that referenced this issue Apr 2, 2023
# 1.0.0 (2023-04-02)

### Bug Fixes

* `--all` now respects `--extension` flag. ([bcoe#357](https://github.com/prantlf/c8/issues/357)) ([a5deb27](a5deb27))
* add missing space in text ([bcoe#245](https://github.com/prantlf/c8/issues/245)) ([efe6d04](efe6d04))
* address bugs with source remapping on Windows ([bcoe#301](https://github.com/prantlf/c8/issues/301)) ([c817902](c817902))
* address file:// issue with CJS ([bcoe#39](https://github.com/prantlf/c8/issues/39)) ([d4f9cab](d4f9cab))
* all flag not propagated to check-coverage command ([bcoe#188](https://github.com/prantlf/c8/issues/188)) ([86eaf72](86eaf72))
* **config:** support configuration inheritance ([bcoe#343](https://github.com/prantlf/c8/issues/343)) ([e81ed5d](e81ed5d))
* **deps:** merging failed when the same script occurred multiple times in the same report ([bcoe#147](https://github.com/prantlf/c8/issues/147)) ([1ebcaf9](1ebcaf9))
* **deps:** update dependency find-up to v4 ([bcoe#119](https://github.com/prantlf/c8/issues/119)) ([c568d96](c568d96))
* **deps:** update dependency find-up to v5 ([bcoe#242](https://github.com/prantlf/c8/issues/242)) ([8a0cfd7](8a0cfd7))
* **deps:** update dependency furi to v2 ([bcoe#193](https://github.com/prantlf/c8/issues/193)) ([6b9af6e](6b9af6e))
* **deps:** update dependency rimraf to v3 ([bcoe#132](https://github.com/prantlf/c8/issues/132)) ([7601748](7601748))
* **deps:** update dependency v8-to-istanbul to v4 ([bcoe#167](https://github.com/prantlf/c8/issues/167)) ([97b9769](97b9769))
* **deps:** update dependency yargs to v14 ([bcoe#134](https://github.com/prantlf/c8/issues/134)) ([e49737f](e49737f))
* **deps:** update dependency yargs to v15 ([bcoe#164](https://github.com/prantlf/c8/issues/164)) ([e41a483](e41a483))
* **deps:** update dependency yargs to v16 ([bcoe#251](https://github.com/prantlf/c8/issues/251)) ([0436816](0436816))
* **deps:** update dependency yargs-parser to v13 ([bcoe#124](https://github.com/prantlf/c8/issues/124)) ([1eb3394](1eb3394))
* **deps:** update dependency yargs-parser to v14 ([bcoe#144](https://github.com/prantlf/c8/issues/144)) ([9b3d089](9b3d089))
* **deps:** update dependency yargs-parser to v15 ([bcoe#153](https://github.com/prantlf/c8/issues/153)) ([80153de](80153de))
* **deps:** update dependency yargs-parser to v16 ([bcoe#157](https://github.com/prantlf/c8/issues/157)) ([15746e5](15746e5))
* **deps:** update dependency yargs-parser to v17 ([bcoe#201](https://github.com/prantlf/c8/issues/201)) ([d730c63](d730c63))
* **deps:** update dependency yargs-parser to v18 ([bcoe#202](https://github.com/prantlf/c8/issues/202)) ([983de44](983de44))
* **deps:** update dependency yargs-parser to v19 ([bcoe#241](https://github.com/prantlf/c8/issues/241)) ([baa01df](baa01df))
* **deps:** update dependency yargs-parser to v20 ([bcoe#252](https://github.com/prantlf/c8/issues/252)) ([ae845f0](ae845f0))
* **deps:** update deps to address warning in cross-spawn ([bcoe#141](https://github.com/prantlf/c8/issues/141)) ([4b66221](4b66221))
* **deps:** update deps to latest ([bcoe#384](https://github.com/prantlf/c8/issues/384)) ([78eac8c](78eac8c)), closes [bcoe#375](https://github.com/prantlf/c8/issues/375)
* **deps:** v8-to-istanbul with fix for Windows paths ([bcoe#311](https://github.com/prantlf/c8/issues/311)) ([ef1b875](ef1b875))
* **deps:** v8-to-istanbul with patch for crasher ([bcoe#200](https://github.com/prantlf/c8/issues/200)) ([d4b7d80](d4b7d80))
* **deps:** v8-to-istnbul with fixes for Node 10/18 ([bcoe#392](https://github.com/prantlf/c8/issues/392)) ([d5f642a](d5f642a))
* do not override NODE_V8_COVERAGE if set ([bcoe#70](https://github.com/prantlf/c8/issues/70)) ([8bb67b0](8bb67b0))
* don't load JSON that does not look like coverage ([bcoe#146](https://github.com/prantlf/c8/issues/146)) ([a6481f1](a6481f1))
* escaping issue with cobertura reporter ([bcoe#203](https://github.com/prantlf/c8/issues/203)) ([e93747b](e93747b))
* exclude coverage of the CJS-ESM bridge from results ([bcoe#83](https://github.com/prantlf/c8/issues/83)) ([da2c945](da2c945))
* exit with code 1 when report output fails ([bcoe#92](https://github.com/prantlf/c8/issues/92)) ([a27b694](a27b694))
* file URL to system path conversion ([bcoe#46](https://github.com/prantlf/c8/issues/46)) ([e7f8cf2](e7f8cf2))
* fix package.json `test:snap` script to use cross-env ([bcoe#366](https://github.com/prantlf/c8/issues/366)) ([5d2981c](5d2981c))
* Fix usage of excludeAfterRemap not to set the coverage always to 100 ([9113449](9113449)), closes [bcoe#462](https://github.com/prantlf/c8/issues/462)
* float patch for branch/function coverage merge bug ([bcoe#56](https://github.com/prantlf/c8/issues/56)) ([1de0cca](1de0cca))
* HTML report now has correct source positions for Node >10.16.0 ([bcoe#125](https://github.com/prantlf/c8/issues/125)) ([c49fa7f](c49fa7f))
* ignore missing source maps in raw coverage output ([bcoe#233](https://github.com/prantlf/c8/issues/233)) ([eed98af](eed98af))
* make tests run on Windows ([bcoe#25](https://github.com/prantlf/c8/issues/25)) ([08e44d0](08e44d0))
* make tmp directory regardless of clean ([44d2185](44d2185))
* **perf:** cache `this.exclude.shouldInstrument` for improved performance ([bcoe#388](https://github.com/prantlf/c8/issues/388)) ([8b36f23](8b36f23))
* pin to functional version of spawn-wrap ([d1ced8c](d1ced8c))
* process coverage merging ([bcoe#37](https://github.com/prantlf/c8/issues/37)) ([67959b4](67959b4))
* regex flags in dependency were breaking Node 8 ([a9d9645](a9d9645))
* remove the unmaintained mkdirp dependency ([bcoe#91](https://github.com/prantlf/c8/issues/91)) ([a465b65](a465b65))
* snapshot ([7fd9e13](7fd9e13))
* support [email protected] built-in modules ([bcoe#265](https://github.com/prantlf/c8/issues/265)) ([1b90a22](1b90a22))
* switch to mkdirp for Node 8 ([206b83f](206b83f))
* temporary files should be in tmp folder ([bcoe#106](https://github.com/prantlf/c8/issues/106)) ([64dd2e6](64dd2e6))
* tweak inspector event timing ([bcoe#6](https://github.com/prantlf/c8/issues/6)) ([01f654e](01f654e))
* **types:** add excludeAfterRemap and allowExternal  ([bcoe#297](https://github.com/prantlf/c8/issues/297)) ([e32a53f](e32a53f))
* Upgrade dependencies ([985b219](985b219))
* upgrade to @bcoe/v8-coverage with breaking regex dropped ([6c28e7f](6c28e7f))
* **v8-to-istanbul:** fixes shebang handling/ignore behavior ([bcoe#267](https://github.com/prantlf/c8/issues/267)) ([21cd41f](21cd41f))
* **v8-to-istanbul:** pull in fix for missing branches ([bcoe#258](https://github.com/prantlf/c8/issues/258)) ([eaffa78](eaffa78))
* **v8-to-istanbul:** revert off by one that broke TypeScript ([bcoe#262](https://github.com/prantlf/c8/issues/262)) ([81ab5b7](81ab5b7))
* we were not exiting with 1 if mkdir failed ([bcoe#89](https://github.com/prantlf/c8/issues/89)) ([fb02ed6](fb02ed6))

* feat!: use Node.js' source-map cache, to support tools like ts-node (bcoe#152) ([53bba15](53bba15)), closes [bcoe#152](https://github.com/prantlf/c8/issues/152)
* feat!: default temp directory to report directory (bcoe#102) ([8602f4a](8602f4a)), closes [bcoe#102](https://github.com/prantlf/c8/issues/102)

### Features

* `--100` ([bcoe#332](https://github.com/prantlf/c8/issues/332)) ([4205f2f](4205f2f))
* add --config option and documentation on options and configs ([bcoe#308](https://github.com/prantlf/c8/issues/308)) ([99436ef](99436ef))
* add --exclude-node-modules option ([bcoe#321](https://github.com/prantlf/c8/issues/321)) ([a4733c6](a4733c6))
* add --extension option ([bcoe#331](https://github.com/prantlf/c8/issues/331)) ([ff01cd8](ff01cd8))
* add --report-dir alias (for consistency with nyc) ([0dd1b04](0dd1b04))
* add --skip-full ([bcoe#287](https://github.com/prantlf/c8/issues/287)) ([8b01b63](8b01b63))
* add `skipFull` and `excludeNodeModules` to type definitions ([bcoe#417](https://github.com/prantlf/c8/issues/417)) ([b93b9c0](b93b9c0))
* add support for 1:1 source-maps ([bcoe#85](https://github.com/prantlf/c8/issues/85)) ([6ca4345](6ca4345))
* add support for ignoring lines, functions, and blocks ([bcoe#87](https://github.com/prantlf/c8/issues/87)) ([c66950e](c66950e))
* add thresholds for enforcing coverage percentage ([bcoe#59](https://github.com/prantlf/c8/issues/59)) ([70e8943](70e8943))
* adds --all functionality ([bcoe#158](https://github.com/prantlf/c8/issues/158)) ([2eb631e](2eb631e))
* adds support for 1:many source maps ([bcoe#238](https://github.com/prantlf/c8/issues/238)) ([dbf94a0](dbf94a0))
* adds TypeScript definitions ([d39801b](d39801b)), closes [bcoe#195](https://github.com/prantlf/c8/issues/195)
* **all:** handle base64 inline source maps ([bcoe#283](https://github.com/prantlf/c8/issues/283)) ([3f12dd4](3f12dd4))
* allow  --reports-dir to be configured ([bcoe#65](https://github.com/prantlf/c8/issues/65)) ([5ab31f5](5ab31f5))
* allow relative paths to be optionally included ([3806c79](3806c79))
* allow script wrapper length to be specified ([bcoe#51](https://github.com/prantlf/c8/issues/51)) ([a22c4e0](a22c4e0))
* first pass at functional prototype without subprocess support ([bcoe#5](https://github.com/prantlf/c8/issues/5)) ([9534f56](9534f56))
* foreground-child's done() method was not being called ([bcoe#82](https://github.com/prantlf/c8/issues/82)) ([fde596e](fde596e))
* implement Istanbul reporting ([bcoe#8](https://github.com/prantlf/c8/issues/8)) ([8e430bf](8e430bf))
* improve test assertions ([bcoe#28](https://github.com/prantlf/c8/issues/28)) ([522720e](522720e))
* introduce --exclude-after-remap flag ([bcoe#293](https://github.com/prantlf/c8/issues/293)) ([53c4234](53c4234)), closes [bcoe#224](https://github.com/prantlf/c8/issues/224)
* load .nycrc/.nycrc.json to simplify migration ([bcoe#100](https://github.com/prantlf/c8/issues/100)) ([bd7484f](bd7484f))
* playing around with initial implementation ([18f5471](18f5471))
* support --check-coverage for reports ([bcoe#60](https://github.com/prantlf/c8/issues/60)) ([b542930](b542930))
* support for instrumenting files outside of current working directory ([7e53a0e](7e53a0e))
* support ignore start/stop comment ([bcoe#273](https://github.com/prantlf/c8/issues/273)) ([90949fa](90949fa)), closes [bcoe#271](https://github.com/prantlf/c8/issues/271)
* support passing reporter options ([bcoe#423](https://github.com/prantlf/c8/issues/423)) ([bc347a9](bc347a9))
* switch to stderr and default port ([bcoe#7](https://github.com/prantlf/c8/issues/7)) ([bb117b7](bb117b7))
* switch to using Node's built in coverage ([bcoe#22](https://github.com/prantlf/c8/issues/22)) ([3c1b92b](3c1b92b))
* **types:** add typings for reporterOptions ([bcoe#446](https://github.com/prantlf/c8/issues/446)) ([3646e6e](3646e6e))
* use debuglog rather than console.warn ([bcoe#279](https://github.com/prantlf/c8/issues/279)) ([7c04a4d](7c04a4d))
* use process.stdout.columns for reporter maxCols ([bcoe#409](https://github.com/prantlf/c8/issues/409)) ([7731574](7731574))
* warn instead of throw on exception ([bcoe#29](https://github.com/prantlf/c8/issues/29)) ([a8620d4](a8620d4))

### BREAKING CHANGES

* Node.js' source-map and lineLength cache is now used to remap coverage output (this allows tools like ts-node to be supported, which transpile at runtime).
* temp directory now defaults to setting for report directory
* c8 will now load source-maps if possible and remap coverage accordingly
* switches to using NODE_V8_COVERAGE rather than inspector directly
* dropped subprocess support for the time being, while we march towards an initial implementation.
prantlf added a commit to prantlf/c8 that referenced this issue Jun 18, 2023
… 100

Do not use the `excludePath` callback. Remove the excluded sources at the end, after all coverage parts have been merged. This might be a problem in `v8-to-istanbul`, because `istanbul-lib-coverage` doesn't offer a method to filter the coverage data at the end.

Attempts to fix bcoe#462
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant