プルリクエストのチェックとテスト

プルリクエストがすべてのチェックをパスする方法学ぶ

opentelemetry.io リポジトリpull request(PR)を作成した際に、一連のチェックが実行されます。 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

このチェックは以下の項目を検証します。

このチェックが失敗した場合、npm run fix:filenames をローカルで実行し、新しいコミットで変更をプッシュしてください。

古いファイルやフォルダ

以下のパスは古いものとしてフラグが付き、fix:filenames によって削除されます。 イシューまたは PR 番号が存在する場合、そのパスが古くなった変更の経緯を示しています。

これらの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 は無視されます。

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 を不必要に肥大化させません
メンテナーへの注意

以下のコードはこのセクションで説明したリンク要件を強制します。

TEST (excluding test:base)

このチェックは、npm run test:compound-tests を実行します。 これは、たとえば Netlify edge-function テストのような test:*-* 形式の NPM スクリプトを実行します。 このチェックは test:base実行しません