Skip to content

Classify webhook subscription modules as configuration experience#8045

Open
isaacroldan wants to merge 1 commit into
deploy-split/01-cli-kit-order-insensitive-comparefrom
deploy-split/02-normalize-experience-type
Open

Classify webhook subscription modules as configuration experience#8045
isaacroldan wants to merge 1 commit into
deploy-split/01-cli-kit-order-insensitive-comparefrom
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

`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 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions

github-actions Bot commented Jul 9, 2026

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.
  *

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.

1 participant