summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-27feat(task): Task description in the form of comments (#23101)Nathan Whitaker
Closes #22786. TLDR; ```jsonc { "tasks": { // Some comment // // describing what the task does "dev": "deno run -A --watch main.ts" } } ``` ```bash deno task ``` ![Screenshot 2024-03-27 at 1 43 49 PM](https://github.com/denoland/deno/assets/17734409/7a14da8c-8e63-45ba-9bfb-590d250b56a9)
2024-03-27fix: less aggressive vendor folder ignoring (#23100)David Sherret
This is slightly breaking as some users want the `vendor` folder excluded and may not have that specified in their deno.json. Closes #22833
2024-03-27feat(init): use jsr specifier for @std/assert (#23073)Bartek Iwańczuk
This commit changes "deno init" subcommand to use "jsr:" specifier for standard library "assert" module. It is unversioned, but we will change it to `@^1` once `@std/assert` release version 1.0. This allows us to start decoupling `deno` and `deno_std` release. The release scripts have been updated to take that into account.
2024-03-27feat(task): cross-platform shebang support (#23091)David Sherret
Adds cross-platform shebang support (supports using shebangs in `deno task` on Windows) https://github.com/denoland/deno_task_shell/pull/113
2024-03-27fix(lsp): use registry cache for completion search (#23094)Nayeem Rahman
2024-03-27fix(check): do not suggest running with `--unstable` (#23092)David Sherret
Closes #23079
2024-03-27fix(lsp): decoding percent-encoding(non-ASCII) file path correctly (#22582)Hajime-san
2024-03-27FUTURE(ext/fs): remove `Deno.FsFile.rid` (#23087)Asher Gomez
Continues work from #23075. Towards #23089.
2024-03-27FUTURE: remove `Deno.resources()` (#23095)Asher Gomez
2024-03-27fix(lsp): prefer cache over tsc quick fixes (#23093)Nayeem Rahman
2024-03-26feat: type declarations for new Set methods (#23090)David Sherret
Closes #22851
2024-03-26fix(runtime): use FQDN in NetDescriptor (#23084)Nayeem Rahman
2024-03-26feat: TypeScript 5.4 (#23086)David Sherret
Fork PR: https://github.com/denoland/TypeScript/pull/10 Closes #23080
2024-03-26feat(add): always produce multiline config file (#23077)Bartek Iwańczuk
This commit changes `deno add` to always produce a multiline config file. In v1.41.3: ``` $ mkdir foo $ cd foo $ deno add @std/assert Created deno.json configuration file. Add @std/assert - jsr:@std/assert@^0.220.0 $ cat deno.json { "imports": { "@std/assert": "jsr:@std/assert@^0.220.0" } } ``` Now: ``` $ mkdir foo $ cd foo $ deno add @std/assert Created deno.json configuration file. Add @std/assert - jsr:@std/assert@^0.220.0 $ cat deno.json { "imports": { "@std/assert": "jsr:@std/assert@^0.220.0" } } ```
2024-03-26fix(kernel): Do not increase counter if store_history=false (#20848)Don Jayamanne
Fixes https://github.com/denoland/deno/issues/20847 Co-authored-by: Nathan Whitaker <nathan@deno.com>
2024-03-26fix(bench): Fix group header printing logic + don't filter out the warmup ↵Nathan Whitaker
benchmark (#23083) Fixes #23053. Two small bugs here: - the existing condition for printing out the group header was broken. it worked in the reproducer (in the issue above) without filtering only by accident, due to setting `self.has_ungrouped = true` once we see the warmup bench. Knowing that we sort benchmarks to put ungrouped benches first, there are only two cases: 1) we are starting the first group 2) we are ending the previous group and starting a new group - when you passed `--filter` we were applying that filter to the warmup bench (which is not visible to users), so we suffered from jit bias if you were filtering (unless your filter was `<warmup>`) TLDR; Running ```bash deno bench main.js --filter="G" ``` ```js // main.js Deno.bench({ group: "G1", name: "G1-A", fn() {}, }); Deno.bench({ group: "G1", name: "G1-B", fn() {}, }); ``` Before this PR: ``` benchmark time (avg) iter/s (min … max) p75 p99 p995 --------------------------------------------------------------- ----------------------------- G1-A 303.52 ps/iter3,294,726,102.1 (254.2 ps … 7.8 ns) 287.5 ps 391.7 ps 437.5 ps G1-B 3.8 ns/iter 263,360,635.9 (2.24 ns … 8.36 ns) 3.84 ns 4.73 ns 4.94 ns summary G1-A 12.51x faster than G1-B ``` After this PR: ``` benchmark time (avg) iter/s (min … max) p75 p99 p995 --------------------------------------------------------------- ----------------------------- group G1 G1-A 3.85 ns/iter 259,822,096.0 (2.42 ns … 9.03 ns) 3.83 ns 4.62 ns 4.83 ns G1-B 3.84 ns/iter 260,458,274.5 (3.55 ns … 7.05 ns) 3.83 ns 4.45 ns 4.7 ns summary G1-B 1x faster than G1-A ```
2024-03-26feat: remove deprecated methods from namespace with `DENO_FUTURE=1` (#23075)Asher Gomez
This change removes deprecated methods from the `Deno.*` namespace when the `DENO_FUTURE=1` environment variable is used. Note: this does not address deprecated class properties and methods. E.g. `Deno.Conn.rid`.
2024-03-26refactor(lsp): unify config file data into ConfigTree (#23032)Nayeem Rahman
2024-03-25chore(tests): Introduce integration tests for `jupyter` subcommand (#23074)Nathan Whitaker
Before this PR, we didn't have any integration tests set up for the `jupyter` subcommand. This PR adds a basic jupyter client and helpers for writing integration tests for the jupyter kernel. A lot of the code here is boilerplate, mainly around the message format for jupyter. This also adds a few basic integration tests, most notably for requesting execution of a snippet of code and getting the correct results.
2024-03-25feat(lint): automatically opt-in packages to `jsr` lint tag (#23072)David Sherret
This automatically opts packages (deno.json's with a name, version, and exports field) into the "jsr" lint tag.
2024-03-25fix(ext/web): Fix structuredClone Web API type declaration (any -> generic) ↵Viktor Marinho
(#22968) Closes #22958 Used the same type as in: https://github.com/microsoft/TypeScript/blob/main/src/lib/dom.generated.d.ts#L26114 --------- Signed-off-by: Viktor Marinho <56888067+viktormarinho@users.noreply.github.com>
2024-03-25test: add test for DENO_FUTURE=1 runtime API (#23065)Bartek Iwańczuk
Add a test that asserts that certain symbols are no longer available if running with `DENO_FUTURE=1` env var. Currently only checks `window` global.
2024-03-26fix(cli): output more detailed information for steps when using JUnit ↵Yusuke Tanaka
reporter (#22797) This patch gets JUnit reporter to output more detailed information for test steps (subtests). ## Issue with previous implementation In the previous implementation, the test hierarchy was represented using several XML tags like the following: - `<testsuites>` corresponds to the entire test (one execution of `deno test` has exactly one `<testsuites>` tag) - `<testsuite>` corresponds to one file, such as `main_test.ts` - `<testcase>` corresponds to one `Deno.test(...)` - `<property>` corresponds to one `t.step(...)` This structure describes the test layers but one problem is that `<property>` tag is used for any use cases so some tools that can ingest a JUnit XML file might not be able to interpret `<property>` as subtests. ## How other tools address it Some of the testing frameworks in the ecosystem address this issue by fitting subtests into the `<testcase>` layer. For instance, take a look at the following Go test file: ```go package main_test import "testing" func TestMain(t *testing.T) { t.Run("child 1", func(t *testing.T) { // OK }) t.Run("child 2", func(t *testing.T) { // Error t.Fatal("error") }) } ``` Running [gotestsum], we can get the output like this: ```xml <?xml version="1.0" encoding="UTF-8"?> <testsuites tests="3" failures="2" errors="0" time="1.013694"> <testsuite tests="3" failures="2" time="0.510000" name="example/gosumtest" timestamp="2024-03-11T12:26:39+09:00"> <properties> <property name="go.version" value="go1.22.1 darwin/arm64"></property> </properties> <testcase classname="example/gosumtest" name="TestMain/child_2" time="0.000000"> <failure message="Failed" type="">=== RUN TestMain/child_2&#xA; main_test.go:12: error&#xA;--- FAIL: TestMain/child_2 (0.00s)&#xA;</failure> </testcase> <testcase classname="example/gosumtest" name="TestMain" time="0.000000"> <failure message="Failed" type="">=== RUN TestMain&#xA;--- FAIL: TestMain (0.00s)&#xA;</failure> </testcase> <testcase classname="example/gosumtest" name="TestMain/child_1" time="0.000000"></testcase> </testsuite> </testsuites> ``` This output shows that nested test cases are squashed into the `<testcase>` layer by treating them as the same layer as their parent, `TestMain`. We can still distinguish nested ones by their `name` attributes that look like `TestMain/<subtest_name>`. As described in #22795, [vitest] solves the issue in the same way as [gotestsum]. One downside of this would be that one test failure that happens in a nested test case will end up being counted multiple times, because not only the subtest but also its wrapping container(s) are considered to be failures. In fact, in the [gotestsum] output above, `TestMain/child_2` failed (which is totally expected) while its parent, `TestMain`, was also counted as failure. As https://github.com/denoland/deno/pull/20273#discussion_r1307558757 pointed out, there is a test runner that offers flexibility to prevent this, but I personally don't think the "duplicate failure count" issue is a big deal. ## How to fix the issue in this patch This patch fixes the issue with the same approach as [gotestsum] and [vitest]. More specifically, nested test cases are put into the `<testcase>` level and their names are now represented as squashed test names concatenated by `>` (e.g. `parent 2 > child 1 > grandchild 1`). This change also allows us to put a detailed error message as `<failure>` tag within the `<testcase>` tag, which should be handled nicely by third-party tools supporting JUnit XML. ## Extra fix Also, file paths embedded into XML outputs are changed from absolute path to relative path, which is helpful when running the test suites in several different environments like CI. Resolves #22795 [gotestsum]: https://github.com/gotestyourself/gotestsum [vitest]: https://vitest.dev/ --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-03-25fix(ext/fetch): do not truncate field value in `EventSource` (#22368)ud2
Depends on #22493. Closes #22367.
2024-03-25ci: allow "FUTURE" PR title (#23064)Bartek Iwańczuk
Allows to use `BREAKING` prefix in the PR title. This change will allow us to land PRs that change behavior with `DENO_FUTURE=1` env var, and prepare for Deno 2.0 release.
2024-03-24fix: don't panic in test and bench if ops not available (#23055)Bartek Iwańczuk
Fixes regression introduced in https://github.com/denoland/deno/pull/22112 that removed checks if `Deno.test` or `Deno.bench` are not used in respective subcommands. Closes https://github.com/denoland/deno/issues/23041
2024-03-24fix(ext/fetch): make `EventSource` more robust (#22493)ud2
This PR fixes all unhandled rejections and resource leaks found while adding a test for #22368.
2024-03-24docs(dts): Update edge case in `prompt()` docs (#22954)Sol Boucher
This has been incorrect since the function adopted its (more intuitive) current behavior in 9268df5f3. The same behavior change was backported to v1.39.3 in 87e954f54.
2024-03-24fix(ext/node): handle `null` in stdio array (#23048)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/23045
2024-03-24refactor(bench): align ops to testing ops (#23038)Bartek Iwańczuk
Internal refactor that changes how we use ops in `deno bench` subcommand. This brings it in line to what we do in `deno test` subcommand.
2024-03-22perf(cli): use args_os (#23039)Matt Mastracci
Extracted from #22718
2024-03-22perf: warm expensive init code at snapshot time (#22714)Matt Mastracci
Slightly different approach to similar changes in #22386 Note that this doesn't use a warmup script -- we are actually just doing more work at snapshot time.
2024-03-22refactor(ext/ffi): use v8::Value instead of serde_v8::Value (#23035)Bartek Iwańczuk
Follow up to https://github.com/denoland/deno/pull/23034 that removes another usage of `serde_v8::Value`.
2024-03-22feat(publish): check for uncommitted files in `deno publish --dry-run` (#22981)Asher Gomez
Closes #22936
2024-03-22refactor(ext/ffi): don't go through serde_v8::Value (#23034)Bartek Iwańczuk
Removes unnecessary indirection - after creating `serde_v8::Value` it was immediately unwrapped to `v8::Value` by the caller.
2024-03-22refactor(ext/web): use relative specifiers (#23024)Bartek Iwańczuk
2024-03-22fix(ext/node): handle KeyObject in `prepareAsymmetricKey` (#23026)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/20938
2024-03-22fix(ext/node): add crypto.subtle (#23027)Divy Srivastava
Alias for `crypto.webcrypto.subtle`. https://nodejs.org/api/crypto.html#cryptosubtle
2024-03-22fix(ext/node): add crypto.getRandomValues (#23028)Divy Srivastava
Alias for `crypto.webcrypto.getRandomValues`
2024-03-21feat(unstable/publish): error when a package's module is excluded from ↵David Sherret
publishing (#22948) Closes #22657
2024-03-21feat(lint): `deno lint --fix` and lsp quick fixes (#22615)David Sherret
Adds a `--fix` option to deno lint. This currently doesn't work for basically any rules, but we can add them over time to deno lint.
2024-03-21chore: upgrade deno_core to 0.272.0 (#23022)Bartek Iwańczuk
2024-03-21feat(node): load ES modules defined as CJS (#22945)David Sherret
Changes the behaviour in Deno to just always load ES modules in npm packages even if they're defined as CJS. Closes #22818
2024-03-21chore: ignore flaky brotli test (#23020)Divy Srivastava
Closes https://github.com/denoland/deno/issues/22898
2024-03-21feat: deno_task_shell 0.15 (#23019)David Sherret
* feat: implement exit status var (https://github.com/denoland/deno_task_shell/pull/110) * feat: support input redirects (https://github.com/denoland/deno_task_shell/pull/106) * feat: support output fd redirects for stdout and stderr (https://github.com/denoland/deno_task_shell/pull/111) * feat: support parsing fd redirects (https://github.com/denoland/deno_task_shell/pull/107) * fix: exit error code on arg parse failure (https://github.com/denoland/deno_task_shell/pull/112) Closes #22989
2024-03-21feat(ext/node): add riscv64 in process.arch (#23016)Eric Long
Rust triple for riscv64 is riscv64gc. Although there are no official builds for architectures other than x86_64 and aarch64, Arch Linux RISC-V has managed to package Deno on riscv64: https://github.com/felixonmars/archriscv-packages/blob/master/deno/riscv64.patch Ref: https://github.com/denoland/deno/issues/18702
2024-03-21chore: bump simd-json and value-trait (#23015)Eric Long
The newer version of both crates provides fallback, non-SIMD implementation of their functions. Reference: - https://github.com/simd-lite/value-trait/commit/136603dcc6c6313b437cc42410aa4c85c709ea58 - https://github.com/simd-lite/simd-json/commit/f46dc2ab7ca5eab0d531cb7ad7ae11bcac8c2d06 Fixes #23014.
2024-03-21fix(ext/node): ECDH.publicKey() point encoding (#23013)Divy Srivastava
2024-03-21fix(ext/node): panic in `op_node_ecdh_generate_keys` (#23011)Divy Srivastava
2024-03-21refactor(lsp): factor out workspace walk from resolver update (#22937)Nayeem Rahman