コンテンツの提出
新しいドキュメントの内容を追加したり、既存のコンテンツの改善をするには、プルリクエスト (PR)を提出してください。
- もし変更が小さかったり、自身が Git に慣れていなかったら、GitHub を使用した変更を参照しページの編集方法を学んでください。
- もし変更が大きければ、ローカルのフォークから作業するを参照し、ローカルのコンピュータから変更を行う方法を学んでください。
ヒント: Draft ステータス
コンテンツがレビューの準備ができていないことをメンテナーに知らせるために、プルリクエストのステータスを Draft にしてください。 メンテナーは、Draft ステータスを解除するまでコンテンツを完全なレビューはしませんが、コメントや高レベルのレビューを行うことがあります。以下の図は新しいドキュメントにコントリビュートする方法を示しています。
flowchart LR subgraph first[コントリビュートする方法] direction TB T[ ] -.- B[GitHub でフォークする] --- C[Markdownでドキュメントを作成する<br>Hugo でサイトをビルドする] C --- D[フォーク先にソースコードを push する] D --- E[プルリクエストを公開する] E --- F[CNCF CLA に署名する] end classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 class A,B,C,D,E,F,G,H grey class S,T spacewhite class first,second white
図 1. 新しいコンテンツにコントリビュートする。
GitHub を使用した変更
もし、Git のワークフローをあまり慣れていなければ、プルリクエストを作成して提出するより簡単な方法があります。 図 2 は手順の概要を示しており、詳細はこの後に続きます。
Contributor License Agreement (CLA)
すべてのコントリビューターは、変更が承認されてマージされる前に、コントリビューターライセンス契約(Contributor License Agreement、CLA) に署名する必要があります。flowchart LR A([fa:fa-user 新しい<br>コントリビューター]) --- id1[(open-telemetry/opentelemetry.io<br>GitHub)] subgraph tasks[GitHub を使用した変更] direction TB 0[ ] -.- 1[1\. ページを編集] --> 2[2\. GitHub Markdownエディターを利用して変更を加える] 2 --> 3[3\. Propose file change を記入] end subgraph tasks2[ ] direction TB 4[4\. Propose file change を選択] --> 5[5\. Create pull request を選択] --> 6[6\. Open a pull request を記入] 6 --> 7[7\. Create pull request を選択] end id1 --> tasks --> tasks2 classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff; classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 class A,1,2,3,4,5,6,7 grey class 0 spacewhite class tasks,tasks2 white class id1 k8s
図 2. GitHub を利用した PR の公開手順。
問題を見つけたページ上で、右側のナビゲーションパネルにある ページの編集 のオプションを選択してください。
プロジェクトのメンバーでない場合、GitHub でリポジトリのフォークの作成を提案されます。Fork this repositoryを選択してください。
GitHub のエディターで、変更を加えます。
Propose file change フォームに記入してください。
Propose file change を選択します。
Create Pull request を選択します。
Open a pull request 画面に表示されます。あなたの説明はレビュアーが理解するのに役立ちます。
Create pull requestを選択してください。
プルリクエストをマージする前に、OpenTelemetry コミュニティメンバーはレビューして承認します。
レビュアーから変更を求められた場合。
- File changedタブに移動してください。
- プルリクエストによって変更されたファイルのいずれかで、鉛筆(編集)アイコンを選択します。
- 求めら得た変更を加えください。 コードの提案があれば、適用してください。
- 変更をコミットしてください。
レビューが完了したら、レビュアーは PR をマージして変更が数分後に反映されます。
Tip
プルリクエストに/fix:format
とコメントすると、フォーマットの問題を自動的にチェックするトリガーが起動します。ローカルのフォークから作業する
Git に慣れている場合もしくは、変更が数行以上の場合は、ローカルのフォークから作業してください。
git がパソコンにインストール済みであることを確認してください。 Git のユーザーインターフェースも利用できます。
図 3 は、ローカルのフォークから作業するときに従う手順を示しています。詳細はそれぞれの手順に従ってください。
flowchart LR 1[open-telemetry/opentelemetry<br>repository をフォーク] --> 2[ローカルのクローンを作成<br>アップストリームを設定] subgraph changes[変更] direction TB S[ ] -.- 3[ブランチを作成<br>例 my_new_branch] --> 3a[テキストエディター<br>を使用した変更の追加] --> 4["Hugo を使用した<br>変更のプレビュー<br>(localhost:1313)"] end subgraph changes2[コミット / プッシュ] direction TB T[ ] -.- 5[変更をコミット] --> 6[origin/my_new_branch<br>にコミットをプッシュ] end 2 --> changes --> changes2 classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff; classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 class 1,2,3,3a,4,5,6 grey class S,T spacewhite class changes,changes2 white
図 3. ローカルのフォークで作業して変更を追加。
opentelemetry.io リポジトリをフォークする
opentelemetry.io
リポジトリに移動してください。- フォークを選択してください。
ローカルのクローンを作成し、アップストリームを設定してください
ターミナルウィンドウで、フォークをクローンし、必要なものをインストールしてください。
git clone git@github.com:<your_github_username>/opentelemetry.io.git cd opentelemetry.io npm install
open-telemetry/opentelemetry.io
リポジトリをupstream
リモートに設定。git remote add upstream https://github.com/open-telemetry/opentelemetry.io.git
origin
とupstream
リポジトリの確認。git remote -v
出力は以下のようになります。
origin git@github.com:<your_github_username>/opentelemetry.io.git (fetch) origin git@github.com:<your_github_username>/opentelemetry.io.git (push) upstream https://github.com/open-telemetry/opentelemetry.io.git (fetch) upstream https://github.com/open-telemetry/opentelemetry.io.git (push)
フォークの
origin/main
とopen-telemetry/opentelemetry.io
のupstream/main
からコミットをフェッチ。git fetch origin git fetch upstream
これにより、変更を加える前にローカルリポジトリが最新の状態であることを確認できます。 フォークをアップストリームと同期させるために、定期的にアップストリームの変更をオリジンにプッシュしてください。
ブランチを作成
新しいブランチを作成します。 この例はベースブランチが
upstream/main
であると想定しています。git checkout -b <my_new_branch> upstream/main
コードエディターまたはテキストエディターを使用して変更を加えてください。
いつでも、git status
コマンドを使用して、どのファイルが変更したか確認できます。
変更のコミット
プルリクエストを提出する準備ができたら、変更をコミットしてください。
ローカルリポジトリで、コミットが必要なファイルを確認してください。
git status
出力は次のようになります。
On branch <my_new_branch> Your branch is up to date with 'origin/<my_new_branch>'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: content/en/docs/file-you-are-editing.md no changes added to commit (use "git add" and/or "git commit -a")
Changes not staged for commit のリストされているファイルをコミットしてください。
git add <your_file_name>
これを各ファイルに対して繰り返してください。
すべてのファイルを追加した後に、 コミットを作成してください。
git commit -m "Your commit message"
ローカルブランチと新しいコミットをリモートのフォークにプッシュしてください。
git push origin <my_new_branch>
変更がプッシュされると、GitHub が PR を作成できることを知らせます。
フォークからプルリクエストを公開する
図 4 はフォークから opentelemetry.io への PR を開く手順を示しています。
flowchart LR subgraph first[ ] direction TB 1[1\. opentelemetry.io リポジトリに移動] --> 2[2\. New Pull Request を選択] 2 --> 3[3\. compare across forks を選択] 3 --> 4[4\. head repository のドロップダウンメニューから<br>自身のフォークを選択] end subgraph second [ ] direction TB 5[5\. compare のドロップダウンメニューから<br>自身のブランチを選択] --> 6[6\. Create Pull Request を選択] 6 --> 7[7\. PR に説明を追加] 7 --> 8[8\. Create pull request を選択] end first --> second classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold class 1,2,3,4,5,6,7,8 grey class first,second white
図 4. フォークから、PR を公開する手順 opentelemetry.io.
Web ブラウザで
opentelemetry.io
リポジトリにアクセスしてください。New Pull Request を作成してください。
compare across forks を選択してください。
head repository ドロップダウンメニューから、あなたのフォークを選択してください。
ドロップダウンメニューの compare から、あなたのブランチを選択してください。
Create Pull Request を選択してください。
プルリクエストの説明を追加してください。
タイトル (50 文字未満): 変更の意図を要約してください。
説明: 変更を詳細に記述してください。
- GitHub イシューに関連する場合、
Fixes #12345
やCloses #12345
を説明に記述することで、PR のマージしたあとに GitHub の自動化が該当イシューをクローズします。 他の関連する PR がある場合もリンクしてください。 - 特定のことに対してアドバイスを求める場合、説明にレビュアーが考えて欲しい質問を含めてください。
- GitHub イシューに関連する場合、
Create pull request ボタンを選択してください。
プルリクエストは、Pull requests で確認できます。
PR を公開した後に、自動テストの実行と Netlify を使用したプレビューのデプロイを試みます。
- Netlify ビルドが失敗した場合、詳細な情報のために Details を選択してください。
- Netlify のビルドが成功した場合、Details を選択して、変更が適用された OpenTelemetry のウェブサイトのステージングバージョンを開いてください。 これがレビュアーが変更を確認する方法です。
他のチェックも同様に失敗している可能性があります。すべての PR チェック を参照してください。
内容の問題を自動的に修正する
リポジトリに変更を提出するまえに、以下のコマンドを実行して (i) 報告された問題の対応し、(ii) スクリプトによって変更されたファイルのコミットをしてください。
npm run test-and-fix
ファイルに対して、テストとすべての問題の修正を分割して実行するには、以下を実行してください。
npm run test # ファイルを更新せずにチェックのみを実行します
npm run fix:all # ファイルを更新する場合があります。
利用可能な NPM スクリプトのリストを表示するには、npm run
を実行してください。
プルリクエストのチェックとエラーの自動修正の詳細は、PR checks を参照してください。
変更をローカルでプレビューする
変更のプッシュまたはプルリクエストの公開の前に、ローカルでプレビューしてください。 プレビューはビルドエラーとマークダウンのフォーマットの問題を検出できます。
Hugo をローカルでビルドと提供するには、以下のコマンドを実行してください。
npm run serve
Web ブラウザで http://localhost:1313
に移動してローカルプレビューを確認してください。
Hugo は変更を監視し、必要に応じてサイトをリビルドします。
ローカルの Hugo インスタンスを停止するには、ターミナルにもどって Ctrl+C
を入力するか、ターミナルを閉じてください。
サイトデプロイと PR プレビュー
PR を提出したら、Netlify は deploy preview を作成し、変更をレビューできます。 PR がマージされると、Netlify はプロダクションサーバーに更新されたサイトを本番サーバーにデプロイします。
Note: PR プレビューには ドラフトページ が含まれますが、本番ビルドには含まれません。
デプロイログなどを確認するには、プロジェクトの dashboard を確認してください。 Netlify ログインが必要です。
PR ガイドライン
PR がマージされる前に、レビューと編集を数回繰り返すことがあります。 このプロセスをできるだけ簡単にするために、以下のガイドラインに従ってください。
- もしあなたの PR が簡単な修正でない場合は、フォークから作業してください。 リポジトリの上部にある Fork ボタンをクリックし、フォークをローカルにクローンしてください。準備ができたら、アップストリームリポジトリに PR を作成してください。
- あたなたのフォークの
main
ブランチから作業をせずに、PR 専用のブランチを作成してください。 - メンテナーがあなたのプルリクエストに変更を加えられることを確認してください。
レビュアーからの変更
レビュアーはあなたのプルリクエストにコミットすることがあります。 ほかの変更を加える前に、それらのコミットをフェッチしてください。
リモートフォークからコミットをフェッチして、作業中のブランチをリベースしてください。
git fetch origin git rebase origin/<your-branch-name>
リベースしたあとに、フォーク先にあなたの変更をフォースプッシュしてください。
git push --force-with-lease origin <your-branch-name>
コンフリクトは GitHub UI からも解決できます。
マージのコンフリクトとリベース
別のコントリビューターが別の PR で同じファイルに変更をコミットすると、マージコンフリクトが発生する可能性があります。 あなたの PR ですべてのマージコンフリクトを解決する必要があります。
フォークを更新して、ローカルブランチをリベースしてください。
git fetch origin git rebase origin/<your-branch-name>
フォークに変更をフォースプッシュしてください。
git push --force-with-lease origin <your-branch-name>
open-telemetry/opentelemetry.io
のupstream/main
から変更をフェッチして、あなたのブランチをリベースしてください。git fetch upstream git rebase upstream/main
リベースの結果を確認してください。
git status
これにより、多くのファイルがコンフリクトとしてマークされます。
コンフリクトが発生した各ファイルを開き、コンフリクトマーカー(
>>>
、<<<
そして===
) を探してください。 コンフリクトを解消してコンフリクトマーカーを削除してください。詳細は、How conflicts are presented を確認してください。
ファイルをチェンジセットに追加してください。
git add <filename>
リベースを続けてください。
git rebase --continue
ステップ 2 から 5 を必要に応じて繰り返してください。
すべてのコミットを適用した後、
git status
コマンドはリベースが完了したことを示します。ブランチをあなたのフォークにフォースプッシュしてください。
git push --force-with-lease origin <your-branch-name>
プルリクエストにはもうコンフリクトが表示されません。
マージの要件
プルリクエストは、以下の条件を満たしたときにマージされます。
- 承認者、メンテナー、技術委員会メンバー、または専門家によるすべてのレビューが “Approved” ステータスであること。
- 解決していない会話がないこと。
- 最低 1 人の承認者によって承認されていること。
- 失敗している PR チェックがないこと。
- PR ブランチがベースブランチと最新の状態であること。
重要
PR チェックの失敗についてあまり心配しないでください。 コミュニティメンバーが修正方法を教えたり、代わりに修正したりしてくれます。
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!