開発者ガイド
このドキュメントは、esa-cliの開発者向けのガイドです。 プロジェクトの構造、開発環境のセットアップ、ビルド方法などを説明します。
📁 プロジェクト構造
Section titled “📁 プロジェクト構造”esa-cli/├── cmd/│ └── esa-cli/ # メインのCLIアプリケーション├── internal/│ ├── api/ # esa APIクライアント│ ├── config/ # 設定管理│ ├── mac/ # Mac向け機能│ └── markdown/ # Markdown処理├── pkg/│ └── types/ # 共通型定義├── docs/ # ドキュメント├── scripts/ # ビルド・インストールスクリプト├── Formula/ # Homebrew Formula├── go.mod # Goモジュール定義└── README.md # プロジェクト概要
🔧 開発環境のセットアップ
Section titled “🔧 開発環境のセットアップ”- Go 1.16以上
- Git
- Make(オプション)
セットアップ手順
Section titled “セットアップ手順”- リポジトリのクローン
git clone https://github.com/shellme/esa-cli.gitcd esa-cli
- 依存関係のインストール
go mod download
- 開発用ビルド
go build -o esa-cli cmd/esa-cli/main.go
🏗 ビルド方法
Section titled “🏗 ビルド方法”ローカルビルド
Section titled “ローカルビルド”# 開発用ビルドgo build -o esa-cli cmd/esa-cli/main.go
# リリース用ビルド(最適化)go build -ldflags="-s -w" -o esa-cli cmd/esa-cli/main.go
クロスコンパイル
Section titled “クロスコンパイル”# Mac用(Intel)GOOS=darwin GOARCH=amd64 go build -o esa-cli-darwin-amd64 cmd/esa-cli/main.go
# Mac用(Apple Silicon)GOOS=darwin GOARCH=arm64 go build -o esa-cli-darwin-arm64 cmd/esa-cli/main.go
ユニットテスト
Section titled “ユニットテスト”# 全テストの実行go test ./...
# 特定のパッケージのテストgo test ./internal/api/...
インテグレーションテスト
Section titled “インテグレーションテスト”# インテグレーションテストの実行go test -tags=integration ./...
📝 コーディング規約
Section titled “📝 コーディング規約”- Effective Go に従う
- エラーハンドリングは適切に行う
- テストカバレッジを維持する
- ドキュメントコメントを書く
🔍 デバッグ
Section titled “🔍 デバッグ”import "log"
// デバッグログlog.Printf("Debug: %v", value)
// エラーログlog.Printf("Error: %v", err)
# デバッグモードの有効化export ESA_CLI_DEBUG=1
# ログレベルの設定export ESA_CLI_LOG_LEVEL=debug
🚀 新機能の追加
Section titled “🚀 新機能の追加”-
機能の提案
- Issueの作成
- 設計のレビュー
-
実装
- ブランチの作成
- コードの実装
- テストの追加
-
レビュー
- プルリクエストの作成
- コードレビュー
- テストの実行
-
マージ
- レビュー後のマージ
- リリース準備
📦 リリース手順
Section titled “📦 リリース手順”-
バージョン番号の更新
Formula/esa-cli.rb
のバージョン番号を更新- 必要に応じて
go.mod
のバージョンも更新
-
バイナリのビルド
# リリース用バイナリのビルドmake release
-
GitHubリリースの作成
- タグの作成とプッシュ
- リリースノートの作成
- バイナリのアップロード
-
Homebrew Formulaの更新
- SHA256値の更新
- 必要に応じて依存関係の更新
🔧 トラブルシューティング
Section titled “🔧 トラブルシューティング”よくある問題
Section titled “よくある問題”-
ビルドエラー
- 依存関係の確認
- Goのバージョン確認
-
テストの失敗
- テスト環境の確認
- モックの設定確認
-
依存関係の問題
go mod tidy
の実行- 依存関係のバージョン確認