#目次
1.はじめに
2.KiCADとは
3.ビルド方法
4.取り組んだこと
5.得た知見、感想
6.終わりに
1. はじめに
この記事は、とある大学の「大規模ソフトウェアを手探る」という実験のレポートとして作成したものです。
「大規模ソフトウェアを手探る」は、「ソースを眺めて全容を把握できるわけがない程大きなソフトウェアをいかに扱い、必要なだけ動作を理解し、変更する」ことをテーマとした実験で実際に使われてるソフトウェアを解析して変更や拡張を行う課題です。
私たちはKiCADというオープンソースの回路エディタを題材に機能を追加することに挑戦しました。
2. KiCADとは
とは、オープンソースの回路設計用CADです。1992年リリースで30年以上の歴史があり、無料で使える回路CADとしては一強です。26年にサービスが終了するEagleから乗り換えを検討されている方も多いのではないでしょうか?
KiCADは様々なソフトウェアから構成される統合的なCADであるというのが特徴です。
設計画面の例は以下の通りです。かなり自由度が高く、趣味から仕事まで問題なく使用できるといった印象です。3DViewerが標準で付いており、実装後の様子を確認できるのも嬉しいポイントです。
ソースコードはhttps://gitlab.com/kicad/code/kicadにあります。言語はC/C++が大半で115万行以上の大規模なソフトウェアです。
公式ドキュメントが整備されており規約も多いため、コントリビュートする際には確認が必須です。
3. ビルド方法
公式ページにOSごとの環境構築とビルド方法が詳しく書かれています。linuxかmacの人はmakeではなくNinjaでビルドすることをオススメします。(ドキュメントの下の方に書かれています。)
コードが大規模のため、最初のビルドには30分~1時間かかります。ストレージがかなり必要なので予め開けておきましょう。
4. 取り組んだこと
KiCADには多くのプラグインが存在し、思いつく機能拡張案が大体実装されていました。そこでgitlabのstarterラベルがついたIssueに取り組みました。
starterラベルがついたIssue一覧
取り組んだIssueは以下の二つです。それぞれについて記事を参照してください。
4-1.Issue #17659
4-2.Issue #13661
5. 得た知見、感想
KiCADは規約が多くて大変でした。多くの人が参加する大規模なソフトウェアだと、これくらいしないと治安維持ができないのだと感じました。大規模なソフトウェアの開発方法について、大変勉強になりました。
また、管理者との時差が大きくやり取りに時間がかかり、世界に発信していると実感しました。深夜2,3時に返信されることが多く、少しのやり取りでも1日かかってしまうことが多々ありました。顔も見たことのない開発者とコミュニケーションを取る経験が新鮮でした。
私たちは自分からContributeするようなタイプではないので、貴重な経験になりました。普段から使っているソフトウェアに自分の実装した機能が入ると感動しました。
6. 終わりに
実験の一環でしたが、とても楽しく実りのあるものでした。皆さんも是非KiCADのコントリビュートに挑戦してみてください。