切り替え前後の状態を両方用意する
対応する web Profile の運用では、直接追加した @dsh-themes/* パッケージを 1 つだけ有効にします。切り替え時は、対象パッケージを追加する前に以前のパッケージを削除するため、最初の変更を行う前に復旧手段を用意する必要があります。
- 01
現在の状態を確認して特定する
web Profile から、直接追加されたパッケージ名と正確なバージョンを読み取ります。依存関係が曖昧な場合や、バージョン範囲が使われている場合は中止します。
- 02
対象成果物を確認する
成果物全体の SHA-256、manifest ID、正確な互換性、slug、version と一致する、管理されたダウンロードを確認します。
- 03
以前の成果物を確認する
正確な以前の .tgz と digest を用意します。以前の状態が @dsh-themes/* パッケージを使わない組み込み palette なら、その事実を記録します。
- 04
ロールバック記録を作る
以前の ID と対象 ID、検証済み成果物の絶対パス、成果物全体の digest を記録します。Profile の内容や認証情報は含めません。
- 05
変更内容を最終確認する
何かを削除する前に、現在の状態、切り替え対象、互換性、用意したロールバック情報を確認します。
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs --source plugin --profile web remove @dsh-themes/current-theme
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs --source plugin --profile web add /absolute/path/to/verified-target.tgz --save-exact
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs --source plugin --profile web list --json
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs --source --profile web --dump-config記録と現在の状態が一致するときだけロールバックする
- 01
記録を検証する
Profile を変更する前に、不正、不完全、移動済み、不一致の成果物参照を拒否します。
- 02
現在の対象がまだ一致するか確認する
切り替え後に別の変更が加えられた Profile へ、古いロールバック記録を適用してはいけません。
- 03
以前の成果物を再検証する
インストールの直前に、成果物全体のバイト列を再確認します。payload hash で代用してはいけません。
- 04
対象を削除し、以前の正確な状態を復元する
以前の正確なパッケージをインストールします。組み込み palette へ戻す場合は、@dsh-themes/* パッケージを残しません。
- 05
再起動して検証する
想定する直接依存関係が 1 つだけであることを確認し、出力した構成を調べ、DSH を再起動して、実際のランタイム ID を検証します。
検証済みの入力だけを使って操作する
元の状態へ戻す手順を用意する
現在の項目を記録し、切り替える前に正確に前のパッケージを準備してください。新しい外観を試した後、練習実行として一度前の状態に戻し、インターフェイスが正常に読み込まれることを確認します。
現在のテーマからカタログアイテム #NNNN に切り替えます。正確な以前の状態とパッケージを保持し、ターゲットを検証し、再起動して UI を確認してから、以前のバージョンを復元するためのコマンドまたはタスクを表示します。よくある質問
変更を行う前に
フォーマット、互換性、証拠、ロールバックに関する回答
このガイドでは何を確認しますか?
このガイドの対象:有効な直接依存関係は 1 つだけ、正確なロールバック成果物の記録、CLI と実ランタイムによる事後確認
最初に何をすべきですか?
安全に切り替えるには、適用したい対象と、復元できる直前の正確な状態という 2 つの準備が必要です。
最も重要な境界は何ですか?
切り替えが途中で失敗した場合は、不完全な対象を削除し、あらかじめ用意した以前の成果物を再インストールします。安定状態として想定されるのは、直接追加した @dsh-themes/* パッケージが 1 つだけある状態、または組み込み palette の状態です。
古いパッケージは常に新しい Alpha 上で実行できますか?
いいえ。ロールバックは、テストに使用した Harness バージョンと一致する必要があります。互換性のあるランタイムとパッケージを一緒に保管してください。バージョン番号だけでリカバリが保証されるとは考えないでください。
学習を続ける
検証済みの証拠から続ける
公開済みのアーティファクトを比較するか、インストール手順に戻ります。