メインコンテンツへ移動
学習に戻る
11操作読了目安 10 分中級

ガイド 07 · オペレーション

正確に切り替え、ロールバックする

安全に切り替えるには、適用したい対象と、復元できる直前の正確な状態という 2 つの準備が必要です。

最終検証日
2026年8月15日
実行時
0.1.0-rc.8
検証済みの範囲
  • 有効な直接依存関係は 1 つだけ
  • 正確なロールバック成果物の記録
  • CLI と実ランタイムによる事後確認
このページについて
  1. 切り替え前後の状態を両方用意する
  2. 記録と現在の状態が一致するときだけロールバックする

切り替え前後の状態を両方用意する

対応する web Profile の運用では、直接追加した @dsh-themes/* パッケージを 1 つだけ有効にします。切り替え時は、対象パッケージを追加する前に以前のパッケージを削除するため、最初の変更を行う前に復旧手段を用意する必要があります。

  1. 01

    現在の状態を確認して特定する

    web Profile から、直接追加されたパッケージ名と正確なバージョンを読み取ります。依存関係が曖昧な場合や、バージョン範囲が使われている場合は中止します。

  2. 02

    対象成果物を確認する

    成果物全体の SHA-256、manifest ID、正確な互換性、slug、version と一致する、管理されたダウンロードを確認します。

  3. 03

    以前の成果物を確認する

    正確な以前の .tgz と digest を用意します。以前の状態が @dsh-themes/* パッケージを使わない組み込み palette なら、その事実を記録します。

  4. 04

    ロールバック記録を作る

    以前の ID と対象 ID、検証済み成果物の絶対パス、成果物全体の digest を記録します。Profile の内容や認証情報は含めません。

  5. 05

    変更内容を最終確認する

    何かを削除する前に、現在の状態、切り替え対象、互換性、用意したロールバック情報を確認します。

bash
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs plugin --profile web remove @dsh-themes/current-theme
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs plugin --profile web add /absolute/path/to/verified-target.tgz --save-exact
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs plugin --profile web list --json
node /absolute/path/to/dsh-theme-manager/scripts/run-dsh.mjs --profile web --dump-config
これはコマンド例です。正確なパッケージ識別子と、事前に検証した成果物の絶対パスを使ってください。

記録と現在の状態が一致するときだけロールバックする

  1. 01

    記録を検証する

    Profile を変更する前に、不正、不完全、移動済み、不一致の成果物参照を拒否します。

  2. 02

    現在の対象がまだ一致するか確認する

    切り替え後に別の変更が加えられた Profile へ、古いロールバック記録を適用してはいけません。

  3. 03

    以前の成果物を再検証する

    インストールの直前に、成果物全体のバイト列を再確認します。payload hash で代用してはいけません。

  4. 04

    対象を削除し、以前の正確な状態を復元する

    以前の正確なパッケージをインストールします。組み込み palette へ戻す場合は、@dsh-themes/* パッケージを残しません。

  5. 05

    再起動して検証する

    想定する直接依存関係が 1 つだけであることを確認し、出力した構成を調べ、DSH を再起動して、実際のランタイム ID を検証します。

検証済みの入力だけを使って操作する

よくある質問

変更を行う前に

フォーマット、互換性、証拠、ロールバックに関する回答

このガイドでは何を確認しますか?

このガイドの対象:有効な直接依存関係は 1 つだけ、正確なロールバック成果物の記録、CLI と実ランタイムによる事後確認

最初に何をすべきですか?

安全に切り替えるには、適用したい対象と、復元できる直前の正確な状態という 2 つの準備が必要です。

最も重要な境界は何ですか?

切り替えが途中で失敗した場合は、不完全な対象を削除し、あらかじめ用意した以前の成果物を再インストールします。安定状態として想定されるのは、直接追加した @dsh-themes/* パッケージが 1 つだけある状態、または組み込み palette の状態です。

学習を続ける

検証済みの証拠から続ける

公開済みのアーティファクトを比較するか、インストール手順に戻ります。