Skip to content

Add active-app-version deploy classification module#8055

Merged
isaacroldan merged 2 commits into
mainfrom
deploy-split/05b-deploy-app-version-module
Jul 16, 2026
Merged

Add active-app-version deploy classification module#8055
isaacroldan merged 2 commits into
mainfrom
deploy-split/05b-deploy-app-version-module

Conversation

@isaacroldan

@isaacroldan isaacroldan commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Part 6 of 8 — splitting #8040. The new classification logic, added on its own for focused review.

WHY are these changes introduced?

deploy matched local extensions to remote registrations through the interactive Partners-era flow. On App Management, modules are identified deterministically by UID, so the matching can be derived from the app's active version instead of prompting.

WHAT is this pull request doing?

  • Adds the deploy-app-version module: classifies each local extension against the active version's modules — match by UID, with a legacy UUID fallback for un-migrated extensions — into created / updated / deleted / unchanged.
  • Adds deploy-app-version-migrations: runs the supported legacy extension migrations before classifying.
  • Reshapes getAppIdentifiers and EnsureDeploymentIdsPresenceOptions.envIdentifiers to the flat UUID map the module consumes.

The module is not wired into deploy yet (that's #8056), so behavior is unchanged. Covered by its own unit test.

How to test your changes?

pnpm --filter @shopify/app exec vitest run src/cli/services/context/deploy-app-version.test.ts

@github-actions github-actions Bot added the no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. label Jul 10, 2026
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 7a1e052 to 7382b73 Compare July 10, 2026 11:28
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch from adc37e4 to 838bb7e Compare July 10, 2026 11:28
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 7382b73 to ccf6b90 Compare July 10, 2026 11:56
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch 3 times, most recently from 9ce00c5 to aefc40d Compare July 10, 2026 12:56
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch 2 times, most recently from 680ecf7 to 156849c Compare July 10, 2026 13:43
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch from aefc40d to 03fa20e Compare July 10, 2026 13:44
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 156849c to 7f752f1 Compare July 10, 2026 14:54
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch 2 times, most recently from 2a3ef5e to 9cee8ca Compare July 10, 2026 15:54
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 7f752f1 to 0c2f2f0 Compare July 10, 2026 15:54
@isaacroldan
isaacroldan marked this pull request as ready for review July 10, 2026 15:55
@isaacroldan
isaacroldan requested a review from a team as a code owner July 10, 2026 15:55
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 0c2f2f0 to f852cd1 Compare July 14, 2026 07:44
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch from 9cee8ca to 8580282 Compare July 14, 2026 07:44
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch from 8580282 to 8161f82 Compare July 14, 2026 08:04
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from f852cd1 to 426d8da Compare July 14, 2026 08:04
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch 2 times, most recently from 50f3d2c to dddc498 Compare July 14, 2026 11:10
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch from dddc498 to a63ce6f Compare July 14, 2026 13:52
@github-actions

Copy link
Copy Markdown
Contributor

Differences in type declarations

We 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:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/common/version.d.ts
@@ -1 +1 @@
-export declare const CLI_KIT_VERSION = "4.5.0";
\ No newline at end of file
+export declare const CLI_KIT_VERSION = "4.4.0";
\ No newline at end of file

@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 426d8da to 55cb6fe Compare July 14, 2026 15:06
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch 2 times, most recently from a63ce6f to dc6cfea Compare July 14, 2026 15:06
Comment thread packages/app/src/cli/services/context/deploy-identifier-matching.ts
isaacroldan and others added 2 commits July 16, 2026 10:52
Adds `deploy-app-version` (classify each local extension against the active
version's modules — match by UID, legacy UUID fallback — into
created/updated/deleted/unchanged) and `deploy-app-version-migrations` (run the
supported legacy extension migrations first). Reshapes `getAppIdentifiers` and
`EnsureDeploymentIdsPresenceOptions.envIdentifiers` to the flat
UUID-by-local-identifier map the module consumes.

The module is not wired into `deploy` yet — the switch is the next commit — so
behavior is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Assisted-By: devx/082b4d86-7362-4c41-a55c-65a391c27853
@isaacroldan
isaacroldan force-pushed the deploy-split/05b-deploy-app-version-module branch from 65061bc to a09338d Compare July 16, 2026 08:53
@isaacroldan
isaacroldan force-pushed the deploy-split/05a-release-config-diff branch from 55cb6fe to 6ceb64e Compare July 16, 2026 08:53

// eslint-disable-next-line no-await-in-loop
const confirmedMigration = await extensionMigrationPrompt(extensionsToMigrate, false)
if (!confirmedMigration) throw new AbortSilentError()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we fully cancel the migration loop or just conitnue here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you don't confirm, we can't deploy, the prompt says "confirm and deploy" or "cancel deploy"

activeAppVersion,
)

const shouldFetchInstallCount =

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is use some where else also, right? should we abstract this to a helper?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is used only in a file that is deleted later in the stack

Base automatically changed from deploy-split/05a-release-config-diff to main July 16, 2026 09:52
@isaacroldan
isaacroldan added this pull request to the merge queue Jul 16, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 16, 2026
@isaacroldan
isaacroldan added this pull request to the merge queue Jul 16, 2026
Merged via the queue into main with commit cbc4a01 Jul 16, 2026
30 of 53 checks passed
@isaacroldan
isaacroldan deleted the deploy-split/05b-deploy-app-version-module branch July 16, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants