Node.jsにContributeして一ヶ月でCollaboratorになった

13fbd31a4503c352369aab017e3edef7?s=47 Leko
February 22, 2018

 Node.jsにContributeして一ヶ月でCollaboratorになった

Node学園 29時限目
Node.jsのコラボレータになれたので、きっかけ・なってく過程(どんなコミットしたか)・いざなった後などざっくばらんにお話しします

13fbd31a4503c352369aab017e3edef7?s=128

Leko

February 22, 2018
Tweet

Transcript

  1. Node.jsにContributeして 一ヶ月でCollaboratorに なった Node学園 29時限目 Leko

  2. CureApp, Inc. Tech lead リアル狩猟します。社会人4年目 最近の興味 redux-thunk+ユースケース駆動 x DDD x

    CQRS x EventSourcing Leko / れこ 2
  3. Node.jsのコラボレータになれました 1. きっかけ 2. 最初のコミット(Node学園祭 code + learn) 3. コミットしたことハイライト

    4. Collaboratorにノミネートされた 5. コラボレータになる前後 3
  4. きっかけ JavaScript OSS Contribution Guide 4

  5. Node.jsにコントリビュートするネ タが欲しいです! 今度のNode学園祭でCode + Learnというのがあるから、それ に出ると良いよ ??? 当時(2017/8)、正直よくわかってない 5

  6. Code + Learn Code & Learn events allow you to

    get started (or go further) with Node.js core contributions. Experienced contributors help guide you through your first (or second or third or fourth) commit to Node.js core. They also are available to provide impromptu guided tours through specific areas of Node.js core source code. Code + Learn | Node.js 6
  7. 1. ✋ コラボレータが最初のコミット向けなIssueを集めとく 2. 各自やるタスクを選ぶ 3. ☺ 現コラボレータが初PR出すまでつきっきりでサポート 4. 1-2日でマージされて初Contribute達成

    5. 何回でも参加できそうな雰囲気(2、3、4回目と続く) 各国で定期的に開催されてます。   nodejs/code-and-learn Code + Learn 7
  8. React Nativeアプリ でE2Eテストを回して みた Node学園祭で喋ってきた 8

  9. →とかとか他の発表もだいぶ凄まじかった 喋ってる暇があるなら実力つけて成果あげたい 「そうだ、コラボレータになろう」 なんかもう格が違う...悔しい悔しい(ry 9

  10. Node.jsに貢献したいと!思った! 貢献したいって、Core?TSC?CTC? ...??? コラボレータ目指すなら知っとかないと〜 @Node学園祭 懇親会 10

  11. Core nodejs/nodeのこと。 それ以外にDockerとかnodejs.orgとか色々ある CommComm(Community Committee) Node.jsの全体のコミュニティに関して統括する委員会 Node.js FoundationとNode.jsについて - 技術探し

    @Node学園祭 懇親会 11
  12. Contributeしたくば明日のCode + Learnに来るべし @Node学園祭 懇親会 12

  13. Code + Learn 近道・抜け道はない Code + Learnが最短ルートだと 思った #nodefest_live_academy 13

  14. Code + Learnで出したPR2つ 14

  15. めっちゃTシャツもらった 1PR=Tシャツ1枚 15

  16. 1つ2つContributeしたぐらいで終われない まずはCollaboratorになることを目指している (その先はなったら考える) 翌日 16

  17. Code + Learnには結 構やり残しがある 過去の回にも割とや り残しがある おかわり 17

  18. 18

  19. 残ってたCode + Learnをだいたいやり尽くした PRの数だけ増えても仕方ないし納得感が足りない 少しだけC++分かるしそっち挑むか ちょいネタは飽きた、Contributeみを感じたい 19

  20. 20

  21. 21

  22. クラッシュ 22 デグレを色々踏む。 クラッシュさせるテスト を書き、 テストが通るように 実装を治してく

  23. @Node学園祭のCode + Learn テストカバレッジをあげるのもコント リビューションの一種で、ちょっと難 しいけどありがたがられる 23

  24. https://coverage.nodejs.org cryptoが比較的低め ※今じゃなくて当時のデータ カバレッジを見る 24

  25. ひたすらcryptoのテストを埋めてく 25

  26. 2018/02/16現在 cryptoのjs/C++のソース読んで知らなかった機能やクラス をいろいろ知る 92% → 99% 26

  27. 「Stream を制するものは、 Node.js を制す」 Node.js の Stream API で「データの流れ」 を扱う方法

    - Block Rockin’ Codes stream触りたい 27
  28. 28

  29. 29

  30. 野良Code + Learn インターン生(@shqld)と過去のやり残しでPR出す その後も自力で続いてて6PRくらいマージされてる 30

  31. 31

  32. Collaborator nomination https://github.com/nodejs/node/issues/17602 私だけ枠外から拾ってもらいました感 (まだド新規だけど色々Contributeしてるよ的な) 三度夢に出た。なれなかった夢をみた。 32

  33. TSCのメンバーとリアルタイムにやりとり 自分をCollaboratorsに書き加えてmasterに入れるPR OnBoarding session 33

  34. コラボレータがやること 34 大雑把にいうと、 レビューとmasterへ反映できる COLLABORATOR_GUIDE.md

  35. • コードレビュー ◦ 議論をする英語力のなさ ◦ 前後の文脈が汲み取れない、コードの理解が全然足りない ◦ 見るまでもないシンプルなPRにLGTMする機械と化す • nodejs

    orgの他リポジトリ ◦ nodejs/help、nodejs/modulesあたりは見てるけど ほとんど追いきれない、たまる未読メール いざコラボレータになってみて 35
  36. 仕事でwebpac筋が足りなくてメモリ足りない事案 この前ちょうどそのあたり触るPR出した 一旦workaroundで凌いで、ゆくゆく恒久対応...。 やっててよかった出来事の例 36

  37. (仕事のためにやってるわけではないけど、) CureAppはJS一本で開発しているので、その一角を担う Node.jsに詳しくて損することない、むしろ得しかしない 仕事ともシナジー良さそう 37

  38. 社会的冬眠... 年末ごろから仕事が忙しくなり始める 狩猟は冬(約12~2月)しかできないので集中したい 冬の間は潜る。3月ごろから再開する 38

  39. • コードレビュー、npmのソース追ってみる • Node.js JPの活動に参加する • TSC目指す(英語の聴く/喋るできるようになる) • Collaborator summit行ってなんか喋る

    • 手を広げすぎない程度に他のOSSもコミットする まずやりたいこと 39
  40. • 英語は伝えようとする気持ち。勉強も大事。 • ネタはたくさんあります ◦ レベル感は、超簡単なものからC++の深いところまである ◦ C++レイヤ(src)触ると、大変だけど難しくて楽しい • 1Contributeしたら、折角だし2,

    3と続きましょう (Contributeし|Collaboratorなり)たい方へ 40