Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 5.87 KB

CONTRIBUTING.md

File metadata and controls

70 lines (51 loc) · 5.87 KB

貢献の手引き

このリポジトリへの変更は、IssueとPull Requestで受け付けます。

進め方

  1. 変更の前にIssueを立て、何を変えたいかを書きます。小さな修正はIssue無しでも構いません。訳文の直しや言い回しの提案は「翻訳の訂正と提案」のフォームを使います
  2. developから作業用のブランチを切ります(feature/変更の名前)
  3. 変更を加え、npm run lintが通ることを確かめます。訳文や原文の一覧を変えたときは、python tools/check_translation.pyも通ることを確かめます
  4. developへのPull Requestを開きます。テンプレートに沿って、何をなぜ変えたかを書きます

ブランチの運用

GitFlowに沿って運用します。

ブランチ 役割
main リリース済みの内容です。タグはここに打ちます
develop 次のリリースに向けた開発の本流です
feature/* 機能の追加や修正です。developから切り、developに戻します
release/* リリースの準備です。「リリース」ワークフローがdevelopから切り、mainに取り込みます
hotfix/* リリース済みの内容の緊急の修正です。mainから切り、そのブランチでpackage.jsonの版も上げます。mainにマージするとタグとドラフトのReleaseが作られ、developにも戻されます。公開まで進めるときは、マージの前に「自動公開」ラベルを付けます
merge/* mainの内容をdevelopへ戻すためのブランチです。「リリースを公開する」ワークフローが作ります。手で取り込むときも使います

リリースと緊急の修正の手順はREADMEの「ブランチとリリース」にあります。 Pull Requestはマージコミット(Create a merge commit)でマージします。

mainとdevelopは、Pull Requestのheadにしないでください。 マージ後にheadブランチが自動で消える設定のため、そのブランチごと失う恐れがあります。 developからmainへはリリースのワークフローがrelease/*ブランチを切ります。 mainからdevelopへはmerge/*ブランチを使います。 理由と直し方はCLAUDE.mdにあります。

文書の書き方

日本語の文書はtextlintとmarkdownlintで検査します。 規則は公開されている共有設定@223n/lint-config-jaにあります。

  • 文体は「ですます調」で統一します
  • 一文一行で書きます
  • 全角文字と半角文字の間にスペースを入れません。半角の語はコードスパンに入れると読みやすくなります

手元で直せる指摘はnpm run lint:md:fixとnpm run lint:ja:fixで直ります。 直したあとは差分を見て、意図しない変更がないかを確かめてください。

スクリプトの書き方

scripts/setup.shとscripts/setup.ps1は同じことを行います。 片方だけを変えないでください。 引数の書き方(--dry-runと-DryRun)が違います。 表示する文言と終了コードは揃えてください。 名前の書き換えは、scripts/setup.shがNodeを、scripts/setup.ps1がPowerShellの文字列置換を使います。 そのため要る道具が違います。

  • scripts/setup.ps1はPowerShell 7以上を前提にします。Windows PowerShell 5.1では動きません
  • .ps1はBOM無しのUTF-8、改行はLFで保存します。PowerShell 7はBOMが無くてもUTF-8として読みます
  • ネイティブコマンドの成否は$LASTEXITCODEで判定します。if (gh ...)は出力を見るため、--silentを付けた呼び出しでは常に偽になります
  • npm run lintは日本語の文書だけを検査します。スクリプトは検査の対象外です

コミットメッセージ

日本語で、何を変えたかと、なぜ変えたかを書きます。 1行目は50文字程度に収め、詳しい理由は空行を挟んで本文に書きます。

ラベル

IssueとPull Requestのラベルは.github/labels.ymlで管理します。 ラベルを足したり変えたりするときは、GitHubの画面ではなくこのファイルを変えてください。 developに入ると同期のワークフローが動き、リポジトリのラベルがファイルの内容に揃います。 main側からの同期では、ファイルにないラベルを消しません。