pw check
pw checkpw check は pw generate が _pw_gen.go に書き
出す内容を組み立て、ディスク上のファイルと比べます。何も書きません。フラグも
取りません。
生成された Go はバージョン管理から外れているので、古くなったことをリポジトリの 差分では示せません。その差分の代わりになるのがこのコマンドです。
pw: generated files are stale: handlers/home_pw_gen.go古ければ非ゼロ、すべてがソースと一致していればゼロで終了します。ファイルが丸ごと 無い場合も古い扱いです。クリーンなチェックアウトはまさにその状態です。出力を コミットしたものが何もないからです。
検証しないもの
Section titled “検証しないもの”生成された Go だけです。pw generate が同時に書く
スタイルシートとアセットツリーもバージョン管理外で、こちらは比較対象がそもそも
コミットされていません。
つまりこのコマンドは pw generate が書く範囲より狭く検証します。その差は CI が
緑になったときの読み方に効きます。緑が意味するのは、生成された Go がソースと
一致していること。ツリーがコンパイルできることではありません。それに答えるのは
今も go build です。
隣接する問いには隣接するコマンドが答えます。3 つのうちどれも他を実行しません。
| コマンド | 答えるもの |
|---|---|
pw check |
生成された Go がソースと一致しなくなっていないか |
pw fmt --check |
テンプレートとクエリのソースが正規形になっているか |
pw doctor |
設定と結線、そして名前を付けた環境で実際に動くもの |
pw fmt --checkpw checkpw buildpw fmt はソースを書き換えるので先に置きます。生成のあとに整形を回すと、生成
された出力が整形前のテキストを記述したままになります。
pw doctor は自分でもこの検査を先に走らせ、失敗したときは生成メタデータから
読んでいる設定セクションの報告を格下げします。古い記述をもとに設定を説明しても
仕方がないからです。
パッケージプロジェクトでは
Section titled “パッケージプロジェクトでは”コンポーネントパッケージは生成された Go を
コミットします。利用側は go build だけでビルドし、再生成はしないからです。
利用側のプロジェクトで古い生成物を検出する手段は、あなたのパッケージを名指しする
コンパイルエラーしかありません。だからこのコマンドがリリースゲートで、
pw init --kind package はそれを走らせるワークフローをスキャフォールドします。
