Skip to content

開発者ガイド

このドキュメントは、esa-cliの開発者向けのガイドです。 プロジェクトの構造、開発環境のセットアップ、ビルド方法などを説明します。

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 # プロジェクト概要
  • Go 1.16以上
  • Git
  • Make(オプション)
  1. リポジトリのクローン
Terminal window
git clone https://github.com/shellme/esa-cli.git
cd esa-cli
  1. 依存関係のインストール
Terminal window
go mod download
  1. 開発用ビルド
Terminal window
go build -o esa-cli cmd/esa-cli/main.go
Terminal window
# 開発用ビルド
go build -o esa-cli cmd/esa-cli/main.go
# リリース用ビルド(最適化)
go build -ldflags="-s -w" -o esa-cli cmd/esa-cli/main.go
Terminal window
# 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
Terminal window
# 全テストの実行
go test ./...
# 特定のパッケージのテスト
go test ./internal/api/...
Terminal window
# インテグレーションテストの実行
go test -tags=integration ./...
  • Effective Go に従う
  • エラーハンドリングは適切に行う
  • テストカバレッジを維持する
  • ドキュメントコメントを書く
import "log"
// デバッグログ
log.Printf("Debug: %v", value)
// エラーログ
log.Printf("Error: %v", err)
Terminal window
# デバッグモードの有効化
export ESA_CLI_DEBUG=1
# ログレベルの設定
export ESA_CLI_LOG_LEVEL=debug
  1. 機能の提案

    • Issueの作成
    • 設計のレビュー
  2. 実装

    • ブランチの作成
    • コードの実装
    • テストの追加
  3. レビュー

    • プルリクエストの作成
    • コードレビュー
    • テストの実行
  4. マージ

    • レビュー後のマージ
    • リリース準備
  1. バージョン番号の更新

    • Formula/esa-cli.rb のバージョン番号を更新
    • 必要に応じて go.mod のバージョンも更新
  2. バイナリのビルド

Terminal window
# リリース用バイナリのビルド
make release
  1. GitHubリリースの作成

    • タグの作成とプッシュ
    • リリースノートの作成
    • バイナリのアップロード
  2. Homebrew Formulaの更新

    • SHA256値の更新
    • 必要に応じて依存関係の更新
  1. ビルドエラー

    • 依存関係の確認
    • Goのバージョン確認
  2. テストの失敗

    • テスト環境の確認
    • モックの設定確認
  3. 依存関係の問題

    • go mod tidy の実行
    • 依存関係のバージョン確認