Bartek Iwańczuk
9399f7b894
refactor: Rewrite usages of V8 inspector to the new API ( #30743 )
...
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Based on https://github.com/denoland/deno_core/pull/1193 .
This commit rewrites 3 parts of the system to use a new "sync"
V8 inspector API exposed by `deno_core`:
- REPL
- coverage collection
- hot module replacement
Turns out the async abstraction over V8 inspector was unnecessary
and actually greatly complicated usage of the inspector.
Towards https://github.com/denoland/deno/issues/13572
Towards https://github.com/denoland/deno/issues/13206
2025-09-17 16:11:03 +02:00
David Sherret
5f9a64bcaf
refactor: remove WorkspaceDirectoryProvider ( #30467 )
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
2025-08-21 11:27:12 -04:00
David Sherret
4ade335fc8
fix: support cjs, cts, mjs, and mts for the --ext
flag ( #30398 )
2025-08-14 12:02:49 -04:00
林炳权
68297b5f10
chore: Rust 1.89.0 ( #30364 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Related PR: https://github.com/denoland/deno/pull/30354
2025-08-09 11:11:48 +00:00
David Sherret
32baa286b7
refactor: update to deno_path_util 0.5.2 ( #30211 )
2025-07-27 08:44:29 -04:00
David Sherret
7b154300b8
refactor: upgrade to deno_core 0.353.0 ( #30164 )
2025-07-22 10:38:38 -04:00
Nathan Whitaker
9379a74e08
chore: update to edition 2024 ( #29923 )
ci / publish canary (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
2025-07-02 17:59:39 -07:00
Yoshiya Hinosawa
56d7660ee4
feat(cli): add --coverage
flag to deno run
command ( #29329 )
...
closes #16440
This PR adds `--coverage` flag to `deno run` command. When the flag is
specified, it generates the coverage profile in the directory specified
(default is `coverage`). The coverage directory can also be specified
from the env var `DENO_COVERAGE_DIR`.
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-06-25 13:34:30 +02:00
Boye Lillejord-Nygård
5b65313d48
fix(coverage): Make output table markdown compatible ( #29533 )
...
This changes the format of the table outputted by `deno coverage` to be
markdown compatible.
Related #29532
Closes #29465
2025-06-24 11:27:07 +02:00
Simon Lecoq
97a38fa584
fix(coverage): deno test --coverage
fails when importing modules from data:
urls ( #29607 )
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-06-05 13:42:10 +09:00
Asher Gomez
2cab60f90d
refactor(coverage): cleanup CSS output in explorer (--html
) output ( #29496 )
2025-06-02 10:57:28 +09:00
Asher Gomez
f9bb8241ca
fix(coverage): HTML validation errors in coverage explorer ( #29497 )
...
Closes #29493
2025-05-29 09:48:11 +02:00
Christian Svensson
5ddbb36d3f
feat(coverage): add dark-mode to HTML coverage report ( #29267 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This PR adds `color-scheme: light dark` support for the HTML coverage
report. It uses `light-dark(#fff, #000 )` to provide colors for each
color scheme.
- There's been [one other change to `coverage/style.css` file
before](66185e0d1d
),
so is it fine to to change this file more or should this file stay close
to Istanbul original code?
- I don't think there's any existing tests for the styles, so I could
not see any easy way to add unit tests for these changes
- IMO these changes work without a theme toggle, but I could try adding
one [with some `<head>`
script](https://github.com/denoland/deno/blob/main/cli/tools/coverage/reporter.rs/#L533 )
and a button in the navbar if required to land this PR
## Screenshots
<details>
<summary><strong>Coverage summary</strong></summary>
### Before

### After

</details>
<details>
<summary><strong>File coverage<strong></summary>
### Before

### After

</details>
Closes #29266
2025-05-12 19:37:03 +02:00
Bartek Iwańczuk
2fe200f6ef
fix(coverage): don't panic if all covered files are ignored via directive ( #29250 )
...
Closes https://github.com/denoland/deno/issues/29218
2025-05-12 02:47:32 +02:00
Asher Gomez
66185e0d1d
fix(coverage): improve responsiveness of HTML reporter on small screens ( #28993 )
2025-04-22 13:23:27 +09:00
Yoshiya Hinosawa
83f15ece09
feat(test): create coverage reports when --coverage specified in deno test ( #28260 )
...
This PR updates the behavior of `deno test --coverage` option. Now if
`--coverage` option is specified, `deno test` command automatically
shows summary report in the terminal, and generates the lcov report in
`$coverage_dir/lcov.info` and html report in `$coverage_dir/html/`
This change also adds `--coverage-raw-data-only` flag, which prevents
the above reports generated, instead only generates the raw json
coverage data (which is the same as current behavior)
2025-04-18 18:56:14 +09:00
Ben Heidemann
f465961964
feat(coverage): add coverage ignore comments ( #26590 )
2025-04-15 17:56:55 +00:00
David Sherret
ed2fac89eb
refactor: handle deno_media_type having Html
and Sql
variants ( #28495 )
2025-03-15 00:19:08 +09:00
Nathan Whitaker
ee4c14a550
chore: update to rust 1.85 ( #28236 )
...
Updates to use rust 1.85. Doesn't move to the 2024 edition, as that's a
fair bit more involved.
A nice side benefit is that the new rustc version seems to lead to a
slight reduction in binary size (at least on mac):
```
FILE SIZE
--------------
+4.3% +102Ki __DATA_CONST,__const
[NEW] +69.3Ki __TEXT,__literals
[NEW] +68.5Ki Rebase Info
+5.0% +39.9Ki __TEXT,__unwind_info
+57% +8.85Ki [__TEXT]
[NEW] +8.59Ki Lazy Binding Info
[NEW] +5.16Ki __TEXT,__stub_helper
[NEW] +3.58Ki Export Info
[NEW] +3.42Ki __DATA,__la_symbol_ptr
-0.1% -726 [12 Others]
-21.4% -3.10Ki [__DATA_CONST]
-95.8% -3.39Ki __DATA_CONST,__got
-20.9% -3.43Ki [__DATA]
-0.5% -4.52Ki Code Signature
-100.0% -11.6Ki [__LINKEDIT]
-1.0% -43.5Ki Symbol Table
-1.6% -44.0Ki __TEXT,__gcc_except_tab
-0.2% -48.1Ki __TEXT,__const
-3.3% -78.6Ki __TEXT,__eh_frame
-0.7% -320Ki __TEXT,__text
-1.5% -334Ki String Table
-0.5% -586Ki TOTAL
```
2025-02-25 08:50:01 -08:00
Yoshiya Hinosawa
0a1b01d5a2
refactor(coverage): simplify CoverageReporter trait ( #28219 )
2025-02-22 09:04:57 +09:00
Nathan Whitaker
e5de22b0b5
fix(coverage): exclude scripts with invalid URLs from raw coverage output ( #28210 )
...
Fixes https://github.com/denoland/deno/issues/28206 .
Basically if you execute a script with `node:vm`, this produces a
"script" with the file name `evalmachine.<anonymous>`, which ends up
producing coverage like
```json
{
"scriptId": "319",
"url": "evalmachine.<anonymous>",
"functions": [
{
"functionName": "",
"ranges": [{ "startOffset": 0, "endOffset": 18, "count": 1 }],
"isBlockCoverage": true
}
]
}
```
We assume that the `url` field here (the specifier of the script) is a
valid URL, and so we error out when processing that coverage.
There are two potential fixes: either don't write the coverage files for
those scripts, or ignore the errors when we process the data. I went
with the former here.
2025-02-20 23:23:43 +01:00
David Sherret
4648fc4570
fix(check): compiler options from workspace members ( #27785 )
...
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
2025-01-28 10:49:58 -05:00
David Sherret
b962b87cfe
chore: fix canary version ( #27723 )
...
Broken by
57dd66ec3d
Closes https://github.com/denoland/deno/issues/27719
2025-01-19 11:19:47 +01:00
Leo Kettmeir
054075730c
refactor: update deno_core and use more concrete errors ( #27620 )
...
waiting for https://github.com/denoland/deno_core/pull/1043
Fixes #27672
2025-01-17 09:41:52 -08:00
David Sherret
0b033140c0
refactor: move CliNpmResolver
to deno_resolver::npm::NpmResolver
( #27659 )
...
As title. After this PR all npm resolution will be out of the CLI crate.
2025-01-14 10:01:05 -05:00
Leo Kettmeir
ea30e188a8
refactor: update deno_core for error refactor ( #26867 )
...
Closes #26171
---------
Co-authored-by: David Sherret <dsherret@gmail.com>
2025-01-08 14:52:32 -08:00
Kenta Moriuchi
8fb073d7b4
chore: Happy New Year 2025 ( #27509 )
2024-12-31 19:12:39 +00:00
David Sherret
ac7b33a340
chore: cargo fmt - turn on group_imports=StdExternalCrate ( #26646 )
2024-12-31 12:13:39 -05:00
David Sherret
4638caa740
refactor: do not use deno_fs::FileSystem
everywhere ( #27508 )
...
This changes the cli to mostly use `std::fs` via `sys_traits` instead of
the implemention of `deno_fs::FileSystem`.
2024-12-31 11:29:07 -05:00
David Sherret
c391ad315e
refactor: use sys_traits ( #27480 )
2024-12-30 12:38:20 -05:00
Bartek Iwańczuk
c30f3450c6
perf: don't store duplicate info for ops in the snapshot ( #27430 )
...
Mostly for changes from https://github.com/denoland/deno_core/pull/1010
---------
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-12-20 17:43:03 +00:00
David Sherret
95928c46eb
refactor: extract out FileFetcher
to deno_cache_dir
( #27263 )
2024-12-16 23:39:40 +00:00
David Sherret
f091d1ad69
feat(node): stabilize detecting if CJS via "type": "commonjs"
in a package.json ( #26439 )
...
This will respect `"type": "commonjs"` in a package.json to determine if
`.js`/`.jsx`/`.ts`/.tsx` files are CJS or ESM. If the file is found to
be ESM it will be loaded as ESM though.
2024-11-13 15:10:09 +00:00
David Sherret
826e42a5b5
fix: improved support for cjs and cts modules ( #26558 )
...
* cts support
* better cjs/cts type checking
* deno compile cjs/cts support
* More efficient detect cjs (going towards stabilization)
* Determination of whether .js, .ts, .jsx, or .tsx is cjs or esm is only
done after loading
* Support `import x = require(...);`
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-01 12:27:00 -04:00
Taku Amano
50ea707b58
fix(coverage): exclude comment lines from coverage reports ( #25939 )
2024-10-31 23:20:26 +09:00
David Sherret
f0f476e584
perf: pass transpiled module to deno_core as known string ( #26555 )
2024-10-26 13:41:09 -04:00
Yoshiya Hinosawa
66fb81ea85
fix(coverage): ignore urls from doc testing ( #25736 )
2024-09-20 15:04:22 +09:00
Łukasz Czerniawski
e2faf50375
feat(coverage): add breadcrumbs to deno coverage --html
report ( #24860 )
2024-08-14 16:37:19 +09:00
David Sherret
9114a2df69
fix(upgrade): do not error if config in cwd invalid ( #24689 )
...
```
> deno upgrade
error: Unsupported lockfile version 'invalid'. Try upgrading Deno or recreating the lockfile.
V:\scratch
> V:\deno\target\debug\deno upgrade
Looking up latest version
Local deno version 1.45.3 is the most recent release
```
Closes #24517
Closes #20729
2024-07-23 19:00:48 -04:00
David Sherret
80df9aec1d
refactor: move FileCollector
to deno_config ( #24433 )
2024-07-05 17:53:09 -04:00
Satya Rohith
0f48313565
chore: upgrade to rust 1.79 ( #24207 )
2024-06-14 17:10:57 +05:30
David Sherret
7ed90a20d0
fix: better handling of npm resolution occurring on workers ( #24094 )
...
Closes https://github.com/denoland/deno/issues/24063
2024-06-05 17:04:16 +02:00
Yoshiya Hinosawa
8b5089e41f
fix(coverage): do not generate script coverage with empty url ( #24007 )
...
closes #24004
2024-05-28 23:01:32 +09:00
Yoshiya Hinosawa
e9cc8a2b53
fix(coverage): skip generating coverage json for http(s) scripts ( #24008 )
...
closes #21784
2024-05-28 20:25:46 +09:00
Yoshiya Hinosawa
d99c6c1ea4
fix(coverage): handle ignore patterns ( #23974 )
...
closes #23972
2024-05-28 12:37:30 +09:00
Yoshiya Hinosawa
0ef1c774f6
fix(coverage): add tooltip to line count in html report ( #23971 )
...
closes #21582
2024-05-26 13:22:57 +09:00
Felipe Baltor
fa1ba256d2
refactor: remove custom utc_now
in favor of chrono::Utc:now
feature ( #23888 )
...
This PR removes the use of the custom `utc_now` function in favor of the
`chrono` implementation. It resolves #22864 .
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-05-23 13:59:11 +02:00
Simon Lecoq
fa5c61e441
fix(cli/coverage): invalid line id in html reporter ( #23908 )
2024-05-21 13:37:36 +02:00
Evan
329a8ae0c0
fix(cli): panic with deno coverage
( #23353 )
...
This PR directly addresses the issue raised in #23282 where Deno panics
if `deno coverage` is called with `--include` regex that returns no
matches.
I've opted not to change the return value of `collect_summary` for
simplicity and return an empty `HashMap` instead
2024-05-13 23:18:38 +02:00
David Sherret
47f7bed677
chore: enable clippy::print_stdout and clippy::print_stderr ( #23732 )
...
1. Generally we should prefer to use the `log` crate.
2. I very often accidentally commit `eprintln`s.
When we should use `println` or `eprintln`, it's not too bad to be a bit
more verbose and ignore the lint rule.
2024-05-08 22:45:06 -04:00