Skip to content

Classify webhook subscription modules as configuration experience#8045

Merged
isaacroldan merged 2 commits into
mainfrom
deploy-split/02-normalize-experience-type
Jul 10, 2026
Merged

Classify webhook subscription modules as configuration experience#8045
isaacroldan merged 2 commits into
mainfrom
deploy-split/02-normalize-experience-type

Conversation

@isaacroldan

@isaacroldan isaacroldan commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Part 2 of 8 — splitting #8040.

WHY are these changes introduced?

The active-app-version classification (#8055) derives each module's create/update/delete status from its experience. Webhook subscription modules must be treated as configuration, not standalone extensions, or they surface incorrectly in the deploy prompt.

WHAT is this pull request doing?

normalizeExperience now receives the spec identifier and maps the webhook subscription spec to the configuration experience. Private function; all three call sites updated in-file. No consumer reads the new classification yet, so behavior is unchanged.

How to test your changes?

pnpm --filter @shopify/app exec vitest run src/cli/utilities/developer-platform-client/app-management-client.test.ts

isaacroldan commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

@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 9, 2026
@isaacroldan isaacroldan marked this pull request as ready for review July 10, 2026 11:09
@isaacroldan isaacroldan requested a review from a team as a code owner July 10, 2026 11:09
@isaacroldan isaacroldan force-pushed the deploy-split/01-cli-kit-order-insensitive-compare branch from 55483f3 to 7e9fff4 Compare July 10, 2026 12:56
@isaacroldan isaacroldan force-pushed the deploy-split/02-normalize-experience-type branch from 058df67 to 4626a40 Compare July 10, 2026 12:56
@isaacroldan isaacroldan changed the base branch from deploy-split/01-cli-kit-order-insensitive-compare to graphite-base/8045 July 10, 2026 13:41
@isaacroldan isaacroldan force-pushed the deploy-split/02-normalize-experience-type branch from 4626a40 to 132afc3 Compare July 10, 2026 13:42
@graphite-app graphite-app Bot changed the base branch from graphite-base/8045 to main July 10, 2026 13:42
@isaacroldan isaacroldan force-pushed the deploy-split/02-normalize-experience-type branch from 132afc3 to 5e98c0d Compare July 10, 2026 13:42
@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/object.d.ts
@@ -38,6 +38,14 @@ export declare function mapValues<T extends object, TResult>(source: T | null |
  * @returns True if the objects are equal, false otherwise.
  */
 export declare function deepCompare(one: object, two: object): boolean;
+/**
+ * Deeply compares two values and treats arrays as order-insensitive.
+ *
+ * @param one - The first value to be compared.
+ * @param two - The second value to be compared.
+ * @returns True if the normalized values are equal, false otherwise.
+ */
+export declare function deepCompareWithOrderInsensitiveArrays(one: unknown, two: unknown): boolean;
 /**
  * Return the difference between two nested objects.
  *

isaacroldan and others added 2 commits July 10, 2026 16:54
Adds `deepCompareWithOrderInsensitiveArrays` (plus private helpers) to
`@shopify/cli-kit/common/object`. Deeply compares two values while treating
arrays as unordered, which the deploy/release config breakdown will use to
compare webhook subscriptions regardless of ordering.

Purely additive: no existing export is modified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`normalizeExperience` now receives the spec identifier and maps the webhook
subscription spec to the `configuration` experience. This makes the
active-app-version deploy/release classification (added later in this stack)
treat webhook subscriptions as configuration rather than extensions.

No consumer relies on the new classification yet, so behavior is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@isaacroldan isaacroldan force-pushed the deploy-split/02-normalize-experience-type branch from 5e98c0d to 439eb86 Compare July 10, 2026 14:54
@isaacroldan isaacroldan added this pull request to the merge queue Jul 10, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 10, 2026
@isaacroldan isaacroldan added this pull request to the merge queue Jul 10, 2026
Merged via the queue into main with commit 7bc54cd Jul 10, 2026
28 of 29 checks passed
@isaacroldan isaacroldan deleted the deploy-split/02-normalize-experience-type branch July 10, 2026 15:35
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.

2 participants