OSS活動を細く長く続ける技術
TIME rest time current/total
TopicsPlaceHolder

OSS活動を細く長く続ける技術

YAPC::Kyoto

Mar 19th, 2023

Profile

songmu

Profile

songmu

最近のOSS活動抜粋

ghq

https://github.com/x-motemen/ghq

ecschedule

https://github.com/Songmu/ecschedule

tagpr

https://github.com/Songmu/tagpr

javaimports

https://github.com/nicolascouvrat/javaimports/pull/65

vimでJavaが書きたくて…。

vim-lsp-settings

https://github.com/mattn/vim-lsp-settings/pull/565

神様みたいな人でもこういうバグを仕込むことがある。こういうのも貢献チャンス。

この発表のゴール

「OSSに貢献する人を増やす」

ソフトウェア開発と人間

そもそも自分は人間とアレコレしたくないからコンピュータを触っているのであった(今どきこういう考えをしている人は少ないのかもしれない)。それなのになせこんなことに……。
-- motemen "ghq など、github.com/motemen 下のリポジトリを x-motemen Org に移しています" https://motemen.hatenablog.com/entry/2020/03/x-motemen-org

OSSとは何か?

「適切なライセンスの下、ソースコードが公開されているソフトウェア」とします

→ 僕しか使ってないような落書き的なものも、このトークではOSSと言い張ります

私とOSS活動

OSS Development as a Hobby

量が質を生むと信じたい

70+ CPAN Modules

pull request歴

Launchable入社に送ったpull request

面接前に試したらGitHub Actions上で動かなかった -> チャンス!

修正はこれだけ

OSSメンテナンスを引き継ぐことが多い

特にghqは多くの人に利用していただいています。

OSS開発者として

OSSは楽しい

疲れてしまう人もいる

Just for Fun: The Story of an Accidental Revolutionary

メリットも後からついてきた

何故OSS活動をするのか

カッコいい・好きを恥ずかしがらずに表明できる勇気

ソフトウェアエンジニアはエモい

技術選定

好きな技術を使えないこともある

楽しむ

ビジネス「も」楽しい

業務でのOSS開発

自社の共通ライブラリをOSSにする

OSSにできるものはOSSにしてしまう

テスト駆動とオープンソース駆動の類似

→きれいな設計になる

OSSに切り出した例

良くも悪くも話題になっていない。

OSS選定やコミュニティとの協調

モジュールの採用基準とオープンソース戦略

協調可能か

pull requestを送って探りを入れるという手も。

hitchの例

自分もpull requestもらったらやる気出して追加でメンテナンスしたりすることもあるので気持ちはわかる

https://github.com/nbio/hitch/pull/11

goblin

https://github.com/bmf-san/goblin

Redis::hiredis

OSSの変更に関わる

ソフトウェアにはバグがある。OSSにも当然ある

pull requestを送る際には

go-yamlへのpull reuqest


https://github.com/go-yaml/yaml/pull/102

h2oへのpull request


https://github.com/h2o/h2o/pull/872

機能追加提案

カルマモデル

OSSへの貢献

OSSへの貢献とは?

別に堅苦しくないし敷居も高くない。いくつかの段階がある。

  1. 使うこと「だけ」でも貢献
    • ただし使っていることを隠さない
  2. 可能なら問題や疑問を報告する
  3. pull requestやパッチを送る

OSSフリーライダー問題

OSS活動を続けるコツ

頑張りすぎない

ドッグフーディングする

やる気になったらすぐ始められるようにする

継続力が無い僕自身の戦略とも言える。やる気になったときの勢いを殺さない。

コードリーディング環境を整える

ghqを使ってコードをすぐ手元に持ってこられるようにする

https://github.com/x-motemen/ghq

手元にOSSのソースを持ってきて、修正作って、pull request出すところを簡素化する。

Minilla

godzilを使ってすぐに新しいプロジェクトを始められるように

アイデアが思いついたらすぐに新しいrepositoryを作れるようにする。

ライブラリは常に最新版を使う

プロダクトを引き継ぐこと

メンテナンス権をもらう話

自分が普段使ってない技術や流儀を知れる

OSSをメンテナンスするメリット

OSS活動に関わるメリット

OSSで学んだこと

OSSは人間同士の営みである

コード多様性

(個人の感想です)

正しいコードの先にある個性豊かな美しいコード

同じものを作るにしてもコードは異なる

「作法」にとらわれない

相手を理解しようとする

OSS活動アンチパターン

車輪の再発明を恐れない

良くない車輪の再発明

独自forkを避ける

無視されてもショックを受けない

github.com/pkg/errors のとあるpull request

https://github.com/pkg/errors/pull/206

github.com/blang/semver

https://github.com/blang/semver/pull/56

OSSと英語

僕はそんなに英語はできない

英語は別にマストじゃない

OSSは英語練習の場に使える

大事なこと

テクノロジーと英語

OSSと課題

OSSに対する過度な期待

Linusは特別

リーダーシップの大事さ

無駄撃ちを気にしない

悪意の混入

CPANのアカウント申請

OSSとSaaS

OSSはどのように向き合うか

隙間家具戦略

隙間はいたるところにある。

https://speakerdeck.com/fujiwara3/aws-devday-tokyo-2019

エコシステム

ビッグテック主導のケースが増えてきた

インディーなOSS開発

まとめ

OSS活動を始める上で大事なこと

ソフトウェア開発と人間

そもそも自分は人間とアレコレしたくないからコンピュータを触っているのであった(今どきこういう考えをしている人は少ないのかもしれない)。それなのになせこんなことに……。
-- motemen "ghq など、github.com/motemen 下のリポジトリを x-motemen Org に移しています" https://motemen.hatenablog.com/entry/2020/03/x-motemen-org

OSSコミュニティで仲間ができて人間関係を楽しめるようになった。

自分が続けたいこと

アンラーニングできていない?と思うことはあるが原体験なので大事にしたい。 「死ぬまで続けるかも」という感覚を持つようになってきた。

宣伝

僕のOSS活動を支援してくれると嬉しいです。