@sk8metal/michi-cli 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -847
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +379 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/ai-tools.md +311 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +756 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +543 -0
- package/package.json +1 -1
- package/scripts/phase-runner.ts +1 -1
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/codex/AGENTS.override.md +1 -1
- package/templates/codex/rules/README.md +2 -2
- package/templates/cursor/commands/michi/spec-tasks.md +117 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
# Michi 開発環境セットアップガイド
|
|
2
|
-
|
|
3
|
-
このガイドは、Michiプロジェクト自体の開発に貢献したい開発者向けのセットアップ手順です。
|
|
4
|
-
|
|
5
|
-
Michiを使ってプロジェクト開発を始めたい場合は、[利用者向けセットアップガイド](../getting-started/setup.md)を参照してください。
|
|
6
|
-
|
|
7
|
-
## 前提条件
|
|
8
|
-
|
|
9
|
-
- Node.js 20.x以上
|
|
10
|
-
- npm 10.x以上
|
|
11
|
-
- Git または Jujutsu (jj)
|
|
12
|
-
- Cursor IDE または VS Code
|
|
13
|
-
- GitHub CLI (gh) - PR作成時に使用
|
|
14
|
-
|
|
15
|
-
## 1. リポジトリのフォーク・クローン
|
|
16
|
-
|
|
17
|
-
### Gitを使う場合
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# リポジトリをフォーク(GitHubのWebインターフェースで実行)
|
|
21
|
-
|
|
22
|
-
# フォークしたリポジトリをクローン
|
|
23
|
-
git clone https://github.com/YOUR_USERNAME/michi
|
|
24
|
-
cd michi
|
|
25
|
-
|
|
26
|
-
# 上流リポジトリをremoteに追加
|
|
27
|
-
git remote add upstream https://github.com/sk8metalme/michi
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Jujutsu (jj) を使う場合
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# リポジトリをクローン
|
|
34
|
-
jj git clone https://github.com/YOUR_USERNAME/michi
|
|
35
|
-
cd michi
|
|
36
|
-
|
|
37
|
-
# 上流リポジトリを設定
|
|
38
|
-
jj git remote add upstream https://github.com/sk8metalme/michi
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## 2. 依存関係のインストール
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
npm install
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## 3. cc-sddのインストール(開発用)
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Cursor IDE を使用する場合
|
|
51
|
-
npx cc-sdd@latest --lang ja --cursor
|
|
52
|
-
|
|
53
|
-
# Claude Code を使用する場合
|
|
54
|
-
npx cc-sdd@latest --lang ja --claude
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## 4. 環境変数の設定
|
|
58
|
-
|
|
59
|
-
開発環境でも、Confluence/JIRA連携のテストのために環境変数が必要です。
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# テンプレートファイルをコピー
|
|
63
|
-
cp env.example .env
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
詳細な設定方法は、[利用者向けセットアップガイド](../getting-started/setup.md#3-環境変数の設定)を参照してください。
|
|
67
|
-
|
|
68
|
-
## 5. 開発ワークフロー
|
|
69
|
-
|
|
70
|
-
### ブランチ戦略
|
|
71
|
-
|
|
72
|
-
- `main`: 本番環境相当(常にデプロイ可能な状態)
|
|
73
|
-
- `feature/XXX`: 機能開発用
|
|
74
|
-
- `bugfix/XXX`: バグ修正用
|
|
75
|
-
- `docs/XXX`: ドキュメント更新用
|
|
76
|
-
|
|
77
|
-
### 開発サイクル
|
|
78
|
-
|
|
79
|
-
1. **issueを作成** または 既存のissueを確認
|
|
80
|
-
2. **ブランチを作成**
|
|
81
|
-
```bash
|
|
82
|
-
git checkout -b feature/your-feature-name
|
|
83
|
-
# または jj new -m "feature/your-feature-name"
|
|
84
|
-
```
|
|
85
|
-
3. **コードを実装**
|
|
86
|
-
4. **テストを追加・実行**
|
|
87
|
-
5. **コミット**
|
|
88
|
-
6. **PRを作成**
|
|
89
|
-
|
|
90
|
-
## 6. コーディング規約
|
|
91
|
-
|
|
92
|
-
### TypeScript
|
|
93
|
-
|
|
94
|
-
- **Strict Mode**: `tsconfig.json`で厳格な型チェックを有効化
|
|
95
|
-
- **ESLint**: すべてのコードはESLintルールに準拠
|
|
96
|
-
- **Prettier**: コードフォーマットは自動化
|
|
97
|
-
|
|
98
|
-
### コミットメッセージ
|
|
99
|
-
|
|
100
|
-
[Conventional Commits](https://www.conventionalcommits.org/)形式を使用:
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
<type>(<scope>): <subject>
|
|
104
|
-
|
|
105
|
-
<body>
|
|
106
|
-
|
|
107
|
-
<footer>
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**Type:**
|
|
111
|
-
- `feat`: 新機能
|
|
112
|
-
- `fix`: バグ修正
|
|
113
|
-
- `docs`: ドキュメント変更
|
|
114
|
-
- `style`: コードフォーマット(ロジック変更なし)
|
|
115
|
-
- `refactor`: リファクタリング
|
|
116
|
-
- `test`: テスト追加・修正
|
|
117
|
-
- `chore`: ビルドプロセスやツールの変更
|
|
118
|
-
|
|
119
|
-
**例:**
|
|
120
|
-
```
|
|
121
|
-
feat(confluence): Confluence階層構造のカスタマイズ機能を追加
|
|
122
|
-
|
|
123
|
-
- config.jsonでhierarchy.modeを設定可能に
|
|
124
|
-
- simple/detailedの2モードをサポート
|
|
125
|
-
|
|
126
|
-
Closes #123
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## 7. テストの実行
|
|
130
|
-
|
|
131
|
-
### 全テストを実行
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
npm run test:run
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### watchモードでテスト
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
npm test
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### カバレッジ確認
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
npm run test:coverage
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
**カバレッジ目標**: 95%以上
|
|
150
|
-
|
|
151
|
-
### 型チェック
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
npm run type-check
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## 8. リントとフォーマット
|
|
158
|
-
|
|
159
|
-
### リント実行
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
npm run lint
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### リント自動修正
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
npm run lint:fix
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### フォーマット
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
npm run format
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
## 8-1. Pre-commitフック(自動リント・テスト)
|
|
178
|
-
|
|
179
|
-
このプロジェクトでは、**husky**と**lint-staged**を使用して、コミット前に自動的にリントとテストを実行します。
|
|
180
|
-
|
|
181
|
-
### 動作
|
|
182
|
-
|
|
183
|
-
コミットを実行すると、以下の処理が自動的に実行されます:
|
|
184
|
-
|
|
185
|
-
1. **lint-staged**: ステージングされたファイルに対して自動リント・フォーマット
|
|
186
|
-
- TypeScript/JavaScriptファイル: ESLint自動修正 + Prettierフォーマット
|
|
187
|
-
- JSON/Markdown/YAMLファイル: Prettierフォーマット
|
|
188
|
-
2. **テスト実行**: すべてのテストを実行(`npm run test:run`)
|
|
189
|
-
|
|
190
|
-
### フックをスキップする場合(非推奨)
|
|
191
|
-
|
|
192
|
-
緊急時のみ、以下の方法でフックをスキップできます:
|
|
193
|
-
|
|
194
|
-
```bash
|
|
195
|
-
# Gitの場合
|
|
196
|
-
git commit --no-verify -m "緊急修正"
|
|
197
|
-
|
|
198
|
-
# Jujutsuの場合
|
|
199
|
-
jj commit --no-verify -m "緊急修正"
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**注意**: フックをスキップしたコミットは、CI/CDで失敗する可能性があります。
|
|
203
|
-
|
|
204
|
-
### フックの設定確認
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
# pre-commitフックの内容を確認
|
|
208
|
-
cat .husky/pre-commit
|
|
209
|
-
|
|
210
|
-
# lint-stagedの設定を確認
|
|
211
|
-
cat package.json | grep -A 10 "lint-staged"
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
## 9. ビルドとパッケージング
|
|
215
|
-
|
|
216
|
-
### TypeScriptビルド
|
|
217
|
-
|
|
218
|
-
```bash
|
|
219
|
-
npm run build
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### ローカルでのパッケージテスト
|
|
223
|
-
|
|
224
|
-
```bash
|
|
225
|
-
# パッケージをリンク
|
|
226
|
-
npm link
|
|
227
|
-
|
|
228
|
-
# 他のプロジェクトでテスト
|
|
229
|
-
cd /path/to/test-project
|
|
230
|
-
npm link @sk8metal/michi-cli
|
|
231
|
-
|
|
232
|
-
# テスト後、リンクを解除
|
|
233
|
-
npm unlink @sk8metal/michi-cli
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
## 10. PRの作成
|
|
237
|
-
|
|
238
|
-
### PR作成前のチェックリスト
|
|
239
|
-
|
|
240
|
-
- [ ] すべてのテストがパス
|
|
241
|
-
- [ ] カバレッジが95%以上
|
|
242
|
-
- [ ] ESLintエラーが0件
|
|
243
|
-
- [ ] TypeScript型エラーが0件
|
|
244
|
-
- [ ] コミットメッセージがConventional Commits形式
|
|
245
|
-
- [ ] ドキュメントを更新(必要に応じて)
|
|
246
|
-
|
|
247
|
-
### PRの作成
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
# GitHubにプッシュ
|
|
251
|
-
git push origin feature/your-feature-name
|
|
252
|
-
|
|
253
|
-
# PRを作成
|
|
254
|
-
gh pr create --title "feat: 機能の説明" --body "詳細な説明"
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Jujutsuの場合
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
# 変更をコミット
|
|
261
|
-
jj commit -m "feat: 機能の説明"
|
|
262
|
-
|
|
263
|
-
# GitHubにプッシュ
|
|
264
|
-
jj git push
|
|
265
|
-
|
|
266
|
-
# PRを作成
|
|
267
|
-
gh pr create --title "feat: 機能の説明" --body "詳細な説明"
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
### PRテンプレート
|
|
271
|
-
|
|
272
|
-
```markdown
|
|
273
|
-
## 概要
|
|
274
|
-
何を実装したか簡潔に説明
|
|
275
|
-
|
|
276
|
-
## 変更内容
|
|
277
|
-
- 変更点1
|
|
278
|
-
- 変更点2
|
|
279
|
-
|
|
280
|
-
## テスト
|
|
281
|
-
- [ ] 単体テスト追加
|
|
282
|
-
- [ ] E2Eテスト追加(必要に応じて)
|
|
283
|
-
- [ ] 手動テスト実施
|
|
284
|
-
|
|
285
|
-
## チェックリスト
|
|
286
|
-
- [ ] テストがパス
|
|
287
|
-
- [ ] カバレッジ95%以上
|
|
288
|
-
- [ ] ESLintエラー0件
|
|
289
|
-
- [ ] ドキュメント更新
|
|
290
|
-
|
|
291
|
-
## 関連Issue
|
|
292
|
-
Closes #123
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
## 11. CI/CDパイプライン
|
|
296
|
-
|
|
297
|
-
プッシュすると、以下のCI/CDパイプラインが自動実行されます:
|
|
298
|
-
|
|
299
|
-
- **リント**: ESLint実行
|
|
300
|
-
- **型チェック**: TypeScriptコンパイル
|
|
301
|
-
- **テスト**: Vitest実行
|
|
302
|
-
- **カバレッジ**: Codecovにアップロード
|
|
303
|
-
- **セキュリティスキャン**: npm auditとSnyk
|
|
304
|
-
|
|
305
|
-
詳細は [CI/CDガイド](./ci-cd.md) を参照してください。
|
|
306
|
-
|
|
307
|
-
## 12. トラブルシューティング
|
|
308
|
-
|
|
309
|
-
### npm install でエラーが出る
|
|
310
|
-
|
|
311
|
-
キャッシュをクリア:
|
|
312
|
-
```bash
|
|
313
|
-
npm cache clean --force
|
|
314
|
-
rm -rf node_modules package-lock.json
|
|
315
|
-
npm install
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
### テストが失敗する
|
|
319
|
-
|
|
320
|
-
```bash
|
|
321
|
-
# キャッシュをクリア
|
|
322
|
-
npm run test:run -- --clearCache
|
|
323
|
-
|
|
324
|
-
# 特定のテストのみ実行
|
|
325
|
-
npm run test:run -- path/to/test-file.test.ts
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### GitHub認証エラー
|
|
329
|
-
|
|
330
|
-
```bash
|
|
331
|
-
gh auth status
|
|
332
|
-
gh auth login
|
|
333
|
-
gh auth setup-git
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
## 参考リンク
|
|
337
|
-
|
|
338
|
-
- [コントリビューションガイド](../../CONTRIBUTING.md)
|
|
339
|
-
- [リリース手順](./release.md)
|
|
340
|
-
- [CI/CD設定](./ci-cd.md)
|
|
341
|
-
- [Jujutsu公式ドキュメント](https://martinvonz.github.io/jj/)
|
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
# リリース手順
|
|
2
|
-
|
|
3
|
-
このドキュメントでは、Michiプロジェクトのリリース手順を説明します。
|
|
4
|
-
|
|
5
|
-
## 概要
|
|
6
|
-
|
|
7
|
-
Michiプロジェクトでは、GitHub Actionsを使用して自動リリースを行います。`v*`形式のGitタグを作成すると、自動的に以下が実行されます:
|
|
8
|
-
|
|
9
|
-
1. テスト実行(`npm run test:run`)
|
|
10
|
-
2. リント実行(`npm run lint`)
|
|
11
|
-
3. 型チェック(`npm run type-check`)
|
|
12
|
-
4. ビルド(`npm run build`)
|
|
13
|
-
5. NPMパッケージ公開(`npm publish`)
|
|
14
|
-
6. GitHub Release作成
|
|
15
|
-
|
|
16
|
-
詳細は [`.github/workflows/release.yml`](../.github/workflows/release.yml) を参照してください。
|
|
17
|
-
|
|
18
|
-
## リリース前のチェックリスト
|
|
19
|
-
|
|
20
|
-
リリースを実行する前に、以下を確認してください:
|
|
21
|
-
|
|
22
|
-
- [ ] すべてのテストが通過している(`npm run test:run`)
|
|
23
|
-
- [ ] リントエラーがない(`npm run lint`)
|
|
24
|
-
- [ ] 型チェックが成功している(`npm run type-check`)
|
|
25
|
-
- [ ] ビルドが成功する(`npm run build`)
|
|
26
|
-
- [ ] `package.json`のバージョン番号が正しい
|
|
27
|
-
- [ ] `CHANGELOG.md`が最新の状態である
|
|
28
|
-
- [ ] 未コミットの変更がない(`jj status`または`git status`で確認)
|
|
29
|
-
- [ ] NPM_TOKENがGitHub Secretsに設定されている(初回リリース時のみ確認)
|
|
30
|
-
|
|
31
|
-
### NPM_TOKENの設定
|
|
32
|
-
|
|
33
|
-
初回リリース時、またはNPM_TOKENが未設定の場合は、以下の手順で設定してください:
|
|
34
|
-
|
|
35
|
-
1. NPMアカウントでAutomation Tokenを生成
|
|
36
|
-
- https://www.npmjs.com/settings/[your-username]/tokens にアクセス
|
|
37
|
-
- "Generate New Token" > "Automation" を選択
|
|
38
|
-
- トークンをコピー(一度しか表示されません)
|
|
39
|
-
|
|
40
|
-
2. GitHub Secretsに追加
|
|
41
|
-
- リポジトリの Settings > Secrets and variables > Actions
|
|
42
|
-
- "New repository secret" をクリック
|
|
43
|
-
- Name: `NPM_TOKEN`
|
|
44
|
-
- Secret: コピーしたトークンを貼り付け
|
|
45
|
-
- "Add secret" をクリック
|
|
46
|
-
|
|
47
|
-
詳細は [NPM_TOKEN設定ガイド](./tmp/npm-token-setup.md) を参照してください。
|
|
48
|
-
|
|
49
|
-
## リリースワークフロー
|
|
50
|
-
|
|
51
|
-
リリースは**プルリク経由**で行います。
|
|
52
|
-
|
|
53
|
-
**メリット**:
|
|
54
|
-
- 変更内容をレビューできる
|
|
55
|
-
- CI/CDで自動チェックが実行される
|
|
56
|
-
- チーム内で変更を共有できる
|
|
57
|
-
- リリースとバージョン更新が独立している
|
|
58
|
-
|
|
59
|
-
**ワークフロー**:
|
|
60
|
-
1. バージョン更新(package.json、CHANGELOG.md)
|
|
61
|
-
2. プルリク作成
|
|
62
|
-
3. レビュー・マージ
|
|
63
|
-
4. タグ作成(GitHub UIまたはコマンドライン)
|
|
64
|
-
5. 自動リリース実行
|
|
65
|
-
|
|
66
|
-
## バージョン更新手順
|
|
67
|
-
|
|
68
|
-
### Step 1: package.jsonのバージョン更新
|
|
69
|
-
|
|
70
|
-
`package.json`の`version`フィールドを更新します:
|
|
71
|
-
|
|
72
|
-
```json
|
|
73
|
-
{
|
|
74
|
-
"name": "@sk8metal/michi-cli",
|
|
75
|
-
"version": "0.0.4", // 例: 0.0.3 → 0.0.4
|
|
76
|
-
...
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**セマンティックバージョニング**に従ってバージョンを決定してください:
|
|
81
|
-
- **MAJOR** (x.0.0): 破壊的変更
|
|
82
|
-
- **MINOR** (0.x.0): 新機能追加(後方互換性あり)
|
|
83
|
-
- **PATCH** (0.0.x): バグ修正、ドキュメント更新
|
|
84
|
-
|
|
85
|
-
### Step 2: CHANGELOG.mdの更新
|
|
86
|
-
|
|
87
|
-
`CHANGELOG.md`に新しいバージョンのエントリを追加します。
|
|
88
|
-
|
|
89
|
-
**形式**: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) に準拠
|
|
90
|
-
|
|
91
|
-
**例**:
|
|
92
|
-
```markdown
|
|
93
|
-
## [0.0.4] - 2025-11-13
|
|
94
|
-
|
|
95
|
-
### Added
|
|
96
|
-
- 新機能の説明
|
|
97
|
-
|
|
98
|
-
### Changed
|
|
99
|
-
- 変更内容の説明
|
|
100
|
-
|
|
101
|
-
### Fixed
|
|
102
|
-
- バグ修正の説明
|
|
103
|
-
|
|
104
|
-
### Dependencies
|
|
105
|
-
- Updated `package-name` from `^old-version` to `^new-version`
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**日付形式**: `YYYY-MM-DD`(ISO 8601形式)
|
|
109
|
-
|
|
110
|
-
### Step 3: プルリクの作成
|
|
111
|
-
|
|
112
|
-
変更をコミットしてプルリクを作成します:
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
# 作業ディレクトリに移動
|
|
116
|
-
cd /Users/arigatatsuya/Work/git/michi
|
|
117
|
-
|
|
118
|
-
# 未コミット変更を確認
|
|
119
|
-
jj status
|
|
120
|
-
# または
|
|
121
|
-
git status
|
|
122
|
-
|
|
123
|
-
# 新しいブランチで作業開始(Jujutsuの場合)
|
|
124
|
-
jj new main
|
|
125
|
-
# または(Gitの場合)
|
|
126
|
-
git checkout -b release/v0.0.4
|
|
127
|
-
|
|
128
|
-
# 変更をコミット
|
|
129
|
-
jj commit -m "chore: bump version to 0.0.4"
|
|
130
|
-
# または
|
|
131
|
-
git add package.json CHANGELOG.md
|
|
132
|
-
git commit -m "chore: bump version to 0.0.4"
|
|
133
|
-
|
|
134
|
-
# ブックマーク作成(Jujutsuの場合)
|
|
135
|
-
jj bookmark create release/v0.0.4 -r '@-'
|
|
136
|
-
|
|
137
|
-
# プッシュ
|
|
138
|
-
jj git push --bookmark release/v0.0.4 --allow-new
|
|
139
|
-
# または
|
|
140
|
-
git push origin release/v0.0.4
|
|
141
|
-
|
|
142
|
-
# プルリク作成(GitHub CLIを使用)
|
|
143
|
-
gh pr create --head release/v0.0.4 --base main \
|
|
144
|
-
--title "chore: bump version to 0.0.4" \
|
|
145
|
-
--body "バージョンを0.0.3から0.0.4に更新します。
|
|
146
|
-
|
|
147
|
-
## 変更内容
|
|
148
|
-
- package.jsonのバージョン更新
|
|
149
|
-
- CHANGELOG.mdに0.0.4のエントリを追加
|
|
150
|
-
|
|
151
|
-
## リリース手順
|
|
152
|
-
このPRがマージされた後、GitHub UIまたはコマンドラインからタグを作成してリリースを実行してください。"
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Step 4: プルリクのレビュー・マージ
|
|
156
|
-
|
|
157
|
-
1. CI/CDが成功することを確認
|
|
158
|
-
2. 必要に応じてレビューを依頼
|
|
159
|
-
3. マージを実行
|
|
160
|
-
|
|
161
|
-
**重要**: プルリクがマージされた後、mainブランチに変更が反映されてからタグを作成してください。
|
|
162
|
-
|
|
163
|
-
## Gitタグの作成とプッシュ
|
|
164
|
-
|
|
165
|
-
プルリクがマージされた後、タグを作成してリリースを実行します。
|
|
166
|
-
|
|
167
|
-
### 方法A: GitHub UIからタグを作成(推奨)
|
|
168
|
-
|
|
169
|
-
**手順**:
|
|
170
|
-
|
|
171
|
-
1. **GitHubリポジトリのReleasesページにアクセス**
|
|
172
|
-
- リポジトリページで "Releases" をクリック
|
|
173
|
-
- または直接: `https://github.com/sk8metalme/michi/releases`
|
|
174
|
-
|
|
175
|
-
2. **"Draft a new release" をクリック**
|
|
176
|
-
- または "Create a new release" をクリック
|
|
177
|
-
|
|
178
|
-
3. **タグとリリース情報を入力**
|
|
179
|
-
- **Tag version**: `v0.0.4`(例)
|
|
180
|
-
- **Target**: `main`(デフォルト)
|
|
181
|
-
- **Release title**: `Release v0.0.4`(自動生成される)
|
|
182
|
-
- **Description**: CHANGELOG.mdの内容をコピー&ペースト
|
|
183
|
-
|
|
184
|
-
4. **"Publish release" をクリック**
|
|
185
|
-
- これにより、タグが作成され、GitHub Actionsが自動的にリリース処理を開始します
|
|
186
|
-
|
|
187
|
-
**メリット**:
|
|
188
|
-
- リリースノートを同時に作成できる
|
|
189
|
-
- タグとリリースが1つの操作で完了
|
|
190
|
-
- 視覚的に確認しやすい
|
|
191
|
-
|
|
192
|
-
### 方法B: コマンドラインからタグを作成
|
|
193
|
-
|
|
194
|
-
#### Jujutsu (jj) を使用する場合
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
|
-
# 作業ディレクトリに移動
|
|
198
|
-
cd /Users/arigatatsuya/Work/git/michi
|
|
199
|
-
|
|
200
|
-
# リモートの最新状態を取得
|
|
201
|
-
jj git fetch
|
|
202
|
-
|
|
203
|
-
# mainブランチを最新に更新
|
|
204
|
-
jj bookmark set main -r 'main@origin'
|
|
205
|
-
|
|
206
|
-
# 最新のmainから作業開始
|
|
207
|
-
jj new main
|
|
208
|
-
|
|
209
|
-
# Gitタグを作成(jj経由でGitコマンドを実行)
|
|
210
|
-
git tag v0.0.4
|
|
211
|
-
|
|
212
|
-
# タグをプッシュ
|
|
213
|
-
git push origin v0.0.4
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**注意**: JujutsuはChange IDベースで管理するため、タグはGitコマンドで直接作成します。
|
|
217
|
-
|
|
218
|
-
#### Gitを使用する場合
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
# 作業ディレクトリに移動
|
|
222
|
-
cd /Users/arigatatsuya/Work/git/michi
|
|
223
|
-
|
|
224
|
-
# mainブランチに切り替え
|
|
225
|
-
git checkout main
|
|
226
|
-
|
|
227
|
-
# 最新の状態を取得
|
|
228
|
-
git pull origin main
|
|
229
|
-
|
|
230
|
-
# タグを作成
|
|
231
|
-
git tag v0.0.4
|
|
232
|
-
|
|
233
|
-
# タグをプッシュ
|
|
234
|
-
git push origin v0.0.4
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**タグ名の形式**: `v` + バージョン番号(例: `v0.0.4`)
|
|
238
|
-
|
|
239
|
-
GitHub Actionsのリリースワークフローは`v*`形式のタグでトリガーされます。
|
|
240
|
-
|
|
241
|
-
## 自動リリースの確認
|
|
242
|
-
|
|
243
|
-
タグをプッシュすると、GitHub Actionsが自動的にリリース処理を開始します。
|
|
244
|
-
|
|
245
|
-
### 1. GitHub Actionsの実行状況を確認
|
|
246
|
-
|
|
247
|
-
1. GitHubリポジトリのページにアクセス
|
|
248
|
-
2. "Actions" タブをクリック
|
|
249
|
-
3. "Release" ワークフローを確認
|
|
250
|
-
4. 実行状況を監視
|
|
251
|
-
|
|
252
|
-
**URL例**: `https://github.com/sk8metalme/michi/actions/workflows/release.yml`
|
|
253
|
-
|
|
254
|
-
### 2. 各ステップの確認
|
|
255
|
-
|
|
256
|
-
リリースワークフローは以下の順序で実行されます:
|
|
257
|
-
|
|
258
|
-
1. ✅ **Checkout code** - コードのチェックアウト
|
|
259
|
-
2. ✅ **Setup Node.js** - Node.js環境のセットアップ
|
|
260
|
-
3. ✅ **Install dependencies** - 依存関係のインストール
|
|
261
|
-
4. ✅ **Run tests** - テスト実行
|
|
262
|
-
5. ✅ **Run lint** - リント実行
|
|
263
|
-
6. ✅ **Run type check** - 型チェック
|
|
264
|
-
7. ✅ **Build** - ビルド実行
|
|
265
|
-
8. ✅ **Publish to NPM** - NPMパッケージ公開
|
|
266
|
-
9. ✅ **Create GitHub Release** - GitHub Release作成
|
|
267
|
-
|
|
268
|
-
すべてのステップが成功することを確認してください。
|
|
269
|
-
|
|
270
|
-
### 3. NPM公開の確認
|
|
271
|
-
|
|
272
|
-
NPMパッケージが正常に公開されたか確認します:
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
# NPMパッケージの情報を確認
|
|
276
|
-
npm view @sk8metal/michi-cli version
|
|
277
|
-
|
|
278
|
-
# 最新バージョンが表示されることを確認
|
|
279
|
-
# 例: 0.0.4
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
**NPMパッケージページ**: https://www.npmjs.com/package/@sk8metal/michi-cli
|
|
283
|
-
|
|
284
|
-
### 4. GitHub Releaseの確認
|
|
285
|
-
|
|
286
|
-
GitHub Releaseが正常に作成されたか確認します:
|
|
287
|
-
|
|
288
|
-
1. GitHubリポジトリの "Releases" ページにアクセス
|
|
289
|
-
2. 最新のリリースが表示されることを確認
|
|
290
|
-
3. リリースノートが正しく表示されることを確認
|
|
291
|
-
|
|
292
|
-
**URL例**: `https://github.com/sk8metalme/michi/releases`
|
|
293
|
-
|
|
294
|
-
## トラブルシューティング
|
|
295
|
-
|
|
296
|
-
### エラー1: NPM公開が失敗する
|
|
297
|
-
|
|
298
|
-
**症状**: "Publish to NPM" ステップでエラーが発生
|
|
299
|
-
|
|
300
|
-
**原因**:
|
|
301
|
-
- NPM_TOKENが未設定または無効
|
|
302
|
-
- パッケージ名が既に使用されている(通常は発生しない)
|
|
303
|
-
- バージョン番号が既に存在する
|
|
304
|
-
|
|
305
|
-
**対処法**:
|
|
306
|
-
1. GitHub SecretsでNPM_TOKENが正しく設定されているか確認
|
|
307
|
-
2. NPM_TOKENが有効期限内か確認(Automation Tokenは無期限)
|
|
308
|
-
3. バージョン番号が既に存在しないか確認(`npm view @sk8metal/michi-cli versions`)
|
|
309
|
-
|
|
310
|
-
### エラー2: テストが失敗する
|
|
311
|
-
|
|
312
|
-
**症状**: "Run tests" ステップでエラーが発生
|
|
313
|
-
|
|
314
|
-
**対処法**:
|
|
315
|
-
1. ローカルでテストを実行して確認(`npm run test:run`)
|
|
316
|
-
2. テストコードを修正
|
|
317
|
-
3. 再度コミット・プッシュしてタグを作成
|
|
318
|
-
|
|
319
|
-
### エラー3: ビルドが失敗する
|
|
320
|
-
|
|
321
|
-
**症状**: "Build" ステップでエラーが発生
|
|
322
|
-
|
|
323
|
-
**対処法**:
|
|
324
|
-
1. ローカルでビルドを実行して確認(`npm run build`)
|
|
325
|
-
2. TypeScriptのコンパイルエラーを修正
|
|
326
|
-
3. 再度コミット・プッシュしてタグを作成
|
|
327
|
-
|
|
328
|
-
### エラー4: タグが既に存在する
|
|
329
|
-
|
|
330
|
-
**症状**: `git tag v0.0.4` で "tag already exists" エラー
|
|
331
|
-
|
|
332
|
-
**対処法**:
|
|
333
|
-
1. 既存のタグを削除(ローカル): `git tag -d v0.0.4`
|
|
334
|
-
2. 既存のタグを削除(リモート): `git push origin --delete v0.0.4`
|
|
335
|
-
3. 新しいタグを作成: `git tag v0.0.4`
|
|
336
|
-
4. タグをプッシュ: `git push origin v0.0.4`
|
|
337
|
-
|
|
338
|
-
**注意**: 既にリリース済みのタグを削除する場合は、慎重に判断してください。
|
|
339
|
-
|
|
340
|
-
### エラー5: GitHub Actionsが実行されない
|
|
341
|
-
|
|
342
|
-
**症状**: タグをプッシュしたが、GitHub Actionsが実行されない
|
|
343
|
-
|
|
344
|
-
**対処法**:
|
|
345
|
-
1. タグ名が`v*`形式か確認(例: `v0.0.4`)
|
|
346
|
-
2. GitHub Actionsが有効になっているか確認(Settings > Actions > General)
|
|
347
|
-
3. ワークフローファイル(`.github/workflows/release.yml`)が正しいか確認
|
|
348
|
-
|
|
349
|
-
## リリース後の確認事項
|
|
350
|
-
|
|
351
|
-
リリースが正常に完了したら、以下を確認してください:
|
|
352
|
-
|
|
353
|
-
- [ ] NPMパッケージが最新バージョンで公開されている
|
|
354
|
-
- [ ] GitHub Releaseが作成されている
|
|
355
|
-
- [ ] リリースノートが正しく表示されている
|
|
356
|
-
- [ ] パッケージが正常にインストールできる(`npm install -g @sk8metal/michi-cli`)
|
|
357
|
-
|
|
358
|
-
## 参考リンク
|
|
359
|
-
|
|
360
|
-
- [GitHub Actions公式ドキュメント](https://docs.github.com/ja/actions)
|
|
361
|
-
- [NPM公開ガイド](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry)
|
|
362
|
-
- [セマンティックバージョニング](https://semver.org/)
|
|
363
|
-
- [Keep a Changelog](https://keepachangelog.com/)
|
|
364
|
-
- [CI/CD整備計画](./tmp/cicd-plan.md)
|
|
365
|
-
|