fsnotify の maintainer 権限まわりで少し騒ぎになっている。
日本語圏では、mattn 氏が X で発信したこともあって、「arp242 氏が横暴に maintainer を外した」「有名 OSS を乗っ取った」「怖い」みたいな受け止め方がかなり広がっているように見える。
ただ、GitHub 上の issue や commit log、実際の contribution を見ると、この見方はかなり雑ではないかと思った。
少なくとも、公開情報を見る限り、arp242 氏が一方的に悪いという話には見えない。むしろ、実質的に長く fsnotify をメンテしていた arp242 氏が、過去の緩い権限付与によって残っていた commit 権限を整理した、という見方のほうが自然に見える。
まず前提として、fsnotify は Go のファイル監視ライブラリで、いろいろなプロジェクトに使われている。Kubernetes などでも間接的に関係するため、supply chain 的にも軽く扱えるものではない。
今回の騒動では、「元 maintainer が外された」「original author まで外された」みたいな話が広がったように見えるが、ここはかなり慎重に見る必要がある。
GitHub の Issue #757 で arp242 氏は、過去に repo が archived されていたこと、自分が Nathan に連絡して引き継ぎ、かなりの時間をかけて整理してきたことを説明している。
また、commit log を見ても、近年の実質的なメンテナンスは arp242 氏がかなり担っていたように見える。arp242 氏自身も以下のような contributor 数を出している。
178 Martin Tournoij <martin@arp242.net> 160 Nathan Youngman <git@nathany.com> 112 Chris Howey <[email protected]> ... 15 mattn <mattn.jp@gmail.com> ... 5 ICHINOSE Shogo <shogo82148@gmail.com>
もちろん commit 数だけがすべてではない。だが、少なくとも「arp242 氏は急に現れてプロジェクトを乗っ取った人」ではない。むしろ、長い間かなり実質的に面倒を見ていた側だと見るべきだと思う。
この件で重要なのは、fsnotify には過去にかなり緩く commit 権限を与えていた時期があったらしい、という点だ。
Issue #126 では、当時の maintainer が「最初の PR 後に commit access を与える」ようなかなり liberal な方針について話している。
つまり、過去に commit bit を持っていたからといって、それが現在の production-critical な OSS における release 権限や main への直接 push 権限を持つべきだ、という話にはならない。
昔の小規模 OSS では、PR を投げてくれた人に commit 権限を渡すような文化はあった。善意ベースではある。しかし、今となってはそのまま残しておくのはかなり危うい。
特に fsnotify のように広く使われるライブラリでは、「昔 PR を出したことがある人」がそのまま release できる状態になっているほうが、むしろ supply chain 的には怖い。
だから、arp242 氏が権限を整理したこと自体は、それほど不自然ではない。むしろ、実質 maintainer としてはやるべき整理だった可能性がある。
今回、個人的に一番引っかかるのは、mattn 氏が .github/FUNDING.yml を変更して、自分を GitHub Sponsors に追加している点だ。
commit はこれ。
- github: arp242 + github: [arp242, mattn]
OSS において funding の設定を変えることは、コードの typo 修正や CI 修正とは意味が違う。既存 maintainer との明示的な合意なしに、自分を sponsor 対象に追加するのは、かなり強い行動だと思う。
しかも、arp242 氏の説明によると、mattn 氏は thanks.dev から過去に funds を引き出していたが、fsnotify で実質的な作業をする前だった、という文脈もあるらしい。
この説明が事実なら、arp242 氏が不信感を持つのはかなり自然ではないか。
少なくとも、「mattn 氏が善意で助けようとしただけなのに、arp242 氏が急に怒って追い出した」という単純な話ではない。
mattn 氏は日本の Go 界隈では非常に有名な人で、技術的な実績も大きい。それは否定しない。
疑問点は複数ある。
もちろん fork や別実装を作る自由はある。OSS なので、それ自体は問題ではない。
しかし、今回の流れでそれをやると、「元プロジェクトの信頼性に疑問があるから、こちらに移行しよう」という空気を作りやすい。実際、日本語圏ではそういう反応も見かける。
これはかなり危ういと思う。
gofsnotify が実際にどういう意図で作られたのかは、外からは断定できない。
ただ、既存プロジェクトと似た API の代替実装を、権限トラブルの直後に短期間で立ち上げることには、少なくとも行儀の悪さがあると思う。
最近は、既存 OSS のコードを AI に rewrite させれば、ライセンス上の制約や由来の問題を回避できる、というような雑な発想も批判されている。AI を通したからといって、設計・API・挙動・テスト・不具合修正の蓄積までクリーンになるわけではない。
gofsnotify がライセンス逃れ目的だと言いたいわけではない。そこは断定できない。
ただ、元プロジェクトへの不信が広がっているタイミングで、似た API の代替実装を AI 利用込みで出し、それを周囲が「移行先」として扱うのは、かなり慎重であるべきだと思う。
少なくとも、「AI で作ったから問題ない」「別実装だから問題ない」「有名人が作ったから信用できる」といった雑な受け止め方は危うい。
今回一番気になったのは、日本語圏での反応だ。
みたいな流れが、かなり安易に見える。
有名人の発言は強い。特に日本語圏では、海外 OSS の issue をちゃんと読まずに、日本語の X の空気だけで判断する人も多い。
しかし OSS の maintainer 権限、release 権限、funding、supply chain は、感情で判断するものではない。
mattn 氏のこれまでの実績と、今回の行動の妥当性は分けて考えるべきだ。
同じように、arp242 氏の言い方がきついことと、権限整理の妥当性も分けて考えるべきだ。
もちろん、arp242 氏が完璧だったとは思わない。
権限を外すなら、事前または直後に issue を立てて説明したほうがよかった。
たとえば、
といった governance note を出しておけば、ここまで燃えなかったかもしれない。
ただし、それは「arp242 氏が悪意を持って乗っ取った」という話とはまったく違う。
説明不足だったことと、権限整理の理由がなかったことは別である。
だから、今回の件を「arp242 氏が横暴だった」で片付けるのはかなり無理があると思う。
OSS の信頼性は、有名人が怒っているかどうかではなく、実際の履歴、権限、資金導線、review、release policy、長期保守の実績で判断するべきだ。
日本の悪いエンジニアおじさんがリポジトリ乗っ取ろうとしたのかと思ってたけど全然違った
AI云々は難癖にしか見えないな。 それはそうとして、死んだようにしか見えないプロジェクトのコミット権持ってたら 別に自分がコミットしてもいいと思っても変じゃないよね、ちょっ...
GitHubよく知らんのだけど これは - github: arp242+ github: [arp242, mattn] 自分のアフィリンク貼ったようなもんという認識で間違いない?
せやで。寄付の受取人に自分を加えたってこと。
5コミットでそれはBotと間違われても仕方がないな🙄
正直さ、銀行、病院、クラウドに影響を及ぼす仕組みを善意のOSSに任せてるってマジ危ねえよな。 そいつらが揉めるだけで全員に影響出るんだもん。問題のfsnotifyだって知らず知らず...
興味ないね
けっ、冷めた野郎だぜ
魔晄中毒ってやつさ
性格は魔晄中毒関係ないだろ なんでもかんでも魔晄のせいにするなよ そういうとこだぞ
AIでフルスクラッチ!これで安心や!
https://b.hatena.ne.jp/entry/4787003676465660994/comment/nguyen-oi オープンソースのガバナンス揉め事は見てて飽きないな。mattn氏の貢献度で叩き合うとか地獄すぎる https://b.hatena.ne.jp/entry/478702519909606...
mattn側の行動 ツイートは削除したけど魚拓(≠Web魚拓)は残してあるとのこと gofsnotifyはまだある イキってforkしたなら説明責任はあるよなーって
またグェンか
IT業界も移民まみれだよな、くっそレベルの低い。AIでええやんけ。
日本人の特徴がよく出ている騒動 何を言ったかではなく誰が言ったかでしか判断できない思考力のなさ 権威持ちが発言したことは全部正しいって思いこんでるんだよね 自分でファンネ...
IT系はコミュ障が多いんだろうな。メンテナ権限の編集履歴が簡単に確認できれば誤解は生じなかったのかもしれないとは思った。
IT技術において日本とかいうゴミみたいに落ちぶれた国でしかイキれない人たちはメインストリームに影響を及ぼさないので問題ないです。
元ツイート消えちゃってるが、個人的に一番悪意があるなと思ったのは、 >> 活動しようと思ったら「勝手なことをするな」と叱られる << ってありもしないことをさも事実かのよ...
issueの方でコメントはしてるぞ https://github.com/fsnotify/fsnotify/issues/757#issuecomment-4403090788
これのこと言っているらしい https://github.com/fsnotify/fsnotify/pull/606
さすがにそれは2年前で古すぎるし、コメント内容もそれほどでもない どう受け取ったのかを別にして、言われたか言われてないかだけを見れば「言われてない」の方が事実寄り
それぞれの変更が何月何日におこなわれたのかまで書いてほしい
たった2週間のコミット継続でいきなりオーナー名乗るのはヤバい そして氏に同調してgofsnotifyに移行しました宣言してる日本の開発者コミュニティ、正直マジでキモイ
OSSなんて好きに分岐してきゃいいだけのもんなのに そこにこういうキモ老害いたら離れて行くわな
普通に fork して Active branch になっときゃいいやんね
XZの偽コミッターよりガバくて草
この記事に登場する二人のメンテナは他者にレビューしてもらうという発想があまりないように感じる。コントリビューターには感謝してもしきれないが、しかしやはりこの構造は危な...
arp242が"rubber-stamp"として批判しているレビューですが、流石に軽すぎる気がしますね。 https://github.com/fsnotify/fsnotify/pull/736 https://github.com/fsnotify/fsnotify/pull/741 https://github.com/fsnotify/fsnotify/pull/...
k8sに使われているリポジトリでこんなんされたら締め出したくもなるわ
あ、コードについてはレビューしてもらっていますね。発言撤回します。
直近のmattn PRのうち、shogo82148がApproveしているものを並べると PR 内容 PR作成→Approve Approve→merge レビュー本文 差分規模 #736 Windows remWatch nil deref修正 約54分44秒 約10分32...
増田に巣作っているIT増田が即トラバを飛ばしているかと思ったら、まったく違うのだが。 IT増田は架空の存在だったのだろうか????
当番組のコンプライアンス的には問題ありません。
この mattn は本当に mattnなんだろうか? スポンサーの件、普段から色々なプロジェクトでそのようにしてるんだろうか? 今回だけそのようにした、と考えるのはかなり奇妙だ 12:47 鋭い...
あーAIエージェント野放し疑惑か
あーこれおもしろいな 悪意を持って解釈すれば FUNDING.mdに自分を追加して thanks.dev 経由の収益を得る committer権限でAI生成したコードをrubber-stamp(実質ノーチェック)で混ぜ込むことでコ...
アメリカで、さまざまな国のバックグラウンドを持つ人たちと一緒に開発していたことがあるけど、「内容ではなく誰の発言かで判断する」のは日本人特有の傾向ではないと思った。 自...
https://github.com/fsnotify/fsnotify/issues/757#issuecomment-4405574715 arp242、紳士的にブチギレとるやないか
とても深い見識のある方の投稿だと感じた。 この内容を見た後に、GitHubのissueを読んでみたら、当初とは全く印象が変わって見えたし、自分にはなかった視点を教えていただけて感謝。
arp242氏は、バグ修正させられて、説明する手間を掛けさせられて可哀想なんだよね。 https://github.com/fsnotify/fsnotify/commit/853adeb28b4e7b01cf719f12619fcdeea8c06d48 👆新たに埋め込まれたバグの修正 h...
k8sのSlackみてるけど、mattnがリリースした1.10.0/1.10.1はk8sとして採用見送りになってるね。 (そもそもk8sの規模的にそんなに爆速で依存ライブラリバージョン上げるようなものではないと...
火のない所に煙は立たぬってのが全て、扇動された人は反省したほうがいい
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww