Make auto-upgrade enabled by default, remove activation prompt#7341
Open
alfonso-noriega wants to merge 2 commits intomainfrom
Open
Make auto-upgrade enabled by default, remove activation prompt#7341alfonso-noriega wants to merge 2 commits intomainfrom
alfonso-noriega wants to merge 2 commits intomainfrom
Conversation
- getAutoUpgradeEnabled now returns true when never explicitly set - Removed promptAutoUpgrade and its UI prompt - shopify upgrade runs directly without prompting - Updated tests to reflect new default-on behavior Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
b88d9ac to
1dd6257
Compare
…rom status command - Re-export setAutoUpgradeEnabled from @shopify/cli-kit/node/upgrade so config autoupgrade on/off commands continue to work - Remove the undefined/notConfigured branch from status.ts (dead code now that getAutoUpgradeEnabled always returns boolean) - Drop notConfigured from constants - Update status.test.ts to replace the 'never set' test with default-enabled Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Differences in type declarationsWe detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:
New type declarationsWe found no new type declarations in this PR Existing type declarationspackages/cli-kit/dist/private/node/conf-store.d.ts@@ -128,10 +128,11 @@ interface RunWithRateLimitOptions {
export declare function runWithRateLimit(options: RunWithRateLimitOptions, config?: LocalStorage<ConfSchema>): Promise<boolean>;
/**
* Get auto-upgrade preference.
+ * Defaults to true if the preference has never been explicitly set.
*
- * @returns Whether auto-upgrade is enabled, or undefined if never set.
+ * @returns Whether auto-upgrade is enabled.
*/
-export declare function getAutoUpgradeEnabled(config?: LocalStorage<ConfSchema>): boolean | undefined;
+export declare function getAutoUpgradeEnabled(config?: LocalStorage<ConfSchema>): boolean;
/**
* Set auto-upgrade preference.
*
packages/cli-kit/dist/public/node/upgrade.d.ts import { getAutoUpgradeEnabled, setAutoUpgradeEnabled } from '../../private/node/conf-store.js';
export { getAutoUpgradeEnabled, setAutoUpgradeEnabled };
/**
* Utility function for generating an install command for the user to run
* to install an updated version of Shopify CLI.
*
* @returns A string with the command to run, or undefined if the package manager cannot be determined.
*/
export declare function cliInstallCommand(): string | undefined;
/**
* Runs the CLI upgrade using the appropriate package manager.
* Determines the install command and executes it.
*
* @throws AbortError if the package manager or command cannot be determined.
*/
export declare function runCLIUpgrade(): Promise<void>;
/**
* Returns the version to auto-upgrade to, or undefined if auto-upgrade should be skipped.
- * Auto-upgrade is disabled by default and must be enabled via `shopify upgrade`.
+ * Auto-upgrade is enabled by default and can be disabled via `setAutoUpgradeEnabled(false)`.
* Also skips for CI, pre-release versions, or when no newer version is available.
*
* @returns The version string to upgrade to, or undefined if no upgrade should happen.
*/
export declare function versionToAutoUpgrade(): string | undefined;
/**
* Shows a daily upgrade-available warning for users who have not enabled auto-upgrade.
* Skipped in CI and for pre-release versions. When auto-upgrade is enabled this is a no-op
* because the postrun hook will handle the upgrade directly.
*/
export declare function warnIfUpgradeAvailable(): Promise<void>;
/**
* Generates a message to remind the user to update the CLI.
* For major version bumps, appends a link to the GitHub release notes so users
* can review breaking changes before deciding to upgrade.
*
* @param version - The version to update to.
* @param isMajor - Whether the version bump is a major version change.
* @returns The message to remind the user to update the CLI.
*/
export declare function getOutputUpdateCLIReminder(version: string, isMajor?: boolean): string;
-/**
- * Prompts the user to enable or disable automatic upgrades, then persists their choice.
- *
- * @returns Whether the user chose to enable auto-upgrade.
- */
-export declare function promptAutoUpgrade(): Promise<boolean>;
|
isaacroldan
approved these changes
Apr 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

WHY are these changes introduced?
Auto-upgrade was opt-in, requiring users to run
shopify upgradeand answer a prompt before it would ever activate automatically. This made it effectively a no-op for most users who never ran that command. Auto-upgrade should be on by default so everyone benefits from staying up to date.WHAT is this pull request doing?
getAutoUpgradeEnablednow defaults totrue— returnstruewhen the preference has never been explicitly set (previously returnedundefined, which disabled auto-upgrade)promptAutoUpgrade— the interactive "Enable automatic updates?" prompt that was the only way to activate auto-upgrade; no longer neededshopify upgraderuns directly without prompting the user firstshopify config autoupgrade statusno longer has a "not configured" state — users see either "on" (the default) or "off"notConfiguredconstant removed fromautoUpgradeStatusshopify config autoupgrade offare unaffected — an explicitfalsestored in their config is respectedHow to test your changes?
autoUpgradeEnabledin config): run any CLI command — it should auto-upgrade after completion without any setupshopify config autoupgrade status→ should show "on" by defaultshopify config autoupgrade off→ should show "off"; subsequentstatusshould show "off"shopify config autoupgrade on→ re-enables;statusshows "on"shopify upgrade→ should run the upgrade directly without any promptChecklist
pnpm changeset add