pandasのベンチマークと多様性を向上させるためのNumFOCUS助成金の報告
ルーシー・ヒメネスとドロシー・カバロジ・B
私たちは、NumFOCUSがpandasプロジェクトにスポンサーとして提供した、**ASVベンチマークフレームワークの改善と多様性の取り組み**に関する私たちの経験を共有したいと思います。
この助成金は、2つの側面に焦点を当てました。1つ目は、Pythonパッケージのベンチマークに使用され、pandasも使用しているツールであるasvライブラリを改善することです。このプロジェクトはメンテナンスされておらず、コードベースはかなり古く、さらに、現代の標準に準拠しておらず、削除できるPython 2互換コードがあり、CIも改善する必要がありました。2つ目は、過小評価されているグループがオープンソースプロジェクトに貢献することを奨励することです。この助成金は10週間にわたり、週に約20時間かけて行われました。ウガンダのドロシー・カバロジ・Bとコロンビアのルーシー・ヒメネスが、マーク・ガルシアの指導の下で開発しました。
なぜ私たちはこの助成金に参加したのですか?
私たちは異なるバックグラウンドを持っており、ドロシーはシステムエンジニアリング、ルーシーは計算化学出身ですが、常にオープンソースソフトウェアプロジェクトに参加し、貢献することに興味を持ってきました。そのため、私たちはそれぞれのコミュニティでPyLadiesのミートアップ(PyLadiesカンパラ、PyLadiesコロンビア)を運営しており、貢献につながる機会を常に探していました。
すべてはマーク・ガルシアを通じて始まりました。彼はソーシャルメディアの投稿を通じて、多様なバックグラウンドを持つ女性を指導するために呼びかけました。ドロシーはpandasのメンターシップグループに参加することになりました。同時に、ルーシーはSciPy Latamカンファレンスの共同オーガナイザーであり、そこで講演者であったマークと出会い、この相互のつながりを通じて、このベンチマーク助成金について知ることができました。
要するに、カンファレンス、ミートアップ、ソーシャルメディアに参加することで、これらの機会につながるつながりを作ることができます。
ソースコードから学ぶ
助成金の開始時、私たちは基本から始めました。私たちは、GitとGitHubの管理スキルを向上させることができることに気づきました。たとえば、gitワークフローに問題があったため、それについてさらに読み、練習する必要がありました。貴重なリソースの1つは、マークによるオープンソースへの貢献方法に関する説明であり、ぜひご覧ください。
私たちは、この助成金を通じてソースコードから多くを学び、ベストプラクティスとコード品質に関する膨大な知識を得ました。私たちは、コードのスタイルを改善してPEP-8ガイドラインに従うように更新したり、Python 2互換コードと6つの依存関係を削除したり、未使用のコードを見つけて削除したりすることに取り組んできました。また、GitHub Actionsについても学び、asvパッケージ用のCIをGitHub Actionsで構築し始めました。そのため、Flake8によるリンティング、pytestによるテスト、ドキュメントの構築、さまざまなPythonバージョンでのCIの実行に取り組んでいます。
さらに、ソースコードのバグを特定したり、他の貢献者からのプルリクエストをレビューしたり、新しいissueを作成したりすることができました。これは、メンテナーだけができることであり、貢献者はできないと思っていました。最後に、コード自体のレビューだけでなく、プロジェクトの構造とフォルダー階層もより透明になり始めました。
私たちの経験
この助成金では、素晴らしいメンターであるマーク・ガルシアがいました。彼は常に知識を共有し、不明確な概念を説明し、役立つフィードバックを快く提供してくれました。そのフィードバックを実装すると、より多くの問題をより迅速に処理することが容易になりました。このプロジェクトを開始してから成長を感じ、より多くのオープンソースプロジェクトに貢献する際に、これを持ち続けていきたいと思います。これはすべて、彼の素晴らしいメンターシップによるものです。また、このプロセス中に他の貢献者、ステークホルダー、コア開発者からもフィードバックを受け、オープンソースプロジェクトでの作業をより広く見ることができたことも重要です。
また、強力なチームワークパートナーシップを築きました。タスクをよりよく理解するために、多数の1対1の電話を行い、お互いに大いに助け合いました。私たちは常に、技術的な側面からお互いをサポートする方法を探し、必要なときはお互いを励まし合いました。私たちにとって、それは専門的および人間的な成長でした。
オープンソースソフトウェアスプリントの実施
このプロセスで得られた知識と経験により、私たちは2つの仮想スプリントを組織することができました。イベントは地元のPyLadiesコミュニティと協力して実施されました。1回目は2月26日にPyLadiesカンパラと、2回目は3月21日にPyLadiesコロンビアで行われました。
これらのイベントを組織する中で、仮想スプリントを組織し、実施する方法を学びました。スプリントの参加者の中には、オープンソースについてまったく知らない人もいて、オープンソースの概念を説明し、Gitワークフローを説明するのは素晴らしいことでした。最後に、彼らは初めての貢献をすることができました。私たちは、貢献者をフォローアップし、彼らのPRがマージされるまで支援し、GitHubでの彼らの貢献をレビューする方法を学びました。
最も傑出した成果は、新しい貢献者を指導し、この助成金から得た知識をそれぞれのコミュニティの他の参加者と共有することでした。経験後、ほとんどの新しい貢献者は、アウトリーチと今後のGoogle Summer of Codeに申し込んで、これらのスプリントから学んだスキルを応用するようになりました。
結論
結論として、私たちはこの経験から、コード部分、オープンソースプロジェクトでのワークフロー、困難な瞬間に立ち向かう方法、より多くの女性と地元のコミュニティの人々がオープンソースプロジェクトに貢献することを奨励する方法について多くを学びました。
最後に、オープンソースプロジェクトに参加したい場合は、興味のあるさまざまなプロジェクトのGitHubリポジトリを確認し、取り組みやすいissueを探して開始することをお勧めします。また、特定の質問がある場合はプロジェクトのメンテナーに連絡したり、お住まいの国のオープンソースコミュニティを探したり、詳細については私たちに連絡したりすることもできます。
謝辞
この小規模開発助成金を通じてサポートしてくれたNumFOCUSと、これらの数週間を通して寛大な指導をしてくれたマークに感謝します。
私たちは、さらに貢献し、私たちのコミュニティとオープンソースコミュニティに影響を与えることを楽しみにしています!
詳細を知りたい場合は、これらのチャネルを通じてお気軽にお問い合わせください