Ir al contenido
verdict:

Deno 2.9.0

notable

note: la síntesis y las notas de la versión están en inglés

note: sin síntesis para esta release más antigua

Sintetizamos las releases recientes. Las notas de la versión originales de esta versión están aquí abajo.

release-notesgithub.com/denoland/deno · 208 líneas
  1. ### 2.9.0 / 2026.06.25
  2. Read more: http://deno.com/blog/v2.9
  3. - feat(bundle): add --declaration flag to generate rolled-up .d.ts files
  4. (#33838)
  5. - feat(cli): add `deno link` and `deno unlink` subcommands (#34359)
  6. - feat(cli): add `deno watch` subcommand (#35301)
  7. - feat(cli): add deno list subcommand to list declared dependencies (#34972)
  8. - feat(cli): auto-migrate pnpm-workspace.yaml on resolution failure (#34993)
  9. - feat(cli): provide a `node` on PATH when Node.js is not installed (#34969)
  10. - feat(compile): persist Web Storage/KV in a per-app data directory (#34618)
  11. - feat(coverage): add configurable coverage thresholds (#35056)
  12. - feat(desktop): --compress for self-extracting app bundles (#35420)
  13. - feat(desktop): add Linux .deb and .rpm installer output formats (#35296)
  14. - feat(desktop): add Windows .msi installer output format (#35378)
  15. - feat(desktop): autodetect Vite framework (#35470)
  16. - feat(desktop): default UI backend to webview (#35442)
  17. - feat(ext/crypto): support remaining modern WebCrypto algorithms (#35223)
  18. - feat(ext/http): deprecation warning for legacy request abort (#34397)
  19. - feat(ext/net): implement Happy Eyeballs for `Deno.connect` and
  20. `Deno.connectTls` (#31726)
  21. - feat(ext/node): implement node:test mock.module (#35329)
  22. - feat(ext/node): implement node:test mock.timers (#33946)
  23. - feat(ext/web): web locks api (#31166)
  24. - feat(fmt): add sortNamedImports and sortNamedExports options (#33313)
  25. - feat(fmt): infer config from .editorconfig (#34071)
  26. - feat(fmt): use lax-css for CSS, SCSS, and Less (#35160)
  27. - feat(fmt): use lax-markup for HTML, XML, SVG, and components (#35174)
  28. - feat(fmt): use lax-sql for SQL formatting (#35161)
  29. - feat(http): allow disabling serve compression (#35253)
  30. - feat(http): disable Deno.serve automatic compression by default (#35486)
  31. - feat(install): create node_modules for workspace members (#34970)
  32. - feat(install): seed deno.lock from bun.lock (#35394)
  33. - feat(install): seed deno.lock from package-lock.json (#35330)
  34. - feat(install): seed deno.lock from pnpm-lock.yaml (#35346)
  35. - feat(install): seed deno.lock from yarn.lock (#35350)
  36. - feat(install): warn on package.json engines mismatch (#34225)
  37. - feat(lockfile): auto-resolve git merge conflicts in deno.lock (#34726)
  38. - feat(lsp): add inferred type request (#35099)
  39. - feat(napi): implement Node-API version 10 (#35270)
  40. - feat(node): bump reported process.version to v26.3.0 (#34747)
  41. - feat(npm): install jsr deps into node_modules via npm-compat registry (#35029)
  42. - feat(npm): publishing-trust ranking and no-downgrade trust policy (#34927)
  43. - feat(runtime): add request_builder_hook for fetch token and cdn-loop headers
  44. (#35088)
  45. - feat(task): add --if-present flag to deno task (#35315)
  46. - feat(task): add --jobs/--concurrency flag to deno task (#35318)
  47. - feat(task): input-based caching with files/output/env (#34509)
  48. - feat(task): set npm_execpath, npm_node_execpath and npm_command for
  49. package.json scripts (#35317)
  50. - feat(test): add --changed and --related flags to deno test (#35199)
  51. - feat(test): add --shard flag to split a test run across machines (#35057)
  52. - feat(test): add Deno.test.each for parameterized tests (#34938)
  53. - feat(test): add retry and repeats options to Deno.test (#35053)
  54. - feat(test): built-in snapshot testing via t.assertSnapshot (#35139)
  55. - feat(test): show sub-millisecond test durations (#35200)
  56. - feat(unstable): CSS module imports (with { type: "css" }) (#35093)
  57. - feat: `deno desktop` subcommand (#33441)
  58. - feat: `deno remove --global` as alias for `deno uninstall --global` (#35327)
  59. - feat: add "preferPackageJson" deno.json setting (#35392)
  60. - feat: add stable --unsafe-proto flag (#34738)
  61. - feat: enable default minimum dependency age (#35458)
  62. - feat: stabilize "links" field in deno.json (#34996)
  63. - feat: stabilize bare node built-in resolution (#33316)
  64. - feat: support `ignore` option in `Deno.watchFs` (#31582)
  65. - feat: support navigator.userAgentData (#34743)
  66. - fix(check): treat npm .d.ts as CJS based on package.json (#35166)
  67. - fix(core): always register isolate to prevent silent foreground task drop
  68. (#35408)
  69. - fix(core): don't cache WebIDL sequence keys in thread-local v8::Eternal
  70. (#35462)
  71. - fix(core): handle async op promise id wraparound (#35126)
  72. - fix(core): make uv_compat ready queues thread-safe (#35175)
  73. - fix(core): preserve custom .stack getters in error/test formatter (#35246)
  74. - fix(core): unwrap global exports in Wasm ESM integration (#34912)
  75. - fix(coverage): don't panic in summary reporter without a common root (#35211)
  76. - fix(coverage): merge coverage for modules loaded with different hash/search
  77. params (#35354)
  78. - fix(deploy): use JSR latest for deploy CLI (#35493)
  79. - fix(desktop): Wayland support for CEF and webview backends (#35425)
  80. - fix(desktop): add Bluetooth usage descriptions to macOS Info.plist (#35472)
  81. - fix(desktop): add macOS desktop Info.plist keys (#35484)
  82. - fix(desktop): correct libdenort unpack path with non-executable extension
  83. (#35267)
  84. - fix(desktop): hide bundled libc++ symbols so the desktop runtime can be
  85. dlopen'd on Linux (#35424)
  86. - fix(desktop): use native Wayland instead of XWayland on Wayland systems
  87. (#35485)
  88. - fix(ext/crypto): allow deriving AES-OCB keys (#35426)
  89. - fix(ext/crypto): clamp X448 scalar per RFC 7748 (#35157)
  90. - fix(ext/crypto): pad JWK to multiple of 8 bytes for AES-KW wrap (#35475)
  91. - fix(ext/fetch): keep content-encoding and content-length on decompressed
  92. responses (#35124)
  93. - fix(ext/fetch): require --allow-net for Unix proxy in createHttpClient
  94. (#35231)
  95. - fix(ext/fs): truncate should not follow a terminal symlink (#35239)
  96. - fix(ext/http): apply automatic compression for zero-arg serve handlers
  97. (#35490)
  98. - fix(ext/http): close active WebSockets on Deno.serve shutdown (#35105)
  99. - fix(ext/kv): validate remote KV URL when opening the connection (#35106)
  100. - fix(ext/napi): restore Explicit microtask policy in napi_resolve_deferred
  101. (#35212)
  102. - fix(ext/net): cancel in-flight reads when closing TCP/Unix/Vsock streams
  103. (#35294)
  104. - fix(ext/net): set transport on address for TlsListener (#35258)
  105. - fix(ext/node): allow registerHooks with no resolve or load hook (#35235)
  106. - fix(ext/node): avoid panic deserializing empty buffers over child_process IPC
  107. (#35340)
  108. - fix(ext/node): avoid panic when vm.SourceTextModule uses import.meta (#35375)
  109. - fix(ext/node): check --allow-net for proxied request target in node:http(s)
  110. (#35241)
  111. - fix(ext/node): don't apply requestTimeout to active streaming responses
  112. (#35291)
  113. - fix(ext/node): fail node:test on unhandled rejection and enforce timeout
  114. (#35297)
  115. - fix(ext/node): fix `node:test` hook ordering and error handling (#35393)
  116. - fix(ext/node): forward permissions when spawning deno with subcommand args
  117. (#35443)
  118. - fix(ext/node): implement process.resourceUsage() (#35468)
  119. - fix(ext/node): implement t.assert.fileSnapshot for node:test (#35478)
  120. - fix(ext/node): implement test.TestContext.runOnly (#35158)
  121. - fix(ext/node): implement worker_threads.isInternalThread (#35234)
  122. - fix(ext/node): import attributes and custom module types in registerHooks ESM
  123. hooks (#35028)
  124. - fix(ext/node): initialize named stdio exports lazily (#35428)
  125. - fix(ext/node): keep dns.lookup permission token internal (#35224)
  126. - fix(ext/node): make registerHooks resolve hook work for nested imports
  127. (#35169)
  128. - fix(ext/node): preserve AsyncLocalStorage context across node:net callbacks
  129. (#35237)
  130. - fix(ext/node): restore Node binding signature for zlib write/writeSync
  131. (#35238)
  132. - fix(ext/node): single source of truth for emulated Node version (#35273)
  133. - fix(ext/node): stop coloring non-TTY streams in `util.styleText` (#35236)
  134. - fix(ext/node): support AbortSignal.timeout in node:test mock.timers (#35474)
  135. - fix(ext/node): support HTTP/2 on the DENO_SERVE_ADDRESS override listener
  136. (#35089)
  137. - fix(ext/node): trace v8 serializer delegate (#35132)
  138. - fix(ext/signals): build windows-sys only on Windows (#35283)
  139. - fix(install): remove stale root node_modules symlink on deno remove (#35137)
  140. - fix(install): resolve package.json dependencies in global install (#35135)
  141. - fix(install): seed pnpm workspace members and catalog deps (#35376)
  142. - fix(jupyter): report cell errors instead of failing silently (#35328)
  143. - fix(lsp): honor --env-file from deno.json `test` task in test runner (#34905)
  144. - fix(lsp): include tsconfig roots in script names (#34136)
  145. - fix(lsp): make requests work for files opened from node_modules (#35176)
  146. - fix(lsp): report TS2307 for unresolved imports in .d.ts entrypoints (#35469)
  147. - fix(node): expose lazy console stdio streams (`console._stdout`/`_stderr`)
  148. (#35488)
  149. - fix(node): propagate source thread id to `process` `workerMessage` event
  150. (#35374)
  151. - fix(node/test): route nested top-level test() to a subtest (#35406)
  152. - fix(npm): avoid spurious npm re-resolution that fails under --cached-only
  153. (#35051)
  154. - fix(npm): don't apply import map to npm bin main module (#35097)
  155. - fix(npm): make peer dependency warning actionable and show importers (#35242)
  156. - fix(npm): slim cached full packument when minimumDependencyAge is set (#35285)
  157. - fix(npm): support `catalog:` protocol in deno.json imports (#35168)
  158. - fix(npm): symlink workspace npm members into root node_modules by name
  159. (#35383)
  160. - fix(pack): include assets matched by publish.include in the tarball (#35331)
  161. - fix(pack): surface slow type diagnostics (#35379)
  162. - fix(permissions): don't require --allow-run for process.kill on self (#34382)
  163. - fix(permissions): require --allow-net for Unix domain socket ops (#34395)
  164. - fix(permissions): treat Windows `\\?\` verbatim paths as equivalent (#35096)
  165. - fix(publish): continue publishing workspace after a package fails (#35133)
  166. - fix(publish): skip already-published versions before type checking (#35134)
  167. - fix(repl): highlight regex literals correctly (#35103)
  168. - fix(resolver): better hint when importing a linked package by the wrong name
  169. (#35319)
  170. - fix(resolver): resolve linked packages by bare specifier (#35228)
  171. - fix(runtime): capture blob worker roots before revocation (#35128)
  172. - fix(runtime): don't silently lose Deno.watchFs events (#35122)
  173. - fix(runtime): make Deno.test.* sub-methods no-op under `deno run` (#35344)
  174. - fix(runtime): suggest --unstable-unsafe-proto after **proto** access (#35192)
  175. - fix(serve): exit cleanly on SIGTERM/SIGINT in deno serve (#32862)
  176. - fix(serve): shut down old workers on watcher restart (#35136)
  177. - fix(serve): update request_signal_streaming spec for legacy abort warning
  178. (#35193)
  179. - fix(task): set npm lifecycle env vars when running package.json scripts
  180. (#35252)
  181. - fix(test): ignorelist leaks from sanitizer-ignoring tests (#35005)
  182. - fix(test): skip invalid doctest import bindings (#35382)
  183. - fix(test/node): mark test-worker-fshandles-open-close-on-termination as flaky
  184. (#35387)
  185. - fix(tests): skip npm/playwright_compat on windows-aarch64 (#35358)
  186. - fix(update): refetch npm metadata so stale cache doesn't hide newer versions
  187. (#35380)
  188. - fix(upgrade): stream zstd delta patch to avoid 2GiB OOM (#35284)
  189. - fix: Headers inspect for duplicate Set-Cookie values (#35461)
  190. - fix: accept U+30FB KATAKANA MIDDLE DOT in identifiers (#35147)
  191. - fix: cache 404 responses for remote modules (#35138)
  192. - perf(core): reduce snapshotted cppgc op member templates (#35298)
  193. - perf(core): skip source ASCII checks in release runtime setup (#35186)
  194. - perf(ext/crypto): port WebCrypto from JS to Rust (#34966)
  195. - perf(ext/web): port console/inspect to Rust (cppgc object wrap) (#35087)
  196. - perf(macos): enable chained fixups to cut pre-main startup (~0.8ms) (#35409)
  197. - perf(runtime): lazy-load node:buffer and node:timers globals (#35373)
  198. - perf(snapshot): guard against lazy modules leaking into eager snapshot
  199. (#35332)
  200. - perf(snapshot): minify snapshot sources (#35183)
  201. - perf(workers): incremental message-passing cleanups (#35108)
  202. - perf: V8 code cache for residual lazy-loaded ESM modules (#35338)
  203. - perf: gate eager node bootstrap to node workers (#35337)
  204. - perf: lazy-load OSX frameworks with `lzld` (#35341)
  205. - perf: startup profiling instrumentation + clap fast-path (#35263)
  206. - perf: startup time (22ms -> 15ms) (#34450)

ver en githubimported 2026-09-28 vía github-releases