アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

npm icon-gen v1.2.1 release

April 04, 2018開発icon-gen, npm

icon-gen v1.2.1 をリリースした。

icon-gen 本体については特に機能追加とかバグ修正はないのだけど PNG ファイルから画素を抽出するのに利用している pngjs が Node v9.x 系で動作しないため、代替として pngjs-nozlib へ乗り換えた。

これは pngjs の fork 版で Node 標準の zlib 依存を排除したもの。npmjs からの repository リンクだと本家 pngjs 側になっているけどコードは mikolalysenko/pngjs に公開されている。

pngjs の問題は元々、icon-gen の issue として 2017/11/27 に報告されていた。

これを報告者の lmm-git (Leonard Marschke) 氏が pngjs 本家 issue としても登録。

そして現時点では Pull Request をもって close。pngjs v3.3.2 へ反映されたのだが、残念なことに直っていない。icon-gen の dependencies を更新しても再発するので v3.3.2 時点の pngjs を clone してユニット テストを走らせたも、やはり通らない。

というわけで関連 issue をたどって見つけた pngjs-nozlib を採用することにしたのだった。ちなみに pngjs 作者の lukeapage (Luke Page) 氏いわく、

I closed it because a contributor claimed their Pr fixed it.. sorry it didn’t.

I don’t actively maintain pngjs any more.. I’m happy to merge prs and release but I don’t have time to fix this. If you send a Pr I will merge it.

とのこと。Pull Request がきたら採用するけれど自身として積極的に修正することはしないそうだ。本家 issue の関連や npmjs 上の Dependents を見るとわかるように pngjs は相当に著名なツールなのだけど、そうしたものでもやはり個人開発だと運用持続に期待するのは厳しいなぁ、と感じた。

かくいう私も例外ではない。せっかく issue 登録してもらっても長く放置することがある。趣味プロジェクト運用は私生活や気分に左右されやすい。最近だとエレキ ギターを十数年ぶりに再開したこともあって趣味プロジェクトに注いでいた気力をだいぶ奪われてる。

著名プロジェクトなら Organization にすれば?という意見もあるだろう。それは分かるけど Organization もなんだかんだコミュニティー運営することになるわけで、それも結構な気力を使う。どうしても機能追加とかバグ修正したいユーザーがあれば Pull Request してくれるだろうし、それ待ちでいいやとなるのはよくわかる。

以前 Takuto Wada(@t_wada)さんが書いた

を思い出した。pngjs は「良いソフトウェア」である。一方で今回の問題は Node v9.x で破壊的な変更が入って巻き添えを受けた形になる。こうした参照される側の影響で「良さ」以前に互換性が壊されたとき、それに対する責任は参照する側に問われるべきだろうか。LICENSE テキストに書かれた免責事項はどれぐらい有効なのか。

気分がのったとき自分のほしいものを自己責任で公開して適当に雑にゆるやかに運用してゆくだけ。そんな OSS はたくさんありながらもそうと認識されておらず、ある日とつぜん問題が顕在化して騒ぎになるのだろう。これからも。

免責事項により参入障壁は下がりプレーヤー増加と競争を促している側面がある。強く責任を求められる文化だったらここまで OSS が隆盛することはなかっただろう。いつか誰かが作り直せばいい。以前よりも少しだけ前進すればいい。という楽観的で寛容な文化と責任のせめぎあい。

などと、とりとめもなく考えてみたものの結論はない。有効な手立ても思いつけないでいる。

Copyright © 2009 - 2023 akabeko.me All Rights Reserved.