From Romantic to Semantic: Shopify CLI versioning and auto-updates


O Romeo, stop with “v3—my heart,” it’s sweet but unclear;
Say Major when you break things, Minor when you add, Patch when you repair.
From my balcony I’ll trust each change, and never have to fear—
Be MAJOR.MINOR.PATCH , my love; let everyone know what’s there.

-Shakespeare’s feedback about Shopify CLI versioning (…maybe)


Nearly four years ago we released Shopify CLI 3.0, and with it a commitment to a great terminal-first developer experience for Shopify apps and storefronts. We’ve continued to build on that foundation, and have had over 250 releases of Shopify CLI 3. Given the importance of CLIs to agentic development, we have no intention of slowing down. Quite the opposite.

Over those 250 releases however, our versioning has not reflected your usual expectations of a node package. The jump from Shopify CLI v2 to v3 was transformative – Ruby to Node, a new structure for apps, and more. So even when we’ve had breaking changes, we’ve hesitated to make the version jump to v4. You might say we were a little romantic about it. But with that romanticism came a lack of clarity around what was in a given version.

Going forward, we will be following familiar semantic versioning practices for Shopify CLI. Releases with new features will be minor, and bug fixes as patches. In addition to improved communication, this gives us a foundation for auto-updating. When new minor and patch versions are released, Shopify CLI will automatically use your package manager to install the latest version. (We’ll skip that for CI environments, local dev dependencies, or if you’ve turned them off via environment variable.)

And while our goal is always to avoid breaking changes whenever possible, sometimes security or innovation demand it. For example, you may occasionally see new major versions if we need to remove a flag, or introduce a breaking behavioral change.

So for example, when we remove the --force flag from shopify app deploy next month in Shopify CLI 4.0, you’ll see the first of those major version releases, as well as the introduction of auto-updates. It’s not the big leap we made from Shopify CLI v2 to v3, but we’re trying to not be romantic about it.

11 Likes