簡易的な Git Flow で開発をします。
main
: 本番用 / リリース用 (develop
から merge する)develop
: 開発版 (ここで直接は開発せず、feature/*
ブランチを切る。バージョンアップの時のみ直接コミットしてよい。)feature/*
: それぞれの機能など (バグ修正等、機能でなくてもいい)hotfix/*
: 緊急修正用 (main
から切る)
release
branch は使用しません。
コマンドを使える必要があります。
corepack enable
: pnpm を有効にするpnpm install
: 必要なライブラリを全てインストールpnpm dev
: Next.js のプレビューサーバーを起動pnpm static
: Next.js の静的エクスポートpnpm lint
: コードや文章の校正pnpm test
: 単体テスト
コミットメッセージのフォーマットを統一するためのツールです。
グローバルにインストールしてください。
pnpm install -g git-cz
コミットメッセージを書くときに、 git cz
コマンドを使ってください。
何らかの都合により一部分だけ lint を無効化したいときは、
ESLint の場合は ESLint のコメントでのルール制御 - Qiita の方法で、
textlint の場合は textlint-filter-rule-comments を入れているためその機能でできます。
また一部分だけ Prettier のフォーマットを無視させたい場合は Ignoring Code - Prettier の方法でできます。
「かた」と読む「方」が ja-hiragana-keishikimeishi に 漢字よりもひらがなで表記したほうが読みやすい形式名詞
の「ほう」として判定されてしまう場合
このような場合 textlint-filter-rule-comments で無効化するのではなく、
できるだけ「場合」や「人」など別の表現で置き換えましょう。
これは、「かた」として「方」を書いているつもりでも「ほう」と読み間違えてしまう可能性があるので、
それを防止するためです。
もちろん引用など、文章校正を受けたくない場合はコメントでのルール制御を行うべきですが、
そのような場合は ja-hiragana-keishikimeishi のみではなく
ルールを指定せずに全てのルールを無効化するべきです。
commit 時には git-cz
を使用してください。
git-hooks によって commit 時に lint と format が走ります。
lint はキャッシュされるため、変更点だけのチェックとなります。
lint でエラーが出た場合は commit できないので、
修正してから commit し直してください。
test が成功しない通らない状態で commit をしてもいいですが、
Pull Request 時には test が成功するようにしてください。
push 時に GitHub Actions にて自動で lint と test が走るようにしています。
これらを参考にしながら開発しましょう。
GitHub に push した際、この repository と連携している Cloudflare Pages プロジェクト上で、
自動でビルドが走り deploy されます。
また push 時に GitHub Actions によって lint が走ります。
develop
branch からfeature/*
branch を切る
このとき、*
は Issues の ID や機能名を初め動詞で、
さらに初めの文字が大文字の Snake_case で命名する。
またできるだけ簡潔にする。
例:feature/#13_Add_form
,feature/Create_layout
- その機能を開発する
細かい単位で commit しましょう。
ブランチと関係のないことは別のブランチを切ってやりましょう。
commit 時にはフォーマットを統一するためにできるだけgit cz
コマンドを使用してください。
メッセージは簡潔かつ丁寧に書きましょう。
例:form の css を追加
,インデントを下げるために早期 return に書き換え
- 完成したら必ず
develop
branch から merge して conflict を解決する develop
branch に Pull Request を投げる
Pull Request の説明欄にclose #13
などと書くことで同時に Issue も閉じることができます。- review を通ったら無事、
develop
branch に merge されます!
develop
branch の preview を確認するdevelop
branch でpackage.json
の"version"
を更新し、
README.md
のVersion:
を更新して(括弧の中)
に主な更新点を記述。main
branch に Pull Request を投げる- 別の人からチェックを受ける
- Pull Request を merge する
- Merge Commit に tag をつける
例:v1.2.3
main
branch からhotfix/*
branch を切る
命名はfeature/*
と同じルールで。- バグを修正する
commit message の書き方は新機能と同じルールで。 - バージョンアップと同じ Flow で反映
ただしチェックは緩めに、速度重視で。 develop
にも merge する