プルリクエストのチェックとテスト
opentelemetry.io リポジトリにpull request(PR)を作成した際に、一連のチェックが実行されます。 PR のチェックは次のことを検証します。
- CLA の署名しているか
- PR がNetlify を通じてデプロイに成功しているか
- スタイルガイドに変更が従っているか
もし何らかの PR チェックが失敗していれば、最初にローカルで npm run fix:all を実行することで内容の問題を修正してください。
PRに /fix というコメントを追加することもできます。
これにより、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つのチェックは、ウェブサイトをビルドしてすべてのリンクが有効であることを検証します。
外部リンクを追加または変更した場合、リンクチェッカーはそのリンクをリンクキャッシュ (.lycheecache) に記録します。
キャッシュが更新されるまでこのチェックは失敗します。
キャッシュを更新する最も簡単な方法は、PR に /fix:refcache とコメントすることです。
OpenTelemetry ボットがキャッシュを更新してくれます。
あるいは、npm run check:links を実行してローカルでビルドとリンクチェックを行うこともできます。
このコマンドはリンクキャッシュも更新します。
キャッシュに変更があれば、新しいコミットでプッシュしてください。
サイト内リンクの警告については、常にサイト内リンクを使用するを参照してください。
404 エラーの修正
リンクチェッカーによって invalid(HTTPステータス 404)として報告された URL を修正する必要があります。
有効な外部リンクの処理
リンクチェッカーは、チェッカーをブロックするサーバーによって、200(成功)以外の HTTP ステータスを取得することがあります。 このようなサーバーは、404 以外の 400 番台の HTTP ステータス(401、403、406 が最も一般的)を返すことがよくあります。 LinkedIn などの一部のサーバーは 999 を報告します。
チェッカーが成功ステータスを取得できない外部リンクを手動で検証した場合は、URL にクエリパラメーター ?link-check=no を追加して、リンクチェッカーに無視させることができます。ほかのクエリパラメーターがすでにある場合は &link-check=no を追加してください。
たとえば、以下の URL は無視されます。
WARNINGS in build log?
このチェックが失敗した場合、npm run log:build ステップの BUILD ログを確認して、他の潜在的な問題を特定してください。
復旧方法がわからない場合は、メンテナーに助けを求めてください。
常にサイト内リンクを使用する
OpenTelemetry ウェブサイト内のページをリンクする場合、外部リンクではなくローカルパスを使用してください。 使用しない場合、ビルド時に警告が表示されます。
ビルドの警告を解消するには、完全な URL のパス部分のみを保持してください。
| ❌ 間違った使い方 | ✅ 正しい使い方 |
|---|---|
https://opentelemetry.io/docs/concepts/ | /docs/concepts/ |
https://www.opentelemetry.io/blog/... | /blog/... |
ローカルパスを使用することで、以下のことが保証されます。
- サイト内ページが同じブラウザタブで開く: 外部リンクは新しいタブで開くため、サイト内ナビゲーションの望ましい動作ではありません
- ローカリゼーションリンク処理が期待通りに動作する: リンクパスの先頭に、適切な言語コードが自動で付与されます
- ローカルパスはリンクチェックが容易で、リンクキャッシュを不必要に肥大化させません
メンテナーへの注意
以下のコードはこのセクションで説明したリンク要件を強制します。
- この警告を表示するレンダーリンクフック:
layouts/_markup/render-link.html - 完全な URL をローカルパスに自動的に変換するスクリプト:
scripts/content-modules/adjust-pages/
LOCALIZATION guidelines
このチェックは、ローカリゼーションガイドラインのうち機械的に検証可能なルール(たとえば、ローカリゼーション間での画像やその他のアセットのコピー禁止など)を、他のチェックでまだカバーされていないものについて適用します。
このチェックが失敗した場合、npm run fix:l10n をローカルで実行し、新しいコミットで変更をプッシュしてください。
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!