概要
git-cz-rsのマイナーリリースで追加した内容をまとめます。
実装したこと
詳しくは、リリースノートの詳細を見てください。
主な変更点は次の3つです。
- 文字数制限機能を追加:cz.jsonに
subject.max_commit_message_sizeを指定することでコミットメッセージのサイズを制限しました。 - リファクタリング:ファイル分割と責務の分離
- 開発環境の整備:VS Codeの推奨拡張機能設定・動作確認方法をCONTRIBUTING.mdに記載
文字数制限機能
研究でこのツールを利用していた際、コミットメッセージが長く複雑になることがありました。 そのため、文字数制限機能を追加することにしました。
v1.1.0からは、cz.jsonに"subject"オプションを追加し、
その中の"max_commit_message"オプションで最大文字数を追加することで、
入力可能な最大文字数を制限することが可能です。


リファクタリング
v1.0.0では、main.rsにロジックの全てが実装してあり、機能追加が行いにくかったため、リファクタリングを行いました。 具体的には、次のように責務を分割しました。
- driver.rs: コンピュータとのI/O処理
- adapter.rs: 人間とのI/O処理
- usecase.rs: アプリケーション処理
- entity.rs: コミットで成形する元のデータ構造
- main.rs: 全体の結合処理
開発環境整備
筆者はVS Codeで開発しているため、推奨拡張機能を.vscode/extensions.jsonに追加しました1。
また、動作確認方法をCONTRIBUTING.mdに追記しました2。
CLIツールの開発では対話処理が重要になるため、実際の動作確認をしっかり行うほうが、開発しやすくなると考えたためです。
学んだこと
調査段階で、cargo installをするときにGitと連携してinstallできることを知りました3。
v1.0.0までは、リポジトリをクローンしてから、リポジトリルートでcargo install --path .を実行する方法をREADME.mdに記載していました。
しかし、cargoコマンドに--gitオプションを追加することで、クローンせずにインストール可能であることを知りました。
cargo install --git https://github.com/yoshiyuki-140/git-cz-rs.git
まとめ
git-cz-rsのv1.1.0で追加した機能をまとめました。 主に3つの修正と機能追加を行い、よりRustのドメイン知識を深めることが出来ました。