プルリクエストのチェックとテスト
opentelemetry.io リポジトリにpull request(PR)を作成した際に、一連のチェックが実行されます。 PR のチェックは次のことを検証します。
- CLA の署名しているか
- PR がNetlify を通じてデプロイに成功しているか
- スタイルガイドに変更が従っているか
もし何らかの PR チェックが失敗していれば、最初にローカルで npm run fix:all を実行することで内容の問題を修正してください。
PRに /fix:all というコメントを追加することもできます。
これにより、OpenTelemetry ボットがかわりにそのコマンドを実行して、PR を更新します。
ローカルに変更をプルすることを忘れないでください。
問題が残り続けている場合のみ、以下を読んで様々なチェックの内容と、失敗した状態からの修正する方法を確認してください。
Easy CLA
CLA に署名していなかった場合は、このチェックが失敗します。
Netlify deployment
Netlifyのビルドが失敗した場合は、詳細については Details を選択してください。
GitHub PR チェック
コントリビューションが スタイルガイド に従っていることを検証するために、スタイルガイドのルールを検証し、問題が見つかった場合に失敗する一連のチェックを実装しています。
後述のリストでは、現在のチェック内容と、それに関連するエラーを修正する方法について説明します。
TEXT linter
このチェックは、OpenTelemetry 固有の用語や単語がサイト全体で一貫して使用されていることを検証します。
問題が見つかった場合、プルリクエストの files changed ビューでファイルにアノテーションが追加されます。これらを修正すると、チェックが成功します。
また、npm run check:text -- --fix をローカルで実行すると、ほとんどの問題を修正できます。
npm run check:text を再度実行し、残りの問題を手動で修正してください。
MARKDOWN linter
このチェックは、Markdown ファイルの標準と一貫性が強制されていることを検証します。
問題が見つかった場合、npm run fix:markdown を実行すると、ほとんどの問題を自動的に修正できます。
残りの問題については、npm run check:markdown を実行し、提案された変更を手動で適用してください。
SPELLING check
このチェックは、すべての単語が正しく綴られていることをすべてのロケールで検証します。
このチェックが失敗した場合、npm run check:spelling をローカルで実行して、問題を確認してください。
許可された単語を追加または変更するには、スタイルガイドのスペルチェックを参照してください。
CSPELL check
このチェックは、フロントマターにある cSpell の cSpell:ignore リストが正規化されていること、および .cspell/*.txt 単語リストがソートされていることを検証します (npm run fix:dict を参照してください)。
このチェックが失敗した場合、npm run fix:dict をローカルで実行し、新しいコミットの変更をプッシュしてください。
FILE FORMAT
このチェックは、すべてのファイルが Prettier フォーマットルールに従っているかを検証します。
このチェックが失敗した場合、npm run fix:format をローカルで実行し、新しいコミットで変更をプッシュしてください。
FILENAME check
このチェックは以下の項目を検証します。
- すべてのファイル名が kebab-case になっていること
- 古いファイルやフォルダがリポジトリに存在しないこと (以下のリストを参照してください)
このチェックが失敗した場合、npm run fix:filenames をローカルで実行し、新しいコミットで変更をプッシュしてください。
fix:filenames は古いファイルやフォルダを削除することがあります。
古いファイルやフォルダ
以下のパスは古いものとしてフラグが付き、fix:filenames によって削除されます。
イシューまたは PR 番号が存在する場合、そのパスが古くなった変更の経緯を示しています。
BUILD and CHECK LINKS
これらの2つのチェックは、ウェブサイトをビルドしてすべてのリンクが有効であることを検証します。
ローカルでビルドしてリンクをチェックするには、npm run check:links を実行してください。
このコマンドは参照キャッシュも更新します。
refcache に変更があれば、新しいコミットでプッシュしてください。
サイト内リンクの警告については、常にサイト内リンクを使用するを参照してください。
404 エラーの修正
リンクチェッカーによって invalid(HTTPステータス 404)として報告された URL を修正する必要があります。
有効な外部リンクの処理
リンクチェッカーは、チェッカーをブロックするサーバーによって、200(成功)以外の HTTP ステータスを取得することがあります。 このようなサーバーは、404 以外の 400 番台の HTTP ステータス(401、403、406 が最も一般的)を返すことがよくあります。 LinkedIn などの一部のサーバーは 999 を報告します。
チェッカーが成功ステータスを取得できない外部リンクを手動で検証した場合は、URL にクエリパラメーター ?link-check=no を追加して、リンクチェッカーに無視させることができます。ほかのクエリパラメーターがすでにある場合は &link-check=no を追加してください。
たとえば、以下の URL は無視されます。
メンテナーは、リンクチェッカーを実行した直後に次のスクリプトを実行して、Puppeteer にOKでないステータスのリンクの検証を試みさせることができます。
./scripts/double-check-refcache-4XX.mjs
外部リンクのURLフラグメント(アンカー)も検証するには-fフラグを使用してください。
これはhtmltestが行わない検証です。
現在これを頻繁に実行していないため、-m Nフラグを使用して更新されるエントリ数を制限することをお勧めします。
使用方法については、-hで実行してください。
WARNINGS in build log?
このチェックが失敗した場合、npm run log:check:links ステップの BUILD and CHECK LINKS ログを確認して、他の潜在的な問題を特定してください。
復旧方法がわからない場合は、メンテナーに助けを求めてください。
常にサイト内リンクを使用する
OpenTelemetry ウェブサイト内のページをリンクする場合、外部リンクではなくローカルパスを使用してください。 使用しない場合、ビルド時に警告が表示されます。
ビルドの警告を解消するには、完全な URL のパス部分のみを保持してください。
| ❌ 間違った使い方 | ✅ 正しい使い方 |
|---|---|
https://opentelemetry.io/docs/concepts/ | /docs/concepts/ |
https://www.opentelemetry.io/blog/... | /blog/... |
ローカルパスを使用することで、以下のことが保証されます。
- サイト内ページが同じブラウザタブで開く: 外部リンクは新しいタブで開くため、サイト内ナビゲーションの望ましい動作ではありません
- ローカリゼーションリンク処理が期待通りに動作する: リンクパスの先頭に、適切な言語コードが自動で付与されます
- ローカルパスはリンクチェックが容易で、refcache を不必要に肥大化させません
メンテナーへの注意
以下のコードはこのセクションで説明したリンク要件を強制します。
- この警告を表示するレンダーリンクフック:
layouts/_markup/render-link.html - 完全な URL をローカルパスに自動的に変換するスクリプト:
scripts/content-modules/adjust-pages.pl
TEST (excluding test:base)
このチェックは、npm run test:compound-tests を実行します。
これは、たとえば Netlify edge-function テストのような test:*-* 形式の NPM スクリプトを実行します。
このチェックは test:base を実行しません。
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!