🚀

初学者があのNASAのOSSにコントリビュートした話

2024/06/09に公開

はじめに

こんにちは!私は大学に入ってからプログラミングを始め、現在はWEBエンジニアを目指している大学二年生です。普段はTypeScriptとReactをメインに学んでいます。

今回は、そんな初学者である私があの超有名なNASA🚀のOSSにコントリビュートした話を書きたいと思います。

貢献したOSSとその正体

  • 今回貢献したOSSと私のPR

https://github.com/NASA-AMMOS/3DTilesRendererJS

https://github.com/NASA-AMMOS/3DTilesRendererJS/pull/576

  • そのOSSの正体

Advanced Multi-Mission Operations System(AMMOS)とは、アメリカ航空宇宙局(NASA)が所有し、カリフォルニア工科大学が管理しているJet Propulsion Laboratory (JPL)という研究開発センターが宇宙船の運用に使用するために作成したサービスとツールの共通セットです。

そのAMMOSの一つが今回の、JavaScriptライブラリである3DTilesRendererJSだったみたいです。
(こんなにすごいものだったことはあとから知りました)

なんかめっちゃカッコイイですね!宇宙船🛸と聞くだけでワクワクします。

どうやって貢献したのか

具体的なOSSへのコントリビュート方法はほかに記事があるので、今回は私が貢献した背景をメインに書きたいと思います。

背景

国土交通省が主導する日本全国の3D都市モデルのオープンデータ化プロジェクトであるPLATEAUを知って、それに興味を持ちました。
その中のチュートリアルでReactとThree.jsを使って3D都市モデルをブラウザ上で動かせるということで、それに従って環境構築などを進めていました。

貢献までの流れ

  1. PLATEAUのチュートリアルを進めていたが、3DTilesRendererJSというライブラリでエラーが出た

  2. そのエラーを解決するために、node_modules内の3DTilesRendererJSのソースコードを読む

  3. エラーの原因がわかり、ローカルで修正できた

    エラーの正体はfor文の変数iの宣言で、letではなくconstを使っていたという単純なものでした。

    - for (const i = 0; i < 10; i++) {
    + for (let i = 0; i < 10; i++) {
    
  4. GitHubで同様のissue, pull requestがないか調べる
    →同じissueがあったが、説明不足のためか未解決のままcloseされていた

  5. 今回の修正はミスであることが自明だったため、PRを直接作成した

  6. 数時間でマージされる

issueから作成するのが一般的ですが、数時間でマージされたことから開発者の方の負担を最小限に貢献することができたのではないかなと思います。

まとめ

エラーの内容こそ単純でしたが、この修正によってOSSの開発者の方々に少しでも貢献できたことが嬉しいです。
今回の経験を通じて、有名なライブラリでも私が貢献できることや、エラー解決、OSSへの貢献の流れを学ぶことができました。

これからも自走できるエンジニアを目指して、OSSへの貢献を続けていきたいです。
最後まで読んでいただき、ありがとうございました!

PS: 最近Twitterを始めました!フォローしていただけると嬉しいです😊
https://twitter.com/imoken__777

Discussion