Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[stable] Fix automatic matching for extensions with localized names #2920

Merged
merged 3 commits into from
Oct 2, 2023

Conversation

isaacroldan
Copy link
Contributor

WHY are these changes introduced?

We were using handle to match extensions, but not in every part of the flow, we missed a key comparison and this caused all matching to fail when the local extension has a localized name.
It started to fail now because before introducing localized names, the name and handle were always the same initially.

WHAT is this pull request doing?

Compare local handle with remote title.
(When we create an extension, we use the initial handle to populate the title)

How to test your changes?

Create a new app with a few extensions using unified-config and localized names (admin block for instance)
Try to dev multiple times (without deploying first, to avoid caching UUIDs)

Post-release steps

Measuring impact

How do we know this change was effective? Please choose one:

  • n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix
  • Existing analytics will cater for this addition
  • PR includes analytics changes to measure impact

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've made sure that any changes to dev or deploy have been reflected in the internal flowchart.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2023

Thanks for your contribution!

Depending on what you are working on, you may want to request a review from a Shopify team:

  • Themes: @shopify/theme-code-tools
  • UI extensions: @shopify/ui-extensions-cli
    • Checkout UI extensions: @shopify/checkout-ui-extensions-api-stewardship
  • Hydrogen: @shopify/hydrogen
  • Other: @shopify/cli-foundations

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2023

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 = "3.49.1";
\ No newline at end of file
+export declare const CLI_KIT_VERSION = "3.49.4";
\ No newline at end of file
packages/cli-kit/dist/public/node/error-handler.d.ts
@@ -14,11 +14,9 @@ export declare function errorHandler(error: Error & {
 export declare function sendErrorToBugsnag(error: unknown): Promise<{
     reported: false;
     error: unknown;
-    unhandled: unknown;
 } | {
     error: Error;
     reported: true;
-    unhandled: boolean;
 }>;
 /**
  * If the given file path is within a node_modules folder, remove prefix up
packages/cli-kit/dist/public/node/error.d.ts
@@ -74,7 +74,7 @@ export declare function handler(error: unknown): Promise<unknown>;
  */
 export declare function errorMapper(error: unknown): Promise<unknown>;
 /**
- * A function that checks if an error should be reported as unhandled.
+ * A function that checks if an error should be reported.
  *
  * @param error - Error to be checked.
  * @returns A boolean indicating if the error should be reported.
packages/cli-kit/dist/public/node/monorail.d.ts
@@ -2,7 +2,7 @@ import { JsonMap } from '../../private/common/json.js';
 import { DeepRequired } from '../common/ts/deep-required.js';
 export { DeepRequired };
 type Optional<T> = T | null;
-export declare const MONORAIL_COMMAND_TOPIC: "app_cli3_command/1.9";
+export declare const MONORAIL_COMMAND_TOPIC: "app_cli3_command/1.7";
 export interface Schemas {
     [MONORAIL_COMMAND_TOPIC]: {
         sensitive: {
@@ -60,9 +60,6 @@ export interface Schemas {
             cmd_dev_tunnel_type?: Optional<string>;
             cmd_dev_tunnel_custom_hash?: Optional<string>;
             cmd_dev_urls_updated?: Optional<boolean>;
-            cmd_dev_preview_url_opened?: Optional<boolean>;
-            cmd_dev_graphiql_opened?: Optional<boolean>;
-            cmd_dev_dev_preview_toggle_used?: Optional<boolean>;
             cmd_create_app_template?: Optional<string>;
             cmd_create_app_template_url?: Optional<string>;
             cmd_deploy_flag_message_used?: Optional<boolean>;
packages/cli-kit/dist/public/node/ui.d.ts
@@ -30,7 +30,7 @@ export interface RenderConcurrentOptions extends PartialBy<ConcurrentOutputProps
  * 00:00:00 │ frontend │ third frontend message
  *
  */
-export declare function renderConcurrent({ renderOptions, ...props }: RenderConcurrentOptions): Promise<void>;
+export declare function renderConcurrent({ renderOptions, ...props }: RenderConcurrentOptions): Promise<void | void[]>;
 export type AlertCustomSection = CustomSection;
 export type RenderAlertOptions = Omit<AlertOptions, 'type'>;
 /**
packages/cli-kit/dist/private/node/testing/ui.d.ts
@@ -10,16 +10,14 @@ declare class Stderr extends EventEmitter {
 }
 export declare class Stdin extends EventEmitter {
     isTTY: boolean;
-    data: string | null;
     constructor(options?: {
         isTTY?: boolean;
     });
     write: (data: string) => void;
     setEncoding(): void;
     setRawMode(): void;
-    ref(): void;
-    unref(): void;
-    read: () => string | null;
+    resume(): void;
+    pause(): void;
 }
 interface Instance {
     rerender: (tree: ReactElement) => void;
packages/cli-kit/dist/public/node/testing/ui.d.ts
@@ -1 +1 @@
-export { getLastFrameAfterUnmount, render, Stdin, waitForInputsToBeReady, waitForContent, sendInputAndWait, sendInputAndWaitForChange, sendInputAndWaitForContent, } from '../../../private/node/testing/ui.js';
\ No newline at end of file
+export { getLastFrameAfterUnmount, render, Stdin, waitForInputsToBeReady, waitForContent, } from '../../../private/node/testing/ui.js';
\ No newline at end of file

@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2023

Coverage report

St.
Category Percentage Covered / Total
🟡 Statements 73.36% 6035/8227
🟡 Branches 69.89% 2941/4208
🟡 Functions 72.31% 1543/2134
🟡 Lines 74.72% 5725/7662

Test suite run success

1433 tests passing in 670 suites.

Report generated by 🧪jest coverage report action from 6e3e522

@alvaro-shopify alvaro-shopify merged commit 67952f9 into stable/3.49 Oct 2, 2023
2 checks passed
@alvaro-shopify alvaro-shopify deleted the fix-handle-matching-stable branch October 2, 2023 12:27
@shopify-shipit shopify-shipit bot temporarily deployed to stable_3_49 October 2, 2023 12:48 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants