2024/11/04〜2024/11/10の最新情報

Deno v2.0.5 Deno v2.0.5がリリースされています。 Workspaces メンバーのワイルドカード形式での指定がサポート ワークスペースのメンバーの指定でワイルドカード形式がサポートされています: { "workspace": [ "./packages/*" ] } fix(workspace): support wildcard packages #26568 deno add/deno install package.jsonを更新する際の振る舞いの変更 Deno v2.0.0-rc.2では、package.jsonが存在する状態でdeno add/deno installによってnpmパッケージを追加しようとした場合、deno.jsonではなく常にpackage.jsonが更新されるよう挙動が変更されました。 Deno v2.0.5ではこの挙動が微調整され、deno.jsonとpackage.jsonの両方が検出された場合、package.jsonの配置場所がdeno.jsonよりも現在のパスに近いときだけpackage.jsonにnpmパッケージ(npm:)が追加されるよう変更されています。 fix(add): only add npm deps to package.json if it’s at least as close as deno.json #26683 deno fmt YAMLでのdeno-fmt-ignore-fileディレクティブのサポート # deno-fmt-ignore-fileから始まるYAMLファイルはdeno fmtコマンドによるフォーマット対象から除外されるように挙動が変更されています。 fix(fmt): ignore file directive for YAML files #26717 deno coverage コメントの集計対象からの除外 コメントの行がdeno coverageコマンドによる集計対象から除外されるよう振る舞いが改善されています。...

November 10, 2024

2024/10/14〜2024/10/20の最新情報

Deno v2.0.1/v2.0.2 Denoのv2.0.1とv2.0.2がリリースされています: v2.0.1 v2.0.2 Node.js互換性の改善 CommonJSサポートの改善やWrangler/SvelteKit/Next.jsなどに関するサポートの改善が行われています。 --unstable-detect-cjs --unstable-detect-cjsという新しいオプションが追加されています (deno.jsonで"unstable": ["detect-cjs"]を指定して有効化することも可能です) このオプションを指定すると、package.jsonで"type": commonjsが指定されたパッケージの.jsファイルが.cjsファイル(CommonJS形式)として認識されます。 feat(unstable): --unstable-detect-cjs for respecting explicit "type": "commonjs" #26149 node:net: Socket#setNoDelayが実装 新規APIとしてSocket#setNoDelayが実装されました。 このAPIによってnode-postgresなどのパフォーマンスの改善が期待されるようです。 fix(ext/node): implement TCP.setNoDelay #26263 node:child_process: fork()での--no-warningsのサポート fork()のexecArgvオプションでNode.jsの--no-warningsがサポートされています (Denoの--quietオプションにマッピングされます) Wranglerを動作させるための対応のようです。 fix(child_process): map node --no-warnings flag to --quiet #26288 node:dns: lookup()の互換性の改善 lookup()でlocalhostを解決する際の振る舞いがNode.jsと一致するよう挙動が改善されています。 fix(ext/node): fix dns.lookup result ordering #26264 node:process (Windows) 未サポートのシグナルの取り扱いの変更 Windowsにおいて未サポートのシグナルに対して警告を発するのではなく、単純に無視されるように振る舞いが変更されています。パッケージによっては多くの警告が出てしまうこともあったようです。 fix: don’t warn on ignored signals on windows #26332 process....

October 20, 2024

2024/08/26〜2024/09/01の最新情報

Deno v2.0.0-rc.0 Deno v2.0.0-rc.0がリリースされています。 アップデートについて 今回、GitHub Releaseは作成されていないようなので、deno upgradeによってアップデートする必要がありそうです。RCバージョンへのアップデートはDeno v1.46でサポートが入っているため、それ以前のバージョンをお使いの場合は、一度、v1.46を経由してからアップデートする必要がありそうです。 $ deno upgrade 2.0.0-rc.0 もし現在のDenoの実行可能ファイルを上書きしたくない場合は、--outputオプションを使えば回避できます: # `./deno-2.0.0-rc.0`に保存します $ deno upgrade --output deno-2.0.0-rc.0 2.0.0-rc.0 直近の変更点について コミットログを参考に、v2.0.0-rc.0に入っている可能性がありそうな内容について紹介します ⚠️ここで書いている内容には推測も含まれています。もし機能が入っていなそうでしたら、すみません🙏 DENO_FUTURE=1設定時の振る舞いのデフォルト化 DENO_FUTURE=1を設定した際の振る舞いがデフォルト化されたようです。 BREAKING: DENO_FUTURE=1 by default, or welcome to Deno 2.0 (#25213) 具体的には、以下のような変更がデフォルトで適用されます: Deno.*配下の非推奨APIが削除されます window変数が削除されます FFIやWebGPU APIなどが--unstable-*なしでも有効化されます Import Assertionが無効化されます package.jsonがあればBYONMがデフォルトで有効化されます --node-modulesオプション Deno v2 向けに--node-modulesというフラグが追加されています。 ⚠️上記のコミットログ内に含まれているため紹介しますが、試したところうまく動いていないようにも見えるので、もしかしたらこの変更はまだv2.0.0-rc.0には入っていない可能性もあるかもしれません🙏 feat(config): Node modules option for 2.0 (#25299) 以下の3種類のモードが指定できるようです: モード 説明 備考 local-auto おそらく、Denoがnode_modules/を作成してくれるモード local-manual おそらく、BYONMが有効化されます v2ではpackage....

September 1, 2024

2024/04/15〜2024/04/21の最新情報

deno_stdの安定化について deno_stdの安定化とそれに関する運用について以下のようなissueが公開されています。 The Road to Stabilizing the Standard Library (denoland/deno_std#4600) 今後の運用と計画について 今までdeno_stdは全てのモジュール(std/assert, std/pathなど)がdeno.land/stdで単一のパッケージとして公開されていました。JSRがリリースされたことで、各モジュールを個別のパッケージとして公開することが可能になりました。そのため、今後は@std/assertや@std/pathなどの各パッケージごとに独立してバージョンを割り当てて管理することが想定されているようです。 また、今後はdeno_stdのリリースをDeno本体とは独立して行うことも計画されているようです。 Deno v1.42.4 Deno v1.42.4がリリースされています。 Node.js互換性の改善 node:vmでrejectされたPromiseがうまく取り扱われるように改善されています。これによりDenoでdocusaurus buildコマンドが動作するようになったようです。そのためdeno-docsリポジトリではDenoを使用してDocusaurusのビルドを実行するように変更が行われています。 use Deno (denoland/deno-docs#423) deno publish classのprivate指定されたプロパティでdefinite assignment assertionが使用されている場合に、deno publishコマンドが失敗する問題が修正されています。 kvdex v1 kvdex v1がリリースされています。 JSRパッケージが公開されています。また、@deno/kvもサポートすることで、Node.jsやBunでの利用がサポートされているようです。

April 21, 2024

2024/04/08〜2024/04/14の最新情報

Deno v1.42.3 Deno v1.42.3がリリースされています。 deno run --inspect Inspector用のポートがすでに使用されていた場合に、deno run --inspectがパニックする問題が修正されています。 nodeModulesDir (--node-modules-dir) "nodeModulesDir": trueの有効化時に、同一npmパッケージが重複して二重に読まれてしまうことのある問題が修正されています。 jsr 型チェックなどに関する様々なバグが修正されています。 dynamic importでjsr:がうまく解決されないことのある問題が修正されています。 オーバーロード関数の定義にスプレットパラメータが使用されているものがあった場合、deno publishなどによる型チェックが失敗する問題が修正されています。 https://github.com/denoland/deno/pull/23187 deno_std v0.222.0 deno_std v0.222.0がリリースされています。 std/testing/bdd.ts 以下のエイリアスが追加されています。 test (itのエイリアス) before (beforeAllのエイリアス) after (afterAllのエイリアス) std/expect expect.addSnapshotSerializersが実装されています。 std/semver std/semver/types.ts Comparatorオブジェクトの非推奨化されていたsemverプロパティが削除されています。 greaterThanRange/lessThanRange 新しいAPIとしてgreaterThanRangeとlessThanRangeが追加されました。 std/console std/consoleがstd/cliに統合されています。std/consoleはまだ削除されずに残っているものの非推奨化されています。 std/crypto/crypto.ts 下記APIが非推奨化されています。 FNVAlgorithms wasmDigestAlgorithms (DIGEST_ALGORITHM_NAMESへの移行が推奨) WasmDigestAlgorithm (DigestAlgorithmNameへの移行が推奨) std/encoding/varint.ts std/encodingにおける他のモジュールとの命名の一貫性向上のため、以下のAPIが非推奨化されています。 非推奨API 移行先 decode decodeVarint decode32 decodeVarint32 encode encodeVarint std/yaml/schema 下記の定数がリネームされています。...

April 14, 2024

2024/04/01〜2024/04/07の最新情報

Deno v1.42.1 Deno v1.42.1がリリースされています。 deno publish compilerOptions.{noUnusedParameters,noUnusedLocals}にtrueが設定されていると、deno publishの実行時にリモートモジュールで型エラーが発生する問題が修正されています。 node:tty ReadStreamでTypeError: Cannot read properties of undefinedエラーが発生する問題が修正されています。 Introducing Simpler Project Creation in Deno Deploy Deno公式からDeno Deployのアップデートに関する記事が公開されています。 Introducing Simpler Project Creation in Deno Deploy プロジェクトを新規作成する際のフローに関して、以下のような改善が行われているようです。 既存のGitHubリポジトリをDeno Deployに接続する際のフレームワークの自動検出がサポート 任意でビルドステップの指定がサポート。ビルド時に実行するコマンドを入力することで、Deno Deployが自動でGitHub Actionsの設定ファイルを作成してくれるようです deno.re deno.reというモジュールレジストリが公開されています。 モジュールの公開などにあたって特に作業などは不要で、GitHubに公開された任意のモジュールをタグまたはコミットを指定して読み込むことができるようです。また、必要に応じてモジュールのminifyなども実行してくれるようです。 thoth thothというDeno KVをベースに全文検索機能を提供してくれるjsrパッケージが公開されています。

April 7, 2024

2024/02/12〜2024/02/18の最新情報

Deno v1.40.5 Deno v1.40.5がリリースされています。 denort (deno compile向けの軽量バイナリ) deno compile向けの軽量バイナリであるdenortが再導入されています。これにより、deno compileによって生成される実行可能ファイルのサイズがかなり縮小されるようです。 feat: denort binary for deno compile #22205 GitHub Releaseに各プラットフォーム向けのdenortバイナリがアップロードされており、deno compileを実行する際にダウンロードされ、利用されます。 Remove denort optimization #10350 DENO_FUTURE環境変数の導入 DENO_FUTUREという環境変数が導入されています。この環境変数は、将来的なDenoのバージョンで実施予定の破壊的変更をテストしやすくするために導入されたようです。 今のところ、この環境変数を設定するとglobalThis.windowが削除されるようです。 $ DENO_FUTURE=1 deno repl --eval='console.log(globalThis.window)' undefined Add DENO_FUTURE env var for testing breaking changes (#22315) その他 deno lspでjsr:サポートの実装が進んでいるようです (#22382, #22418) CompressionStream/DecompressionStreamで処理を中断すると、リソースリークが発生する問題が修正されています (Aborting a CompressionStream/DecompressionStream leaks a resource #14212) deno.jsonから依存パッケージを削除すると、deno.lockが壊れてしまうことがある問題が修正されています deno_std v0.216.0 deno_std v0.216.0がリリースされています。...

February 18, 2024

2024/01/22〜2024/01/28の最新情報

Deno v1.40 Deno v1.40がリリースされました。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.40 deno_stdでのワークスペースの導入について deno_stdでワークスペースやdeno publish、“fast check”などの導入に向けた準備が進んでいるようです。 chore: set up workspace publish from CI #4210 もし今後、パッケージの公開やワークスペースの利用などを検討されている際は、参考になるかもしれません。 std/kvについて deno_std/kvモジュールの開発が行われているようです。 feat: std/kv まだ入るかどうかは不明なのですが、今後、こちらからDeno KV関連のユーティリティが提供されていく可能性がありそうです。 Deno v1.40.1 Deno v1.40.1がリリースされています。 v1.40.0でdeno lspにおいてデフォルトでcompilerOptions.experimentalDecoratorsが無効化されていなかったため、改めて無効化されています。 Deno v1.40.2 Deno v1.40.2がリリースされています。 Deno.FsFileでinstanceofが動作しなくなっていた問題が修正されています。 また、v1.40.0で導入された非推奨API使用時の警告メッセージが簡略化されています。 もし、v1.40.0時点での詳細な警告メッセージへ戻したい場合は、DENO_VERBOSE_WARNINGSを設定する必要があります。 deno_std v0.213.0 deno_std v0.213.0がリリースされています。 破壊的変更 非推奨化されていたモジュールやAPIが削除されています。 std/http/cookie_map.tsが削除されています。 std/semver/format.ts: function format(semver: SemVer, style?: FormatStyle): string形式が削除されています。 std/semver/compare_build.tsが削除されています。 std/semver/rsort.tsが削除されています。(reverseSortへの移行が推奨されます) 非推奨化 std/path std/path/constants.tsが追加されています。 これに合わせてstd/path/separator.tsが非推奨化されました。このファイルで公開されていたSEPはSEPARATORに、SEP_PATTERNはSEPARATOR_PATTERNにリネームされており、それぞれconstants.tsからの読み込みが推奨されます。 std/semver std/semver/types.ts: SemVerRangeが非推奨化されています。代わりにRangeが追加されているため、そちらのへの移行が推奨されます。 std/semver/outside....

January 28, 2024

2024/01/01〜2024/01/07の最新情報

Deno v1.39.2 Deno v1.39.2がリリースされました。 Node.js互換性 BYONMとImport Mapsを併用できるようになりました。 また、import.meta.resolve()でnpm:URLがサポートされています。 import.meta.resolve("npm:express"); // => "npm:express" Node.jsの組み込みパッケージに関しても様々な改善が行われており、試せてはいないのですが、next buildが動作するようになったようです。 node:dgram: Socketのunref/refが実装 node:http: ClientRequest#setNoDelayが実装 node:crypto: aes-192-ecbとaes-256-ecbがサポート node:process: process.abort()が実装 node:os: os.machine()が実装 node:os: os.cpus()の互換性の向上 (今まではダミーの値が返されていました。) node:test: TestContext#testで2段階以上のネストがサポートされました。 deno lsp V8インスペクターへの接続がサポートされています。 vscode_deno v3.31.0で"deno.internalInspect"オプションが追加されており、これにtrueなどを設定すると有効化されるようです。 Debugger listening on ws://127.0.0.1:9222/ws/<id> Visit chrome://inspect to connect to the debugger. compilerOptions.jsxImportSourceで指定されたモジュールをdeno lspが自動でキャッシュするように挙動が改善されました。 Test code lensでDeno.test.only/Deno.test.ignoreを使用して定義されたテストケースが検出されるように改善されました。 deno check deno checkコマンドでdeno.jsonのexcludeの内容が反映されるように改善されました。 Deno KV DBがクローズされたらウォッチャー(Deno.Kv#watch)も自動で停止するように挙動が改善されています。 Object.groupBy 戻り値の型がRecord<Key, Item[]>からPartial<Record<Key, Item[]>>に変更されました。 deno_std v0.211.0 deno_std v0....

January 7, 2024

2023/12/18〜2023/12/24の最新情報

Deno v1.39.1 Deno v1.39.1がリリースされました。 Deno.serveのUnixドメインソケットサポートの安定化 Deno.serveのUnixドメインソケットサポートが--unstableなしで動作するようになりました。(Deno v1.39) deno coverage deno coverageの実行時にディレクトリの省略が任意に変更されました。(デフォルトとしてcoverage/が使われます) deno jupyter importされたモジュールでDeno.testを使っているとパニックする問題が修正されています。 Node.js互換性 Prismaなどが動かなくなってた問題が修正されているようです。(https://github.com/prisma/prisma/issues/2452#issuecomment-1866409306) また、node:cryptoで以下の対応が実施されています。 pseudoRandomBytes()が実装されています。 fork()から返却されたChildProcessに対してkillを呼ぶと、プロセスがハングする問題が修正されています。 deno_std v0.210.0 deno_std v0.210.0がリリースされました。 非推奨モジュール・APIの削除 std/crypto/to_hash_string.tsが削除されました。(encodeHexやencodeBase64への移行が推奨されます。) std/encoding: ascii85.ts/base32.ts/base58.ts/base64.ts/base64url.ts/hex.tsからencodeとdecodeが削除されました。 std/http/method.tsが削除されました。 非推奨化 std/semver parse()とcanParse()からSemVerを引数に取る形式が非推奨化されました。 rcompare.tsが非推奨化されています。 isSemVerComparatorがisComparatorへリネームされています。(isSemVerComparatorは非推奨化されています) SemVerComparatorがComparatorへリネームされています。(SemVerComparatorは非推奨化されています) std/encoding/base32.ts byteLength()が非推奨化されています。 cli/spinner.tsが実装 CLI向けにスピナーを表示できます。 import { Spinner } from "https://deno.land/std@0.210.0/cli/spinner.ts"; const spinner = new Spinner({ message: "Loading..." }); spinner.start(); try { await doSomething(); } finally { spinner.stop(); } std/logでJSONL形式でのロギングがサポート handlersのセットアップ時に、formatterにjsonFormatterを指定すると有効化されます。...

December 24, 2023