CLI のバージョン体系が SemVer になり、CLI 自身が自動で上がるようになる。--force や旧コマンドは削除され、CI/CD は --allow-updates/--allow-deletes を使う運用へ。
--force 撤去(→ --allow-updates / --allow-deletes) の3つ。
新機能 = minor、バグ修正 = patch、破壊的変更 = major。「次のアップデートで壊れるか」を番号で判断できる。
CLI 自身がインストールに使ったパッケージマネージャ経由で自動更新。CI/プロジェクトローカル/メジャー版は対象外。
--force 撤去削除を含む高リスク操作と低リスク操作を区別できなかったため廃止。--allow-updates / --allow-deletes で粒度を選ぶ。
インストールに使ったパッケージマネージャを尊重して、CLI 自身が同じ仕組みで自分を更新する。
shopify config autoupgrade off で停止できる。CI / プロジェクトローカル / メジャー更新は元から対象外。
--force 削除と新フラグ| 項目 | 3.x まで | Shopify CLI 4.0 |
|---|---|---|
| 無人デプロイ | --force 一発(粒度なし) |
削除 |
| 拡張機能の追加・更新 | --force に含まれる(低リスク) |
--allow-updates |
| 拡張機能の削除 | --force に含まれる(高リスク) |
--allow-deletes |
| 事故の起きやすさ | 区別なし → 意図しない削除が発生し得た | 明示的に「削除を許可する」と書かない限り削除されない |
--force 本体を撤去した形。CI/CD で --force をハードコードしている場合は、今すぐ --allow-updates(+必要なら --allow-deletes)に書き換える必要がある。| 削除されたもの | 置き換え | 対象 |
|---|---|---|
shopify app deploy --forceshopify app release --force |
--allow-updates / --allow-deletes |
app |
shopify webhook trigger |
shopify app webhook trigger |
app |
shopify theme serve |
shopify theme dev |
theme |
shopify app generate schema |
shopify app function schema |
app / function |
shopify app webhook trigger --shared-secret |
--client-secret |
app |
shopify app generate extension --type |
--template |
app |
--force を全部消すリポジトリ全体を --force で grep。デプロイ/リリース系コマンドからは無条件で削除。
--allow-updates新規 extension を増やすだけ/既存 extension のコード更新だけのフローはこれで十分。
--allow-deletesextension の整理整頓を CI に任せたい場合のみ追加。本番ブランチには付けない方が安全。
5.0 のような メジャー更新が出た時だけ、コマンド構造や挙動の破壊的変更を疑えばよい。minor/patch は基本そのまま受けられる。
CI 内の CLI バージョンは固定。ローカル開発者だけが先行してアップグレードする状態になり得る。CI 側のバージョン管理は別途必要。
CI/CD では原則 --allow-updates のみを使い、--allow-deletes はメンテナンス用ジョブやステージング限定にする運用が事故防止になる。
theme serve / webhook trigger / generate schema / --type / --shared-secret は社内 wiki・Makefile・GitHub Actions の YAML に残りがち。一括 grep で洗い出す。
shopify config autoupgrade off で自動更新を止められるバージョン揃えが厳密な現場(受託開発で複数顧客の Shopify CLI バージョンをロックしたい等)では、開発者ローカルでも auto-upgrade を OFF にして dotfiles で配布するのが現実解。
shopify app deploy --force がベタ書きされており、過去にブランチ整理ミスで extension が一括削除された経験がある。--force を --allow-updates に置換。削除を許す処理は別ジョブ(手動承認付き)として切り出し、そこにだけ --allow-deletes を付与。theme serve/webhook trigger/generate schema --type 等)が残っており、4.0 に上げると CI が落ちる可能性がある。shopify config autoupgrade off を実行し、案件ごとの package.json でバージョンを固定。方針 B : CI 側は元から自動更新対象外なので、CI には固定バージョンを明示インストール。--force 廃止 をまとめた整理メジャー。--allow-updates / --allow-deletes へ書き換え、旧コマンド6種を一掃すれば移行完了。