概要
社内転職で10月から部署異動しました。今まで業務でOSSにコミットを出す機会は全く無かったのですが、異動先ではML系のOSSに関わることになり、早速Kerasでバグにぶち当たりました。今後ML系のOSSにコミットする機会が増えるだろうと思われます。ところが、TensorFlowやPyTorchなど大手ベンダーが開発してるOSSではCLA(Contributor License Agreement)を提出する必要が有ります。よってTensorFlow(+ Keras)、PyTorch、scikit-learnからなる3大ML系OSSへのコントリビューション時に必要となるCLAやContributionガイドについて本記事ではまとめようと思います。
TensorFlow(+ Keras)
TensorFlowとKerasは本来は別々のOSSとして存在していました。しかし、TensorFlow 1.4.0(2017年公開)からtf.kerasとしてKerasの機能を取り込みました。この時、TensorFlow=tf.keras=Kerasという図式が完成したと言えます。ところがここに来て、スタンドアローンKerasがKeras 3として復活しました。よって違いが分かりにくい状況になっています。そういう事情が有ってか、TensorFlow、Keras共にコントリビューションにはGoogle CLAへの同意が必要です。
Contribution Guide
Google CLA
KerasのContribution Guide
以下は画像処理系の機能が実装されたKeras CVのContribution Guideのリンクです。(Keras Team配下のリポジトリは基本的に同様の規定です)
Keras本体(Keras 3)についてはContribution Guideが格納されていませんが、どうやら他のリポジトリと共通の様です。
2023/12/26追記: KerasのContoribution Guideが追加
Contribution Guideが追加されました。
PyTorch
PyTorchはそもそもMeta(旧Facebook)によって開発されました。しかし、現在はLinux Foundationに移管されているため、Linux FoundationのCLAへの同意が必要です。筆者はPyTorchにPRを出したことがないため、今後CLAの内容を熟読した上で、問題がなければ同意したいと思っています。
Contribution Guide
Linux Foundation CLA
scikit-learn
TensorFlow、PyTorchが大手ベンダーによって開発されたOSSであるためか、Contributionを行う前の諸々の儀式を消化することを求められますが、scikit-learnには2023/11現在CLAなどは存在しません。また丁寧なContribution Guideも公開されており、初めてContributionしようと考えている人向けのgood first issueラベルの付いたテスターの募集などがIssue上に出ていたりします。
Contribution Guide