コンテンツにスキップ

pw check

Terminal window
pw check

pw checkpw generate_pw_gen.go に書き 出す内容を組み立て、ディスク上のファイルと比べます。何も書きません。フラグも 取りません。

生成された Go はバージョン管理から外れているので、古くなったことをリポジトリの 差分では示せません。その差分の代わりになるのがこのコマンドです。

pw: generated files are stale:
handlers/home_pw_gen.go

古ければ非ゼロ、すべてがソースと一致していればゼロで終了します。ファイルが丸ごと 無い場合も古い扱いです。クリーンなチェックアウトはまさにその状態です。出力を コミットしたものが何もないからです。

生成された Go だけです。pw generate が同時に書く スタイルシートとアセットツリーもバージョン管理外で、こちらは比較対象がそもそも コミットされていません。

つまりこのコマンドは pw generate が書く範囲より狭く検証します。その差は CI が 緑になったときの読み方に効きます。緑が意味するのは、生成された Go がソースと 一致していること。ツリーがコンパイルできることではありません。それに答えるのは 今も go build です。

隣接する問いには隣接するコマンドが答えます。3 つのうちどれも他を実行しません。

コマンド 答えるもの
pw check 生成された Go がソースと一致しなくなっていないか
pw fmt --check テンプレートとクエリのソースが正規形になっているか
pw doctor 設定と結線、そして名前を付けた環境で実際に動くもの
Terminal window
pw fmt --check
pw check
pw build

pw fmt はソースを書き換えるので先に置きます。生成のあとに整形を回すと、生成 された出力が整形前のテキストを記述したままになります。

pw doctor は自分でもこの検査を先に走らせ、失敗したときは生成メタデータから 読んでいる設定セクションの報告を格下げします。古い記述をもとに設定を説明しても 仕方がないからです。

コンポーネントパッケージは生成された Go を コミットします。利用側は go build だけでビルドし、再生成はしないからです。 利用側のプロジェクトで古い生成物を検出する手段は、あなたのパッケージを名指しする コンパイルエラーしかありません。だからこのコマンドがリリースゲートで、 pw init --kind package はそれを走らせるワークフローをスキャフォールドします。