mdmark upgrade で移行の手順を当てて、設定・索引・文書を新しい版に合わせる手順
mdmark の新しい版を使い始めるときに実行する。
呼んだ CLI の版が目標の版になり、設定の version(手元の版)より新しく目標の版以下の版の移行の手順を、版の順に当てる。
--plan で呼ぶnpx github:shuhei1101/mdmark#v{目標の版} upgrade --plan
{目標の版} は上げる先の版の {MAJOR}.{MINOR}.{PATCH}。
手元の版は設定の version。
version が無い設定(v0.3.0 までの init が置いた設定)では、標準エラーに問いが出るので、標準入力に手元の版を v{MAJOR}.{MINOR}.{PATCH} の形で答える。
何も書き換えず、当てる版ごとの手順・変更履歴の行・壊す手順の有無を出す。
手元の版: v0.3.0
目標の版: v0.5.0
v0.4.0:
rename_key: `build.out` を `build.output` に改める
v0.5.0:
replace_mark(壊す手順): 印 `<!-- note -->` を `<!-- callout -->` に書き換える
変更履歴:
v0.4.0 #40 版を上げるときに移行の手順を当てる mdmark upgrade を作る
v0.5.0 #45 注意書きの印の名前を揃える
--plan のため書き換えていません
手元の版が目標の版と同じときは 手元の版が目標の版と同じです。当てる手順はありません と出て、ここで終わる。
(壊す手順) が付いた手順は、当てると値が失われる。
当ててよいかを、手順の説明と変更履歴の行から決める。
upgrade を呼ぶnpx github:shuhei1101/mdmark#v{目標の版} upgrade
次の順に処理する。
version が無いときだけ)y で答える(壊す手順があるときだけ).mdmark/backup/{日時}/ に取り、手順を版の順に当てるmdmark check と同じ点検を流し、ずれが 0 件なら設定の version を目標の版に書き換える問いは標準エラーに出て、答えは 1 問 1 行で標準入力から読む。
y 以外を答えると、何も書き換えずに終わる。
--yes を付けると、壊す手順の確かめだけを飛ばす。
手元の版と、値を聞く手順の問いは飛ばさない。
当てた手順・変更履歴の行・写しの場所が出る。
写し: .mdmark/backup/20261017120000
版を v0.5.0 にしました
upgrade が書き換えるのは設定・索引・文書だけ。
使う側のページに書いた配布物の URL のタグは、手で v{目標の版} に書き換える(配布物を読み込む)。
手順の失敗と点検のずれは、写しから全てのファイルを戻し、設定の version を変えずに終了コード 1 で終わる。
標準エラーに、失敗した版・手順・理由か、mdmark check と同じ形のずれの行が出る。
原因を直して、同じ upgrade をもう一度呼ぶ。
次の upgrade は、同じ手元の版から当て直す。
そのほかの終了コード 1 は CLI。
即時。upgrade が終わると、設定の version が目標の版になり、手順の変更が設定・索引・文書に入っている。
ページは、URL のタグを書き換えて再読み込みしたときから目標の版を読み込む。
mdmark.config.yaml の version が v{目標の版} になっている。
npx github:shuhei1101/mdmark#v{目標の版} check
ずれ 0 件 が出る(点検する)。
.mdmark/backup/{日時}/ の写しのファイルを、設定ファイルのあるフォルダの同じ相対パスへ戻し、ページの URL のタグも戻す。
.mdmark/ は中身が * の .gitignore を持つため、git の対象にならない。
写しが要らなくなったら消す。