大人気OSSのオーナーになると言うこと

2025-12-06 19:58

tags: #oss #poem

こんにちは。

先日の記事に引き続き、またRustOwlの話ですが、今回はOSSという側面から話をしたいと思います。 あと先日の記事とは違う会社のアドカレです。

この記事はLivetoon Tech Advent Calendar 2025の5日目の記事らしいです。 アドベントカレンダーお馴染みの遅刻記事ですみません。

Livetoonと言うところでは、AIキャラクターとお話ができるアプリであるkaiwaというプロダクトをやっています。 私もインフラなどの面倒をみました。 今回のアドベントカレンダーでは、そんなLivetoonのメンバーがアプリ、LLM、音声合成、インフラ、GPUなど色々な話をするらしいです。 ぜひ記事を追ってみてくださいね。 私ももう一本書きます。

はじめに

この記事はなかなか経験することのないであろう、「リポジトリがバズって人気OSSのオーナーになってしまったでござる!w」を記録として残しておくことにより、今後の自分や同じ経験をする誰かの役に立てばいいなという備忘録です。

いきなり人気OSSのオーナーになって、OSS運営にあたって何をすればいいとか、どういうことが起きるとか、そんなことはどうやら一般的な話ではないらしく、どこにも指南がなくて、私はかなり困りました。 そんな困り事をまた抱えるかもしれない未来の私(私は2回目のバズ経験なので、2度あることは3度ありそう)や、同じ悩みを持つかもしれない未来の誰かへ、やったこと、やっておいた方が良かったことをまとめたいと思います。

リポジトリがバズったらまず何をするか

さて、リポジトリがバズったらまず何をするべきでしょうか。

答えはひとつではないと思います。 私はバズったのが夜中〜早朝にかけてだったので、バズったことに気付いてとった行動は、軽く情報収集だけして、翌日の労働に備えて寝ることでした。 勿論労働中は寝不足でした。 もう少し長い期間を見て、私的にやったこと、やっておいた方がいいことをまとめておきたいと思います。 大体やった順番に書いていきます。

やったこと:ライセンスの確認をする

これは防衛本能みたいなものなのかもしれませんが、バズってまずやったことはライセンスの確認でした。 というかそもそもLICENSEファイルを置いてなかったような気がします。 ライセンス周りを確認し、問題なさそうと判断してMPL-2.0を付与しました。

ライセンスはOSS開発の上で必須の考慮事項です。 バズるバズらないに関わらず、常日頃から意識しておきましょう。 言い訳をすると、そもそもRustOwlは査読者に見せる用のリポジトリだったので、そこまで意識していませんでした……

やったこと:ドキュメントを整える

ドキュメント、特にREADMEはリポジトリの顔です。 私はバズってからと言うより、公開を決めたタイミングでREADMEを整備しました。

最低限の使い方などは書いてあったのですが、もう少し踏み込んで、どう言うことができるのか?などを記載しました。 この辺は元々査読用だったこともありしっかりやっていました。

もう少し踏み込むと、見栄えを良くする、と言うのはバズにおいて大きな要素だったと思います。 例えば名前を大きな文字にする、中央揃えする、絵文字を入れたりする、これだけでかなり見栄えは変わります。

やったこと:最低限のCI/CDを書く

バズってからすぐにCIを整備しました。 元々は査読者に見せる用のリポジトリだったので、なんの準備もしていませんでした。 後日、大学の先輩に「CIすらなかったからPR送ろうと思ったら先に実装された」と言われたくらいです。

何より、CI、テストはPRを受け入れるために必須と言えるでしょう。 もしバズった時にCIがないのであれば、すぐに準備したほうがいいです。

やったこと:情報収集をする

私は根っからのX人間だったので、すぐにXでの情報収集を始めました。 問題点やissueに書かれていない良いこと、悪いことが書かれていたりします。 私はこれでGitHubのトレンドに載っていることに気付いたので、良かったです。

やったこと:信頼できる人にメンテナを頼む

大量のissue、PRを見るのは1人では不可能です。

例えそのプロジェクトについて詳しい人が自分しかいなかったとしても、issue、PRの緊急度や分類などのトリアージをしてくれる人がいるだけで助かります。

私は何人かにメンテナをお願いしつつ、issueでメンテナを募集し、今では知らない人もメンテナに入ってくれています。 コントリビュータの中からメンテナに興味がある人に声をかけたりすると良いでしょう。

やったほうが良かったこと:Issueのテンプレートを用意しておく

バズると、さまざまなフォーマットのissue、PRが発行され、混沌としてきます。

フォーマットやテンプレートにバージョンや環境を書く欄を設けるだけで、それらの質は上がります。 さらに、読む側の負担もいくらか減るでしょう。 これは早めにやっておきたいことでした。

今では他のメンテナにこれを作ってもらい、かなり良くなりました。

やったほうが良かったこと:community organize

これはまぁ必要になってからで良いですが、コミュニティを組織し、議論の場などを用意することも大事です。 最初はGitHub Discussionsで始めましたが、だんだん議論の複雑化やセキュリティの懸念、メンテナとの今後の方針などを議論するにあたり、Discordサーバを用意することになりました。

メンテナ、コントリビュータが、場合によってはサードパーティが関わってくるので、その点ではコミュニティ運営が求められるようになります。 私もまだ正解はわかっていません。 私のコミュニティはまだ小規模なので良いですが、もし大きくなってきたら、コミュニティを組織するためのメンバーなども必要になるでしょうね。 そのためのスタッフになってほしい人に声をかける準備をしておくと良さそうです。

大人気OSSのオーナーになると言うこと

前節でも書きましたが、OSSがバズると言うのは、「そのプロジェクトのトップに立つ」と言うことです。 ライセンス、品質管理、議論のまとめ、実装方針の意思決定など、様々なメンテナンスの中心人物になります。

複数のメンテナから「最終的な意思決定をするのはあなただから」と言われたことをよく覚えています。 特にプロジェクトが小規模なうちは、そのプロジェクトのオーナーに意思決定が委ねられることとなるでしょう。

トップに立つと言うことは、当然責任が伴います。 プロジェクトに参画してくれるメンバーが増えると言うことは、トップは当然そのコミュニティを運営しなければなりません。 コミュニケーションを円滑に保ち、外部からの参加者を受け入れ、議論し、場合によっては他のOSSコミュニティともコミュニケーションを取らないといけないでしょう。 私は特にパッケージリポジトリのコミュニティとコンタクトを取るのが大変でした(まぁこれは提案してくれたコントリビュータがほとんどやってくれましたが)。

しかしながら、この物語はあなたが始めたものです。

無理な時は手伝いを頼めるメンテナを増やしましょう。 友人などを誘う、コントリビュータを誘う(大人気OSSともなれば、必ずメンテナに手を挙げてくれるコントリビュータがいると思います)、色々あると思います。

そうしながら、余裕を持って運営をしていきましょう。 任せられる人、法人が現れたら、そこに移譲してしまうのも手だと思います。 持続可能なプロジェクトこそ、真に人の役に立てるものだと思います。

あなたのプロジェクトが、持続可能でありますように。

おわりに

と言うことで、大人気OSSのオーナーになると言うこと、そしてその時に何が起こるのか、何をするのか、について書きました。

ここ一年、特にバズってからの数ヶ月は大変でしたが、その代わりに得られたものもたくさんありました。 この記事が、未来の誰かの役に立てれば嬉しいです。

おまけ:RustOwl、バズへの時系列

ここからは、実際にRustOwlがバズった経緯を時系列順に書いていこうと思います。 特に役立つことではないと思いますが、備忘録的に書いておきます。 あと、バズることで起きる面白イベントについても書いてあるので、そう言うのも面白半分で書いておきます。

XとRedditへの投稿

私のインターン先(Livetoonではないところ)では、Webバックエンド開発にRustを利用していましたから、インターン先の方にフィードバックをいただきたくて、社内にRustOwlの紹介をしました。 その際に、「これを他の人に流してもいいか」「Xに流していいか」と言われ、「まぁ別にダメなことはないか」と思い、自分でもXに投稿しました。 また、「RustのRedditに投稿するといいかもね」とも言われ、Redditのアカウントを登録し、投稿してみました。

XもRedditも数百単位の反応をもらえ、色々な改善案をもらい、改善を重ねました。 その段階では、まだまだ少し人気のプロジェクト、くらいのもので、大きな話題にはなっていませんでした。

バズに気づく

朝4時くらい、普通に寝ていたところ、スマホの通知が次々届き、異様さに目が覚めました。 スマホを見るとGitHubから大量のissue、PRを通知するメールが来ていました。 それらに共通するリポジトリ名を見て、何が起きたか気付きました。

「またバズった……?」

2020年にTweet generatorのバズを経験し、人生2度目のバズだったので、割とビビりながらもバズったと言う状況に気づきました。 「一体なぜ……?」と思いつつ「RustOwl」で検索すると、YouTubeの動画が引っかかりました。

そう、YouTubeのインフルエンサーみたいな人がRustOwlのことを紹介していることに気付いたのです。 最初の印象は「プログラミング言語ってYouTubeで学ぶ時代なんだ……」と言う驚きでした。

その日は仕事があったので眠ろうとしたのですが、結局あまり眠れないまま、issueやPRを眺めていました。

1kスターを超える

RustOwlのスター数が1,000を超えたとき、GitHubの画面の上部にデカい領域が現れました。 趣旨は「Successorを指定してください」と言うもの。

「Successorってなんだ……?」と思いリンク先を見ると、要は「お前のプロジェクトくそデカいから、お前が死んだ後にお前のプロジェクトを引き継ぐやつを選びな!」と言うことでした。 「GitHub的には1,000スターってそんなにデカプロジェクト扱いなんだ……」となりつつも、とりあえず当時メンテナーの一人であった人にお願いしました。

その後、より私に近い人と言うことで、別の方にお願いしたのですが、それはまた別のお話……

GitHubのトレンドに載る

GitHubのトレンドと言うものが存在していることは知らなかったのですが、Xでエゴサをしていたら、GitHubのトレンドを投稿しているbotの存在に気づきました。 それをみると、トレンドにギリギリランクインしているではありませんか!

そうして、そこから数日は毎日GitHubのトレンドを確認していました。 最高で日間トレンド4位、週間トレンド6位と言うことで、本当に「GitHubでバズった」ことが明白になりました。

GitHubでバズると、ホーム画面のフィードに「あなたのリポジトリがスターされました」と言うのが無限に流れてきます。 Xの「ちょWおまw有名人じゃんw」「通知止まらんwww」の状況です。 もはやフォローしている人の動向なんて追える状況ではありません。 ホーム画面のフィードが完全に破壊されました。

多忙を極める

そこから数日の間、毎日何件も押し寄せるissue、PRに対応し続けました。 雑に置いておいたものだったので、CIもなければClippyも通しておらず、まずはCIを整備して、Clippyを通したPRをマージして……から始まり、未対応エディターのサポートリクエスト、バグ、ドキュメントなど、広範囲に渡って対応が必要になりました。 この間は正直研究や仕事には手が付かずと言う感じで、それはもう大変でした。

あとは、コミュニケーションが大変でした。 特にパッケージリポジトリのコミュニティのコミュニケーションはもう…… とても疲れましたが、いい経験でした。

おしまい

と言うことで、楽しくも苦しい、OSSという活動にオーナーとして関わることができた、貴重な体験でした。

実は現在、RustOwlのスター数は4,800件以上と、Rustの有名ライブラリであるtowerや、公式の正規表現ライブラリregexよりも多いです。 正気か?

なのできっと大人気OSSを名乗ってもいいだろうと言うことで、本記事を書きました。

今思えば本当に皆様には感謝しかないです。 多くの方に支えられ、RustOwlは大きく育ちました。 そしてまた、私自身の成長や、就職活動のネタとしても大変役に立ちました。

ありがとうございます、そしてこれからもよろしくお願いいたします!