先日の最終出社までにどうにか道筋をつけたいと考えていたものの一切どうにもなっていなかったことの一つに、自分のために書いてオープンソースとして公開していて妙に利用者が増えてしまったソフトウェアをどうするか問題があった。諸事情で2024年後半から完全にやる気を失っておりgithub.comにもほとんどログインしていなかった。
もともとこのpip-licensesなるPython上で動作するソフトウェアを作った理由は、当時の勤め先でちょっとした活動をするにあたって解決したい課題があって、サバティカル休暇で時間があったことで一気に書き上げたものだった。僕にとって欲しい機能はv1.0の時点でほぼ完成しており、そのままで良かったのだが、想定外にPRくれる人が居たり、Pythonやpipが毎年新しいバージョンがリリースされるサイクルに変更され、それらに依存するこのソフトウェアも年1回は改修リリースせざるを得ない状況になっていた。よって最初のリリースから6年くらいは真面目にメンテしていて7年目に差し掛かる頃から放置されていたことになる。
もちろん過去に読んだ『OSSライセンスの教科書』でも解説されていた通り、OSIで承認されたライセンスのほとんどは利用者側の自己責任が明記されており、インストール時ライセンスに同意の上で利用しているのだから、作者側は「やる気ないから放棄します」の姿勢でも問題はない筈だ。が、僕自身はプログラミングからは引退するものの別にキーボード打てない状態という訳でもないし、引き続きインターネット上では活動が続いて行くし、どうしたものかなぁと困っていた。
とりあえず久しぶりにGitHubへログインして自分宛てに届いた大量の通知を棚卸していたところ、PEP 541 Request: pip-licensesという連絡が来ていることに気付いた。どうやらこのPEP 541 – Package Index Name Retentionなるプロセスは、作者が行方不明になったり放棄され更新の止まってしまったPyPI(Pythonパッケージを公開するためのソフトウェアリポジトリ)上のプロジェクトを、別の人が引き継ぐために定義されているようだ。承認されれば、同じパッケージ名で別の人が最新バージョンをアップロードできるようになるとのこと。
こういうプロセスが存在すること自体、僕は全然知らなかったし「よく考えられているな〜」とPython全体で整備されている民主的手続きに感心しつつ、せっかくやる気ある人が引き継ぎに向けて動いてくれているようなので、この連絡に乗っかって「自分はもう引退しちゃうからPyPI上で維持することはできないんだけど次に何すればいい?」とコメントし、提案されるがままにメンテナの引き継ぎ作業を開始した。
メンテナを申し出てくれた人に色んな権限を渡したところ、溜まりに溜まっていたPRsが猛烈な勢いで処理され、次のバージョンリリースに向かって爆速で準備が進んでいる。Trusted Publisherに対応することで、今後のリリースはGitHub Actionsから自動でやれそうだし、僕が関知しない間にアクティブなForkも幾つか誕生していたことから、統合の話し合いもコミュニティで始まったようだ。もっと早く引き継ぎやれば良かったなって思いもあるし、でも引退の意思が固まったのは自身の金融資産に一定程度の目途がついた(とはいえ資産の維持や計画的な取り崩しができるか今もって不透明である)最近のことだったから、仕方ないよなの思いもある。
今の気持ちとしては正直ホッとしている。 ホッとしている要因は、きちんと引き継ぎできそうな点はもちろん、想定以上に増えてしまった利用者に対して自分がメンテ継続できない申し訳なさのようなものを感じなくていい点や、自分よりすごい人から来るリクエストやレビュー依頼に対応しなくていい、という点も大きい。
IT業界で仕事していてもそうだし、業務外でOSS活動していても、とにかく自分より若くて才能があって野心に溢れた人が沢山いる。これは業界が知識やスキルの高速道路が常に整備されている以上しょうがないし、もしかしたら僕も(自惚れでなければ)20代-30代の頃は諸先輩方に対して同様に思われてる部分が多少あったかも知れない。勤め先では、自分と同世代か少し上の同僚の中には「若い奴の壁になりたい」と考えて今でも研鑽を怠らない姿勢の人も居た。素直にすごいと思うが僕には研鑽を続けることはできなかった。とにかく、これからは自分よりも若くて優秀でやる気も行動力もある人たちと比べて卑下する思いを抱えなくて済むのは、かなりホッとする。これが正直な気持ちだ。
作者がやる気を失くせばメンテが放棄されるのは当たり前のことだ。自分が使ってるオープンソースのソフトウェアが今日も動いているのは偶然だし、不慮の事故や災害で明日にも更新が止まるかも知れない。npmなんてよく壊れず維持されているよな(もう壊れているのかも知れない)といつも思ってる。QiitaとかZennにOSSの選定理由とか使い方を投稿するのもいいけど、それ以上に死なれて困るソフトウェアがあるなら、何かしら貢献した方がいい。ゾンビ状態で放置されてるソフトウェアなんてGitHubのそこら中に転がっている。
ともあれ、僕はそこそこ使われてしまったOSSの信頼できる人への引き継ぎが幸運にも完了できそうだし、自分のコードがVim/Neovimにマージされた(前にも書いたが僕より遥かに優秀な第三者がやってくれた)し、やる気あった頃にAppleのswiftにもPRがマージされた。また、「オープンソースを支援します」という名目でGoogle先生がTitan Security Keyなるものをプレゼントしてくれたこともあった(2つ貰ったけど2つとも開封していない。GAFAMは色々言われてるけどこうやってOSSを一方的に使うだけじゃなくて人・モノ・金を出すのは偉いと思ってる)。スターエンジニアではなくてもプログラマ人生としては充実していた部類と言えるだろう。引退することに心残りは無い。
引退してしまえば、今とてもホットな領域であるGitHub CopilotとClaude CodeとGemini CLIを誰が一番うまく活用できるか選手権みたいなやつをニュース追いかけて消耗する必要もない。これもホッとする要因の一つだ。最新情報のキャッチアップ競争から降りられるのは本当に嬉しい。願わくば再就職活動が必要になる事態が起きないことを祈っている。
最近のツッコミ
参号館 の中の 日記(ariyasacca)