サーバサイドのJavaScript環境であるNode.jsを使用するアプリケーションの開発現場に米国時間3月22日、大きな混乱が生じた。Node.jsのパッケージマネージャとして広く普及している「npm」の中核モジュールの1つが公開停止になったためだ。
膨大な数のプロジェクトが巻き込まれたこの混乱は、プログラマーのAzer Koçulu氏と、npmを管理する組織、「Kik」というインスタントメッセージアプリの関係者という三者が絡むいざこざに端を発している。
いざこざの結果、Koçulu氏はnpmパッケージに存在する「left-pad」という17行のモジュール(空白行を除くと11行)を削除するに至った。Node.jsを使用する数多くのプログラムは、このモジュールに依存している。
left-padはnpmを通じて、過去1週間で57万5000回、過去1カ月で250万回もダウンロードされているモジュールだ。
ビルドが不可能になったプロジェクトには、FacebookやNetflix、Spotifyなども使用しており、広く普及しているJavaScriptのトランスパイラ(ECMAScript間の動作の違いを吸収するためのコード変換ツール)である「Babel」も含まれている。
今回のいざこざは、Koçulu氏がnpmを通じて公開している「kik」という名前のモジュールについて、Kikの弁護士がこの名称に異を唱えてきたことに端を発しているとKoçulu氏は語っている。Kikの弁護士は同氏に対して、npm上でのkikの公開を中止するよう求めてきたという。
Koçulu氏は「わたしの回答は『ノー』だった」と記している。
Kikの法務チームはその後、npmの最高経営責任者(CEO)Isaac Schlueter氏に連絡を取り、名称の変更を求めた。Koçulu氏によると、Schlueter氏はその後に続いた法的な圧力に屈し、「わたし(Koçulu氏)の許可無しに該当モジュールの所有権を変更することに同意した」のだという。
Koçulu氏はこれに対抗し、npm上にある同氏が開発したパッケージすべての公開を停止した。そのパッケージの1つにleft-padモジュールが含まれていたというわけだ。
npmの最高技術責任者(CTO)兼共同創業者のLaurie Voss氏によると、npmの管理する大量のパッケージに影響が及んだため、モジュールの「公開停止を無効化する」という前代未聞の処置に踏み切ることになったという。
Voss氏は「この処置によって、npmユーザーのコミュニティーというたくさんの人々の利益と、1人の著者の望みが対立することになった。われわれは多くの人々のニーズを優先した」と記している。
「これが正しい処置だったとnpm内の全員が考えているわけではない。しかし、大量のビルドに影響が及び続けているなか、何の対処もせずに指をくわえて見ているわけにはいかなかった」(Voss氏)
「とりあえず、大量のオープンソースプロジェクトがビルド不能に陥っているという問題は解決できたため、今晩はよく眠れそうだ」(Voss氏)
Koçulu氏は、GitHub上で公開している同氏の開発したモジュールの所有権を有志に引き渡す用意があるとしている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。