Hatcherへの貢献
Hatcherへの貢献にご興味をお持ちいただき、ありがとうございます!このガイドは、プロジェクトへの貢献を始めるのに役立ちます。
行動規範
このプロジェクトに参加することで、私たちの行動規範を遵守することに同意したものとみなします。貢献する前にお読みください。
はじめに
開発環境のセットアップ
フォークとクローン
bashgit clone https://github.com/your-username/dx-engine.git cd dx-engine
依存関係のインストール
bashpnpm install
開発サーバーの起動
bashpnpm dev
プロジェクト構造
dx-engine/
├── apps/
│ ├── electron/ # メインElectronプロセス
│ ├── web/ # レンダラープロセス (Vue.js)
│ ├── preload/ # プリロードスクリプト
│ └── docs/ # VitePress ドキュメント
├── universal/
│ ├── vite-plugin/ # カスタムViteプラグイン
│ └── puppeteer-google-translate/
└── scripts/ # ビルドと開発スクリプト
貢献の方法
バグ報告
バグを報告する際は、以下を含めてください:
- 明確な説明:何が起こったか vs. 何を期待していたか
- 再現手順:問題を再現するための詳細な手順
- 環境:OS、Node.jsバージョン、pnpmバージョン
- スクリーンショット:該当する場合、視覚的証拠を含める
イシューを作成する際は、バグ報告テンプレートを使用してください。
機能リクエスト
機能リクエストを歓迎します!以下を含めてください:
- 使用例:なぜこの機能が必要なのか?
- 提案された解決策:どのように動作すべきか?
- 代替案:他にどのようなアプローチを検討しましたか?
機能リクエストテンプレートを使用してください。
コード貢献
開始前に
- 既存のイシューを確認:関連するイシューや機能リクエストを探す
- 重要な変更を議論:重要な変更を議論するためのイシューを開く
- 小さく始める:小さく焦点を絞った貢献から始める
開発ワークフロー
ブランチの作成
bashgit checkout -b feature/your-feature-name
変更を行う
- コーディング標準に従う(下記参照)
- 新機能のテストを書く
- 必要に応じてドキュメントを更新
変更をテスト
bashpnpm build pnpm test
変更をコミット
bashgit commit -m "feat: add amazing new feature"
Conventional Commits形式に従います。
プッシュとPR作成
bashgit push origin feature/your-feature-name
コーディング標準
Hatcherは、プロジェクト全体で一貫性、保守性、高品質なコードを確保するために厳格なコーディング標準に従います。
クイックリファレンス
TypeScript
- 厳密モードを有効にしたTypeScriptをすべての新しいコードで使用
- オブジェクト形状にはtypeよりinterfaceを優先
- 変数と関数に意味のある説明的な名前を使用
- すべてのパブリックAPIにJSDocコメントを含める
Vue.js
<script setup>
構文でComposition APIを使用- TypeScriptインターフェースでpropsとemitsを定義
- 再利用可能なロジックにはcomposablesを優先
- 単一ファイルコンポーネント構造に従う:script → template → style
スタイリング
- コンポーネント固有のCSSにはスコープ付きスタイルを使用
- クラス命名にBEM手法を従う
- テーマにはCSSカスタムプロパティを使用
- レイアウトにはflexboxとCSS Gridを優先
Git規約
- Conventional Commits形式に従う
- 説明的なブランチ名を使用:
feature/
、fix/
、docs/
、refactor/
- コミットをアトミックに保ち、単一の変更に焦点を当てる
コード品質ツール
標準を強制するために自動化ツールを使用:
bash
# コードスタイル問題をlintして修正
pnpm lint:fix
# 型チェック
pnpm typecheck
# すべてのテストを実行
pnpm test
# コードをフォーマット
pnpm format
プリコミットフック
Huskyは各コミット前に自動チェックを実行:
- コード品質のESLint
- TypeScriptコンパイル
- フォーマットのPrettier
- クリティカルパスの単体テスト
詳細なガイドライン、例、ベストプラクティスについては、コーディング標準ドキュメントを参照してください。
ドキュメント
ドキュメントの種類
- コードコメント:複雑なロジックを説明
- READMEファイル:概要とセットアップ手順
- APIドキュメント:パブリックインターフェースを文書化
- ユーザーガイド:エンドユーザー向けのハウツーガイド
執筆ガイドライン
- 明確で簡潔な言語を使用
- コード例を含める
- コード変更に合わせてドキュメントを最新に保つ
- すべてのコード例をテスト
プルリクエストプロセス
提出前
- [ ] コードがプロジェクト標準に従っている
- [ ] テストがローカルで合格
- [ ] ドキュメントが更新されている
- [ ] 変更が焦点を絞ってアトミック
PR説明テンプレート
markdown
## 説明
変更の簡潔な説明
## 変更の種類
- [ ] バグ修正
- [ ] 新機能
- [ ] 破壊的変更
- [ ] ドキュメント更新
## テスト
- [ ] 単体テストが追加/更新された
- [ ] 統合テストが追加/更新された
- [ ] 手動テストが完了
## スクリーンショット(該当する場合)
UI変更の前後のスクリーンショットを含める
レビュープロセス
- 自動チェック:CI/CDが通過する必要がある
- コードレビュー:少なくとも1人のメンテナーのレビュー
- テスト:開発環境で変更がテストされる
- ドキュメント:ドキュメントが更新されていることを確認
- マージ:承認されたPRをスカッシュしてマージ
リリースプロセス
バージョニング
セマンティックバージョニングに従います:
- MAJOR:破壊的変更
- MINOR:新機能(後方互換)
- PATCH:バグ修正(後方互換)
リリースワークフロー
- 機能フリーズ:新機能の受け入れを停止
- テスト:包括的なテストフェーズ
- ドキュメント:変更ログとドキュメントを更新
- リリース:タグ付きリリースを作成
- 発表:コミュニティに変更を伝える
コミュニティ
コミュニケーションチャンネル
- GitHub Issues:バグ報告と機能リクエスト
- GitHub Discussions:一般的な質問とアイデア
- Discord:コミュニティとのリアルタイムチャット
- Twitter:@HatcherDXをフォローして更新情報を入手
コミュニティガイドライン
- 敬意を払う:すべての人を尊重して扱う
- 建設的である:問題ではなく解決策に焦点を当てる
- 忍耐強くある:私たちは皆ボランティアであることを忘れない
- 助けになる:知識を共有し、他の人を助ける
認識
すべての貢献を感謝します!貢献者は以下で認識されます:
- CONTRIBUTORS.md:すべてのプロジェクト貢献者のリスト
- リリースノート:主要な貢献がハイライト
- ソーシャルメディア:コミュニティ貢献を特集
開発リソース
有用なリンク
開発ツール
- VS Code:VueとTypeScript拡張機能を備えた推奨エディター
- Vue DevTools:Vueアプリケーションのデバッグ用ブラウザー拡張機能
- Electron DevTools:組み込みデバッグツール
質問?
貢献について質問がある場合:
- 既存のGitHub Discussionsを確認
- Discordコミュニティに参加
- 新しいディスカッションまたはイシューを作成
Hatcherへの貢献をありがとうございます!一緒に、AI支援開発の未来を構築しています。