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

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

July Tech Festa 2021 Winter

Jan 24th, 2021

Profile

songmu

【宣伝】Nature Remo

アジェンダ

OSSとは何か?

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

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

私は何者か

経歴

ソフトウェアエンジニアとして

質より量

70+ CPAN Modules

pull request歴

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

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

OSS開発者として

最近のOSS活動

gotesplit

https://github.com/Songmu/gotesplit

github.com/shogo82148/go-sql-proxy

今年に入ってから3つpull requestを取り込んでもらった。

github.com/kayac/ecspresso

一昨日。バグを見つけてから15分でpull request送信。

https://github.com/kayac/ecspresso/pull/229

私とOSS

幸せなOSS開発者人生

OSS開発が趣味

OSS趣味活動と業務

自分の普段使いの道具をOSSにする

GitHubはエンジニアにとってのお絵かきサービスくらいの感覚

小粒なモジュールを組み合わせてソフトウェアをつくる

OSSの原体験

PSGI/Plack

h2o

Our Free Software Runs Your Company

旧CPANの中にあったページ。

http://web.archive.org/web/20150308210439/http://hexten.net/cpan-faces/

業務でのOSS開発

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

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

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

→きれいな設計になる

現職でOSSに切り出した例

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

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

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

協調可能か

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

hitchの例

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

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

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出すところを簡素化する。

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

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

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

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

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

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活動を支援してくれると嬉しいです。

We are hiring!