デバッグ
オープンであることは実用的な利点です。コードが利用可能で、ローカルで実行でき、コーディングエージェントを使用して質問への回答を迅速化し、コードベース内の潜在的なバグをデバッグできます。
デバッグ中にドキュメントの欠落や不備を見つけた場合は、docs/ 以下の英語ドキュメントを更新して PR を作成してください。
CI でスレッドダンプを取得する#
CLI が断続的にハングする場合、プロセスを停止せずにスレッドダンプを取得できます。シグナルハンドラを有効にし、実行中の tuist プロセスに SIGUSR1 を送信してください。
export TUIST_THREAD_DUMP_SIGNAL=1
export TUIST_THREAD_DUMP_SAMPLE=1 # macOS only, captures all threads via /usr/bin/sample
tuist generate &
TUIST_PID=$!
sleep 600
kill -USR1 "$TUIST_PID"
wait "$TUIST_PID"
TUIST_THREAD_DUMP_SAMPLE が設定されていない場合、ハンドラは現在のスレッドスタックを出力します。出力は stderr に書き込まれるため、CI ログに表示されます。
コーディングエージェントを使用する#
コーディングエージェントは次のような場合に役立ちます。
- 特定の動作がどこで実装されているかをコードベース内で検索する。
- ローカルで問題を再現し、迅速に試行錯誤する。
- Tuist 内での入力の流れを追跡し、根本原因を特定する。
可能な限り最小限の再現手順を共有し、エージェントを対象のコンポーネント(CLI、サーバー、キャッシュ、ドキュメント、またはハンドブック)に向けてください。範囲を絞るほど、デバッグプロセスはより迅速かつ正確になります。
頻繁に必要なプロンプト(FNP)#
予期しないプロジェクト生成#
プロジェクト生成によって期待していない結果が得られています。/path/to/project のプロジェクトに対して Tuist CLI を実行し、なぜこのようなことが起きているのかを理解してください。ジェネレーターのパイプラインを追跡し、出力を担当するコードパスを特定してください。
生成されたプロジェクトにおける再現可能なバグ#
これは生成されたプロジェクトのバグのように見えます。既存の例を参考にして、examples/ 以下に再現可能なプロジェクトを作成してください。失敗する受け入れテストを追加し、そのテストのみを選択して xcodebuild で実行し、問題を修正してから、テストを再実行して合格することを確認し、PR を作成してください。