記事のサマリー(TL;DR)
- Shopify CLI 4.0 が SemVer に移行。メジャーバージョンアップが「破壊的変更あり」のシグナルになる
- 自動アップグレード機能を導入。ただし CI 環境・プロジェクトローカルインストール・メジャーバージョン更新時はスキップ
--forceフラグがapp deploy/app releaseから完全削除。代替は--allow-updates/--allow-deletesで操作を明示的に分離
Shopify Plus 開発・運用チームが即確認すべき CI/CD への影響
Shopify CLI 4.0 は、開発者個人の手元だけでなく、CI/CD パイプラインに組み込んでいるチームほど影響が大きいリリースです。
最も注意が必要なのは --force フラグの削除です。これまで shopify app deploy や app release に --force を付けておけば、拡張機能の追加・更新・削除をひとまとめに非対話で実行できていました。しかし「追加・更新(低リスク)」と「削除(高リスク・不可逆)」を区別できないまま自動実行できるこの設計は危険であるとして廃止されました。
GitHub Actions や GitLab CI のワークフロー内で --force を使用している場合は、--allow-updates(追加・更新を許可)と --allow-deletes(削除を許可)に分けて記述し直す必要があります。削除を伴うデプロイだけ別ジョブ・別承認ステップに分離する構成にすると、誤削除リスクをさらに下げられます。
また、自動アップグレード機能はデフォルトで有効になっていますが、CI 環境では自動的にスキップされます。ローカル開発環境でバージョンが自動更新されてしまい、チーム間でバージョン齟齬が生じるリスクには引き続き注意が必要です。shopify config autoupgrade off で無効化することも検討してください。
さらに、以下の非推奨コマンドが完全削除されているため、既存スクリプトの棚卸しが必要です。スクリプト中に旧コマンドが残っていると CI が静かに失敗するケースがあります。
詳細
セマンティックバージョニング(Semantic Versioning)の採用
Shopify CLI はバージョン 4.0 より公式に SemVer に準拠しました。各リリースの意味は以下のとおりです。
| バージョン種別 | 意味 |
|---|---|
| メジャー(例: 4.0 → 5.0) | CLI コマンド構造・動作に破壊的変更あり |
| マイナー(例: 4.0 → 4.1) | 新機能追加 |
| パッチ(例: 4.0.0 → 4.0.1) | バグ修正 |
これにより、package.json や CI の依存バージョン指定で ^4.0.0 のように範囲指定を書いた場合でも、メジャーバージョンをまたいだ意図しないアップグレードを防ぎやすくなります。
自動アップグレード機能
Shopify CLI 4.0 からは、インストールに使ったパッケージマネージャー(npm / yarn / pnpm など)を通じて自動的に最新バージョンへアップグレードされます。
自動アップグレードがスキップされる条件
- CI 環境での実行時
- プロジェクトローカルインストール(
devDependenciesへの固定インストール)の場合 - メジャーバージョンリリース時(4.x → 5.0 など破壊的変更を含む更新)
自動アップグレードを無効にしたい場合は次のコマンドを実行します。
shopify config autoupgrade off
--force フラグの削除(app deploy / app release)
app deploy および app release コマンドの --force フラグが Shopify CLI 4.0 で完全に削除されました。
このフラグは「低リスクな操作(拡張機能の追加・更新)」と「高リスクな操作(拡張機能の削除)」を区別せずに実行を強制するものであり、CI/CD で誤って不可逆的な削除が実行されるリスクがありました。
代替として、2026年3月のチェンジログで告知済みの以下のフラグを使用します。
| フラグ | 許可する操作 |
|---|---|
--allow-updates |
拡張機能の追加・更新 |
--allow-deletes |
拡張機能の削除 |
この分離により、CI/CD パイプラインを「削除なし・無人実行」と「削除あり・承認必要」に明確に分けて構成できます。
その他の削除済みコマンド・フラグ一覧
以下の非推奨コマンドおよびフラグが CLI 4.0 で完全削除されました。既存のシェルスクリプト・CI 定義ファイルを点検してください。
| 削除されたコマンド / フラグ | 代替 |
|---|---|
shopify webhook trigger |
shopify app webhook trigger |
shopify theme serve |
shopify theme dev |
shopify app generate schema |
shopify app function schema |
shopify app webhook trigger --shared-secret |
--client-secret |
shopify app generate extension --type |
--template |
特に shopify theme serve → shopify theme dev はテーマ開発者が日常的に使うコマンドであり、ローカルの npm scripts や README に記載が残っている場合は合わせて更新が必要です。