-
Notifications
You must be signed in to change notification settings - Fork 140
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
Conversation
Thanks for your contribution! Depending on what you are working on, you may want to request a review from a Shopify team:
|
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/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
|
Coverage report
Test suite run success1433 tests passing in 670 suites. Report generated by 🧪jest coverage report action from 6e3e522 |
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
andhandle
were always the same initially.WHAT is this pull request doing?
Compare local
handle
with remotetitle
.(When we create an extension, we use the initial
handle
to populate thetitle
)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:
Checklist
dev
ordeploy
have been reflected in the internal flowchart.