Node.js 26.3.0リリース — BufferプールサイズをデフォルトでKIBに拡大、permission.drop追加など多数の改善

概要 Node.jsプロジェクトは2026年6月1日、現行の最新ラインである26系のマイナーアップデート「Node.js 26.3.0」をリリースした。リリース担当は@aduh95が務め、バッファ管理の改善、パーミッション制御の新機能、HTTP検証オプションの追加、暗号関連の強化など、幅広い領域にわたる100以上の変更が含まれる。 主な変更点 Buffer.poolSizeのデフォルト値を64KiBに拡大 今回のリリースで注目される変更の一つが、Buffer.poolSizeのデフォルト値を従来の8KiBから64KiBへと引き上げたことだ(セマンティック的にはマイナー変更として扱われる)。Bufferプールは小さなBufferオブジェクトを確保する際のメモリ効率化に使われるが、デフォルト値の拡大によりメモリ割り当て頻度が減少し、I/O負荷の高いアプリケーションでのパフォーマンス向上が期待できる。 permission.dropの追加 permission.drop機能が新たに追加された(セマンティック・マイナー変更)。これにより、実行中のプロセスが保有するパーミッションを動的に削除することが可能になる。最小権限の原則に従い、必要なフェーズが終わった後にパーミッションを剥奪するといったセキュリティ強化が実現しやすくなる。 httpValidationオプションの追加 HTTPモジュールにヘッダー値検証を設定するためのhttpValidationオプションが追加された。これにより、HTTPヘッダー値の検証ポリシーをアプリケーションレベルで制御できるようになる。 WebCryptoのプロトタイプ汚染対策強化 WebCrypto APIにおいてプロトタイプ汚染(prototype pollution)に対する防御が強化された。悪意ある入力がObject.prototypeを汚染するリスクを低減し、セキュリティ面での信頼性が向上した。 その他の主要アップデート npm 11.16.0へアップグレード: パッケージマネージャーが最新版に更新された ルート証明書をNSS 3.123.1に更新: TLS通信に使用するルートCA証明書バンドルが最新化された QUIC機能の大幅拡張: ホスト名検証、レート制限、タイムアウト設定など、実験的なQUIC実装が多数の機能強化を受けた インスペクター機能の改善: JavaScriptランタイムへの正確なカバレッジ開始情報が公開されるようになった SQLiteモジュールの改善: 組み込みSQLite機能に複数の修正が加えられた ストリーム処理の修正: ストリームAPIに関する複数のバグが修正された macOSユニバーサルバイナリに関する注記: Appleがインテルアーキテクチャのサポートを段階的に廃止しているため、Node.jsプロジェクトがユニバーサルバイナリを長期的に維持できない可能性があることが明記された(現時点では引き続き両アーキテクチャのバイナリを配布予定) まとめ Node.js 26.3.0は多岐にわたる改善が詰め込まれたマイナーリリースだ。とりわけBuffer.poolSizeの64KiB化はパフォーマンス面での実質的な恩恵が見込まれ、permission.dropの追加はセキュリティ要件の厳しいアプリケーション開発者にとって待望の機能となる。最新版は公式サイトおよびGitHubリリースページからダウンロード可能だ。

June 7, 2026

Rust Foundation、コアメンテナーへの継続支援を目指す「Maintainers Fund」を正式発足

概要 Rust Foundation Leadership Councilは2026年6月2日、Rustプロジェクトのメンテナーを経済的に支援するための「Rust Foundation Maintainers Fund(RFMF)」を正式に立ち上げたと発表した。本基金はRFC #3931として承認された提案を具体化したもので、「Funding team」と「Maintainer in Residence」という2つのプログラムを軸に、コアメンテナーへの継続的かつ安定した報酬を実現することを目指す。設立の背景には、重要なRustメンテナーが企業の予算削減によって資金を失う傾向が観察されているという問題意識がある。 2つのプログラムの詳細 Funding teamは、メンテナーの資金状況を把握し、チームリーダーとの定期的な会合を通じて保守ニーズを洗い出したうえで、企業スポンサーへの投資機会を提案するチームだ。個人や企業からの寄付・支援をメンテナーへの報酬として適切に配分する調整役を担う。 **Maintainer in Residence(MiR)**プログラムは、既存のRustプロジェクトメンテナーに対し、コンパイラ・標準ライブラリ・Cargo・Clippyといった重要領域の保守業務へ専念できる雇用機会を提供する。対象業務は大規模なリファクタリング、コードレビュー、新機能実装の障害排除、課題トリアージ、他の貢献者へのメンタリングなど多岐にわたる。勤務形態は原則フルタイムに近いが、保守領域の特性に応じて柔軟に対応するとされている。 背景と資金調達の方法 RFMFはPython Software Foundation(PSF)が実施している「Developer in Residence」モデルに着想を得ており、設計にあたってPSFとの協議も行われた。Rustの産業利用が急速に広がる一方、持続的な保守を担う人材への安定した資金提供が課題となっていたため、業界の変動に左右されにくい独立した資金源の確立が目標とされている。 資金調達は個人向けにはGitHub Sponsorsを通じた「rustfoundation」組織への寄付、企業向けにはGitHub Sponsorsまたは直接の問い合わせ(contact@rustfoundation.org)という2つの経路が用意されている。集まった収益はすべてRustプロジェクトのメンテナー支援に直接充てられると明記されている。 今後の展望 Rust Foundationは今後数か月以内に最初のMaintainer in Residenceを雇用し、ブログで発表する予定としている。本プログラムは既存の支援施策(プログラム管理プログラム、コンパイラ運用プログラム、RustNL Maintainers Teamによる雇用など)を補完する形で運用される。まだ新しい取り組みであり、進行しながら制度を磨いていく方針が示されており、オープンソースプロジェクトのサステナビリティ確保に向けた新たなモデルとして注目される。

June 7, 2026

Python 3.15.0 Beta 2がリリース、JITで最大13%高速化・遅延インポートが起動を改善

概要 Python 3.15.0 beta 2が2026年6月2日に公開された。計4回予定されているベータリリースの第2弾にあたり、正式リリースは2026年10月を予定している。本番環境での使用は推奨されておらず、現段階ではサードパーティライブラリの互換性確認やフィードバック収集を目的としたテストフェーズとなっている。次のベータ版(3.15.0b3)は2026年6月23日、リリース候補(RC)は2026年8月4日から開始予定だ。 JITコンパイラの強化 今回のリリースで最も注目される変更の一つがJITコンパイラの大幅なアップグレードだ。x86-64 Linuxで幾何平均8〜9%、AArch64 macOSでは12〜13%というパフォーマンス向上が報告されている。また、公式のWindows 64ビットバイナリでは「tail-calling interpreter」がデフォルトとなり、スタックフレーム数が削減されることで実行効率が改善された。 明示的な遅延インポート(PEP 810) PEP 810の実装により、モジュールの読み込みを実際に必要になるタイミングまで遅延させる「明示的な遅延インポート」が導入された。大規模なアプリケーションでは起動時に多数の重いライブラリをインポートするケースが多く、これが起動時間の長さに直結していた。遅延インポートはこの問題に対応し、アプリケーションの初期起動を高速化する効果が期待できる。 その他の主要な新機能 フレームポインタのデフォルト有効化(PEP 831)により、デバッガやクラッシュレポーターがスタックトレースをより正確に取得できるようになる。さらに、サードパーティパッケージへの依存なしにイミュータブルな辞書を扱えるfrozendict組み込み型(PEP 814)とsentinel組み込み型(PEP 661)が追加された。エンコーディング面では、PEP 686によりUTF-8が全プラットフォームでデフォルトエンコーディングに統一され、ロケール依存のバグが削減される見込みだ。プロファイリング機能も強化されており、高周波統計サンプリングプロファイラ「Tachyon」が新たに追加された。 配布・セキュリティ対応 配布形式はmacOS、Windows(32/64ビット、ARM64)に加え、AndroidおよびiOS向けバイナリも提供される。すべてのファイルにはSigstoreによる署名とSBOM(ソフトウェア部品表)情報が付属しており、サプライチェーンセキュリティへの対応も強化されている。コード凍結が予定される2026年8月のRC開始前に、隔離環境での互換性テストが推奨されている。

June 6, 2026

Google I/O 2026:ChromeがAIエージェント時代の「Agentic Web」に向けWebMCPなど15の新機能を発表

概要 Google I/O 2026において、ChromeチームはAIエージェントによる操作を前提とした新時代「Agentic Web」の到来を宣言し、開発者向けに15件のアップデートを発表した。中心となるのはオープンウェブ標準「WebMCP」で、Chrome 149でオリジントライアルが開始される。WebMCPはJavaScript関数やHTMLフォームなどの構造化ツールをブラウザエージェントに対して公開できる仕組みであり、「エージェントが機械向けの関数を呼び出して、複雑なタスクを数秒でより高い信頼性をもって実行できる」ことを可能にする。たとえば旅行の予約をユーザーが手動でフォームを埋めることなく自動化するといったシナリオが実現する。今回のアップデートは、ウェブを「ユーザーが操作するもの」から「エージェントがプロアクティブに動くもの」へと転換させる方向性を明確に示している。 AIエージェント向け主要機能 WebMCPはAIエージェントとウェブサイトをつなぐ最重要機能で、サイト側がJavaScript関数やHTMLフォームを「エージェントフレンドリー」なAPIとして公開できるようにする。Chrome 149でオリジントライアルが始まり、Model Context Protocol(MCP)のウェブ版として位置付けられる。 Chrome DevTools for Agents(Update 3)ではエージェントがDevToolsのコンソールログやアクセシビリティツリーに直接アクセスできるようになる。LY Corporationはこの機能を活用して手動によるパフォーマンス分析作業を96〜98%削減したと報告している。 Modern Web Guidance(Update 2)はコーディングエージェント向けのガイドで、100以上のユースケースをカバーし、ブラウザ互換性指標「Baseline」と統合されている。開発者はモダンで安全かつ高パフォーマンスなウェブ体験を、手動でのフォールバック管理なしに構築できる。 UI・パフォーマンス・ビルトインAI HTML-in-Canvas API(Update 6)は、WebGL/WebGPUのCanvas内に実際のDOM要素を統合する技術で、3Dエクスペリエンスを検索可能・アクセシブル・ネイティブ翻訳対応のまま実現できる。Declarative Partial Updates(Update 7)はシングルページアプリケーション向けにネイティブな部分更新を提供し、複雑なDOM操作を不要にする。Soft Navigations APIはSPAでCore Web Vitalsを計測するための標準として追加された。 Built-in AI(Update 5)では、Prompt APIがChrome 148で安定版となり、デバイス上で動作する超軽量モデル「Gemma 197M」も利用可能になった。Gemma 197Mはサーバーコストなしで無制限のリクエストを処理できる点が評価されており、Trip.comはローカルAIサマリーによりサーバー費用を削減している。 Gemini統合とユーザー向け機能 Chromeに直接統合されるGemini機能も複数発表された。Android向けGemini統合(Update 10)は2026年6月から提供開始予定で、記事の要約やコンテキスト質問、カレンダー・Gmail・Keepとの連携ができる。Auto Browse(Update 11)はパーキングの予約などのタスクをAIエージェントが自動化する機能でAndroidとデスクトップの両方で動作する。Skills in Chrome(Update 13)は頻繁に使うAIプロンプトをワンクリックツールとして保存・再利用できる機能だ。また、音声インタラクション(Update 15)ではGeminiモデルを用いた文字起こし補正付きの音声フォーム入力が可能になる。 今後の展望 Expedia、Booking.com、Shopify、Trip.comといった主要企業がすでにこれらの技術を試験運用しており、ウェブのエージェント対応が加速している。Googleは今回の発表を通じて、ブラウザを「ユーザーが全力で操作しなければならないもの」から「ウェブがプロアクティブにユーザーのために動くもの」へと変えるビジョンを明示した。WebMCPをはじめとするオープン標準化への取り組みは、特定ベンダーに依存しないエージェント対応ウェブの基盤づくりに向けた重要な一歩として注目される。

June 4, 2026

Rust 1.96.0リリース:コピー可能なRange型の安定化とセキュリティ修正

概要 Rust 1.96.0が2026年5月28日に正式リリースされた。今回のリリースでは、RFC 3550に基づくコピー可能なRange型の安定化が目玉となっており、これまでの制約を解消する設計上の改善が加えられている。またassert_matches!マクロの標準化、WebAssemblyターゲットにおける安全性強化、そしてCargoのセキュリティ脆弱性2件の修正も含まれている。更新はrustup update stableで行える。 コピー可能なRange型の導入 最大の新機能は、RFC 3550に基づく新しいRange型群の安定化だ。従来のstd::ops::RangeなどのRange型はIteratorトレイトを直接実装していたため、Copyトレイトを実装できないという制約があった。新しく導入されたcore::range::Range、core::range::RangeFrom、core::range::RangeInclusiveは「IntoIteratorを実装する」設計に変更されており、この制限が解消された。 これにより、スライスアクセッサをコピー可能な型のフィールドに保存するといったユースケースが可能になる。なお、新しいRangeInclusiveはフィールドが公開されており、従来版とは構造が異なる点に注意が必要だ。現状、0..1のようなRange構文は依然として従来型を生成するが、将来のエディションで新型を生成するよう変更される予定とされている。 assert_matches!マクロの安定化と他の変更 assert_matches!およびdebug_assert_matches!マクロが標準ライブラリに安定化された。これらはパターンマッチによるアサーションを提供するもので、サードパーティクレートとの名前衝突を避けるため標準プリュードには含まれておらず、使用時は明示的なインポートが必要となる。安定化されたAPIには他にも、AssertUnwindSafe、LazyCell、LazyLock向けのFrom<T>実装3種が含まれる。 WebAssemblyターゲットにおいては、リンカーの--allow-undefinedフラグのデフォルト使用が廃止され、未定義シンボルがあるとリンクエラーになるよう変更された。これによりビルド時に潜在的なバグを早期に検出できる。既存のビルドで問題が生じる場合は、RUSTFLAGS=-Clink-arg=--allow-undefinedで従来の動作を維持できる。 セキュリティ修正 今回のリリースにはCargoに関するセキュリティ脆弱性2件の修正も含まれている。CVE-2026-5223(中程度)はシンボリックリンクを含むtarボール展開時の問題で、CVE-2026-5222(低程度)はURL正規化における認証情報の取り扱いに関する問題だ。いずれもサードパーティのクレートレジストリを利用している場合に影響する可能性があるが、crates.ioのユーザーには影響しないとされている。

June 4, 2026

Microsoft Build 2026:WindowsをAIエージェント基盤に再定義、Project PolarisでOpenAI依存を脱却

概要 Microsoft Build 2026が6月2〜3日にサンフランシスコのフォートメイソンで開幕し、Microsoftは「Windowsをエージェントプラットフォームとして再定義する」という方針のもと、開発者向けの大型発表を相次いで行った。約2,500人規模の開発者イベントとして設計された今回のカンファレンスでは、AIエージェントが中心テーマに据えられ、エンタープライズ展開から本番運用フェーズへの移行を加速する施策が打ち出された。 最大のサプライズはProject Polarisの発表だ。MicrosoftがGitHub Copilotのデフォルトエンジンとして採用しているGPT-4 Turboを自社開発モデルに置き換えるプロジェクトで、2026年8月より切り替えが始まる。Mixture-of-Experts(MoE)アーキテクチャを採用した同モデルは、HumanEvalおよびMBPPベンチマークでGPT-4 Turboを上回るとされ、特に低リソース言語での性能が強みとして挙げられた。この移行によりMicrosoftはモデル・推論インフラ・開発者体験の全てを自社コントロール下に置くことになる。 Windows AIエージェントプラットフォームの構造 Windowsのエージェント基盤は以下の3層アーキテクチャで構成される。 Windows Agent Framework(WAF)v1.0はMITライセンスで公開される開発者向けSDKで、YAMLでエージェントを定義すればローカルマシンからWindows 365 Cloud PC、Azure Arcエッジデバイスまでアーキテクチャの変更なしにスケールできる。Windows Agent RuntimeはOSレベルのネイティブAPIを提供し、エージェントをファーストクラスの存在として扱う。現在のプレビューではJSON・XML・PDFファイルに対するテキストベースのエージェントをサポートしており、AdobeやZoomなどがパートナーとして参加している。Windows Agent Storeはキュレーションされたエージェントのマーケットプレイスで、収益の85%が開発者に配分される——これは現行のMicrosoft Storeと同条件だ。 インフラ面では、オンプレミス・クラウド・エッジにまたがる実行を統合するAzure Agent Mesh(2026年Q4 GA予定)、Intel・AMD・Qualcomm NPUの差異を吸収してクラウドラウンドトリップなしにローカルAI推論を可能にするDirectML 2.0、GPU/NPUアクセス付きでLinuxカーネルを仮想化するWSL 3も発表された。 GitHub CopilotとAzure AI Foundryの強化 GitHub Copilot/Copilot Workspaceがベータを卒業し、正式リリースとなった。Jira・Datadog・ServiceNowとの拡張機能連携、自律的な反復タスクを処理する「フリートモード」、スケジュール実行でバックグラウンド操作を行う「オートパイロット」機能が追加されている。またCopilotはマルチモデル対応にシフトし、OpenAIモデルに加えてAnthropicのClaudeも代替として選択できるようになる。 .NETおよびPython向けのAgent Framework 1.0も本番提供が開始された。階層的なエージェント調整、イベント駆動型ワークフロー、ステートフルなエージェント機能をサポートする。Azure AI Foundryのモデルカタログは約1,600から3,000以上に拡張され、エージェント評価ツールとDevUIデバッガーも追加された。 マルチモーダルモデルMAI v2 Microsoftは自社のマルチモーダルモデルスイート「MAI v2」も発表した。画像生成・編集機能を持つMAI-Image-2.5、14言語・感情表現に対応したMAI-Voice-2、前バージョンMAI-Transcribe-1が25言語で単語誤り率3.9%(FLEURS)を達成しており、その漸進的な改良版であるMAI-Transcribe-1.5の3モデルで構成される。価格設定は一般提供時に公表される予定だ。 今回のBuild 2026は、MicrosoftがAzure AI収益の拡大を背景に、単なるAIモデルの提供者からエンドツーエンドのエージェント実行基盤へと自社を再定位する戦略的転換点と言える。Project PolarisによるOpenAI依存の低減は、同社のAI事業における長期的な独自性確保という観点でも注目される。

June 2, 2026

Rust 1.96.0リリース — Copy対応の新Range型安定化とCargoのセキュリティ修正

概要 Rustチームは2026年5月28日、Rust 1.96.0を正式リリースした。今回のリリースで最も注目すべき変更は、RFC 3550に基づく新しいcore::range名前空間のRange型の安定化だ。assert_matches!およびdebug_assert_matches!マクロも正式に利用可能となり、WebAssemblyターゲットのリンク動作変更、Cargoに関する2件のセキュリティ脆弱性修正も含まれている。 新しいCopy対応Range型 従来のcore::opsに定義されているRange型(0..5などのリテラルで生成される型)は、Iteratorトレイトを直接実装していたためCopyトレイトを実装できなかった。これにより、Range値をCopyな構造体フィールドに保持することができないという制約があった。 Rust 1.96.0では、RFC 3550にもとづいてcore::range名前空間に新しいRange型(Range、RangeFrom、RangeInclusive)が安定化された。これらはIteratorの代わりにIntoIteratorを実装する設計に変更されており、Copyトレイトが実装されている。これにより、Range値をコピー可能な構造体に格納したり、関数呼び出し後も元の値を使い続けることが可能になる。 現時点では0..5のような範囲構文は従来のcore::ops型を生成し続ける。Rustチームは将来のエディションでこの構文を新しいcore::range型に移行する計画であり、移行期間中はライブラリ作者に対して公開APIでimpl RangeBoundsを使用し、旧来型・新型の両方をサポートすることが推奨されている。 assert_matches!マクロの安定化 assert_matches!およびdebug_assert_matches!マクロが安定化された。これらのマクロは、ある値が特定のパターンにマッチすることをアサートするためのもので、マッチに失敗した場合は期待パターンと実際の値が表示されるため、従来のassert!(matches!(...)) よりも診断メッセージが格段に読みやすくなる。なお、使用する際はコード内で明示的にインポートが必要となる。 WebAssemblyの変更とセキュリティ修正 WebAssemblyターゲットのビルドにおいて、リンカの--allow-undefinedフラグがデフォルトで削除された。これにより、未定義シンボルが存在する場合はリンクエラーとなり、バグの早期発見に役立つ。 またCargoでは2件の脆弱性が修正された。CVE-2026-5223はtarball展開時のシンボリックリンク処理に関連する中程度の脆弱性、CVE-2026-5222は正規化URLの認証処理に関連する低程度の脆弱性だ。いずれもサードパーティのレジストリを使用している環境が影響を受けうるもので、crates.ioのみを利用しているユーザーへの影響はない。 まとめ Rust 1.96.0はパターンマッチのユーザー体験向上と、長年の課題だったRange型のCopy非対応問題に取り組んだリリースだ。新しいcore::range型はまだ将来のエディション移行に向けた準備段階だが、今からライブラリ設計に組み込むことで将来の移行をスムーズにできる。セキュリティ修正も含まれており、Cargoを使用しているプロジェクトではアップデートが推奨される。

May 31, 2026

KernelScript 0.1:eBPF・ユーザー空間・カーネル空間を単一コードで扱う型安全DSLが登場

概要 Linux Open-Source SummitにてKernelScript 0.1が発表された。KernelScriptはeBPF・ユーザー空間・カーネル空間の開発を単一のコードベースに統合することを目的とした型安全なドメイン固有言語(DSL)で、Apache 2.0ライセンスのオープンソースとして公開されている。従来、eBPFプログラムをC言語で手書きするには複雑な知識とボイラープレートが必要だったが、KernelScriptはその複雑さを抽象化し、必要なコードやMakefile、カーネルモジュール統合コードを自動生成することで開発効率の向上を目指している。 技術的な詳細 KernelScriptは主要なeBPFプログラム種別を幅広くサポートしている。ネットワークパケット処理向けのXDP(eXpress Data Path)、トラフィック制御向けのTC(Traffic Control)、カーネル関数のトレーシングに使うプローブ、そしてパフォーマンスイベントプログラムが対象となっている。データ構造についてはハッシュマップ、CPU別配列、LRU(Least Recently Used)マップ、ピンマップといったeBPF標準の各種マップ型に対応する。 さらに高度な機能として、テールコールの自動化、dynptrによる動的ポインタ処理、プログラムライフサイクルチェック、kfunc(カーネル関数)統合もサポートされている。これらの機能を一つの言語で統一的に扱えることで、ネットワーク・トレーシング・可観測性・セキュリティ・パフォーマンス分析といったeBPFの幅広いユースケースにおける開発体験が改善されることが期待される。 現状と今後の展望 開発チームは現時点のリリースをあくまで実験的なものと位置づけており、構文やAPIは今後変更される可能性があるとして本番環境での使用を推奨していない。バージョン0.1という初期段階のリリースながら、eBPF開発の敷居を下げるという方向性は明確であり、今後のコミュニティの反応や継続的な開発進捗に注目が集まる。

May 28, 2026

Angular 22 RC公開——Signal Forms安定化やセレクターレスコンポーネントなどSignal-First設計への転換が進む

概要 Angular 22のリリース候補(22.0.0-rc.1)が2026年5月20日に公開され、安定版リリースを目前に控えている。v22では Signal Forms(リアクティブフォームの新API)の安定化と、セレクターレスコンポーネントの導入が予定されており、Angular 21で先行投入されたゾーンレス変更検出のデフォルト化やVitestへのテストランナー切り替えと合わせて、「Signal-First」設計への転換が一段と進む節目のリリースとなる。 なお、Angular 19は2026年5月19日にEOL(サポート終了)を迎えており、以降はセキュリティパッチも提供されない。Angularチームはv19在籍中に少なくとも3件の高深刻度CVEが発生した事実を挙げ、EOL後の継続利用リスクを強調している。 主要な新機能・変更点 Signal Forms の安定化は v22 最大のハイライトとして予定されている。Angular 21では @angular/forms/signals 経由で実験的 API として提供されていたが、v22 では従来の ReactiveFormsModule に代わる Signals ベースの新しいリアクティブフォーム API として安定版に到達する見込みだ。valueChanges.pipe(takeUntil(...)) のような RxJS パターンが不要になり、フォームの状態管理がよりシンプルかつ型安全になる。 ゾーンレス変更検出のデフォルト化は Angular 21 ですでに導入済みで、v22 でも継続される。新規プロジェクトでは Zone.js が不要となり、Signals ベースの変更検出機構がデフォルトで有効になる。Zone.js の除去によってバンドルサイズが削減され、変更検出のオーバーヘッドも大幅に低減される。既存プロジェクトへの自動適用はなく、段階的な移行が可能だ。 セレクターレスコンポーネントの導入により、selector プロパティを省略したコンポーネント定義が可能になる。ルーターや動的ロードなど、テンプレートへの直接埋め込みが不要なユースケースで冗長なセレクター定義を省けるようになる。 Vitestへの移行は Angular 21 で実施済みで、v22 でも継続される。Karma は完全廃止となり Vitest が標準テストランナーとなっている。Vitest は Karma と比較して5〜10倍高速とされており、開発者体験の大幅な改善が期待できる。 移行上の注意点 Angular 21 で導入された以下の破壊的変更は、v22 への移行時にも引き続き考慮が必要となる。 OnPush がデフォルト変更検出戦略に: 新規コンポーネントのデフォルトが ChangeDetectionStrategy.OnPush となる ng-reflect-* 属性の削除: デバッグ用属性が本番ビルドから除去される NgModuleFactory の削除: 旧来の NgModule ベース API が完全廃止 HammerJS 統合の削除: タッチジェスチャーサポートが組み込みから分離 Node.js v22.22.0 以上(または v24.13.1 以上)が必須: 旧バージョンの Node.js はサポート対象外となる NgModule を多用する既存の大規模プロジェクトや、サードパーティライブラリへの依存が強いチームにとっては、移行コストが相応に発生する可能性がある。移行の優先度はアーキテクチャの複雑さとデプロイプロセスを踏まえて評価することが推奨される。 ...

May 26, 2026

npm 11.15.0でステージド公開と非レジストリインストール制御が正式提供、サプライチェーン攻撃対策を強化

概要 GitHubは2026年5月22日、npmのセキュリティを強化する2つの主要機能を発表した。一つはステージド公開(Staged Publishing)の一般提供開始、もう一つはnpm 11.15.0で追加された非レジストリソースからのインストール制御フラグ群だ。いずれも、TeamPCPのようなサイバー犯罪グループによるオープンソースパッケージへの大規模なサプライチェーン汚染キャンペーンが増加する中、供給チェーン全体の防御を強化することを目的としている。 ステージド公開:2FA承認を挟むリリースフロー ステージド公開は、従来の「npm publish で即時公開」というモデルを改め、リリース前に人的承認ステップを挟む仕組みだ。開発者がCI/CDパイプラインから npm stage publish を実行すると、ビルド済みtarballがステージキューにアップロードされ、2FA(二要素認証)を有効にしたメンテナが明示的に承認するまで、利用者はそのバージョンをインストールできない。承認はnpmjs.comのウェブUIとnpm CLI両方から操作可能となっており、CI/CDは非対話的に実行し、メンテナが後から確認・承認するという運用モデルが想定されている。 この機能を利用するにはnpm CLI 11.15.0以上が必要で、対象パッケージはnpmレジストリに既存のものに限られる(新規パッケージは初回公開にステージド公開を使用不可)。また、OIDCトラステッドパブリッシングと組み合わせてパーミッションを stage-only に制限すれば、CIから直接公開することを完全に禁止できる。これにより、CIが侵害された場合でも悪意のあるバージョンが即座に配布されるリスクを大幅に低減できる。 インストールソース制御フラグ npm 11.10.0で導入された --allow-git フラグ(Gitソースからのインストール制御)を拡張する形で、npm 11.15.0では以下の3つの新フラグが追加された。 --allow-file: ローカルファイルパスおよびローカルtarballからのインストールを制御する --allow-remote: httpsなどのリモートURLからのインストールを制御する --allow-directory: ローカルディレクトリからのインストールを制御する 各フラグは all(現在のデフォルト)または none の値を受け入れ、CLIオプション・.npmrc・package.json のいずれでも設定できる。なお、--allow-git はnpm v12(次期メジャーバージョン)でデフォルトが all から none に変更される予定であり、今後はレジストリ外ソースへの依存がより明示的な許可を必要とする方向に進む見通しだ。 セキュリティ上の意義 これらの機能は、レジストリ外ソースからの依存関係導入や、CI/CDを経由した意図しないパッケージ公開を防ぐ明示的な許可リスト方式を提供する。サプライチェーン攻撃の手口が高度化・大規模化する現状において、パッケージのライフサイクル全体にわたってメンテナの意図的な関与を求める設計は、エコシステム全体の信頼性向上に寄与するものと評価されている。

May 25, 2026