-
Notifications
You must be signed in to change notification settings - Fork 130
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
Manage new_updated_removed dashboard extensions in confirmation prompt #3226
Conversation
We detected some changes at either packages/*/src or packages/cli-kit/assets/cli-ruby/** and there are no updates in the .changeset. |
Coverage report
Show new covered files 🐣
Show files with reduced coverage 🔻
Test suite run success1537 tests passing in 705 suites. Report generated by 🧪jest coverage report action from 2e09d37 |
e913011
to
de885db
Compare
13e3af9
to
76955fa
Compare
36c6e76
to
422b37d
Compare
76955fa
to
2e09d37
Compare
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/object.d.ts@@ -62,4 +62,11 @@ export declare function getPathValue<T = object>(object: object, path: string):
* @param value - The value to set.
* @returns - Returns object.
*/
-export declare function setPathValue(object: object, path: string, value?: unknown): object;
\ No newline at end of file
+export declare function setPathValue(object: object, path: string, value?: unknown): object;
+/**
+ * Checks if value is an empty object, collection, map, or set.
+ *
+ * @param object - The value to check.
+ * @returns - Returns true if value is empty, else false.
+ */
+export declare function isEmpty(object: object): boolean;
\ No newline at end of file
packages/cli-kit/dist/public/node/schema.d.ts@@ -1 +1,9 @@
-export { z as zod } from 'zod';
\ No newline at end of file
+import { ZodTypeAny } from 'zod';
+export { z as zod } from 'zod';
+/**
+ * Returns a new schema that is the same as the input schema, but with all nested schemas set to strict.
+ *
+ * @param schema - The schema to make strict.
+ * @returns The result strict schema.
+ */
+export declare function deepStrict(schema: ZodTypeAny): ZodTypeAny;
\ No newline at end of file
packages/cli-kit/dist/private/node/ui/components/List.d.ts@@ -1,9 +1,16 @@
import { InlineToken, TokenItem } from './TokenizedText.js';
import { TextProps } from 'ink';
import { FunctionComponent } from 'react';
+export interface CustomListItem {
+ type?: string;
+ item: TokenItem<InlineToken>;
+ bullet?: string;
+ color?: TextProps['color'];
+}
+type ListItem = TokenItem<InlineToken> | CustomListItem;
interface ListProps {
title?: TokenItem<InlineToken>;
- items: TokenItem<InlineToken>[];
+ items: ListItem[];
ordered?: boolean;
margin?: boolean;
color?: TextProps['color'];
packages/cli-kit/dist/private/node/ui/components/Prompts/InfoTable.d.ts@@ -1,13 +1,15 @@
+import { CustomListItem } from '../List.js';
import { InlineToken, TokenItem } from '../TokenizedText.js';
import { TextProps } from 'ink';
import { FunctionComponent } from 'react';
-type Items = TokenItem<InlineToken>[];
+type Items = (TokenItem<InlineToken> | CustomListItem)[];
export interface InfoTableSection {
color?: TextProps['color'];
header: string;
bullet?: string;
helperText?: string;
items: Items;
+ emptyItemsText?: string;
}
export interface InfoTableProps {
table: {
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It works as expected and the code LGTM! 👌
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
WHY are these changes introduced?
Follow-up: #3205
UX: figma
Right now the source extension breakdown info data is different for the
deploy
and therelease
command. The former uses thelocal
information and the second the API operationappVersionDiff
The
appVersionDiff
API return properly classified thedashboard
extensions asnew
,update
orremoved
(but it doesn't distinguish betweendashboard
orextension
), however the local logic in thedeploy
command manages a list ofaffected
dashboard extension regardless the modification made to them.This drives us to a situation like this.
release
command promptdeploy
command promptthe extension
my cool admin link
is the same dashboard extension in both casesWHAT is this pull request doing?
experience
of the extensiondashboard
extensions in a specific list but included in the listtoUpdate
,toCreate
,toRemove
TableInfo
content from the extensions breakdown info, now manage thedashboard
extensions:extensions
goes always first and then thedashboard
dashboard
extensions includes a custom suffix which value depends on the list type (new, from Partners dashboard
,from Partners Dashboard
, `removed, from Partners Dashboard)How to test your changes?
┃ + webhooks (new)
and it's not possible to display the messageNo changes
. The problem is thatapi_version
insidewebhooks
is not versioned yet in the server side thus it's not deployed. Each time you rundeploy
command you will see the change. This behaviour will be fixed once this Add support for the versioned field webhooks->api_version PR is mergedcli
app and run thep shopify app config link --path /PATH/TO/YOUR/APP
command to link it to a new remote app.Scenario 1
p shopify app generate extension --path /PATH/TO/YOUR/APP
Admin link
)SHOPIFY_CLI_VERSIONED_APP_CONFIG=1 npm run shopify app deploy --path /PATH/TO/YOUR/APP
and confirm the deploymentScenario 2
p shopify app generate extension --path /PATH/TO/YOUR/APP
Admin link
)SHOPIFY_CLI_VERSIONED_APP_CONFIG=1 npm run shopify app deploy --path /PATH/TO/YOUR/APP
Scenario 3
p shopify app generate extension --path /PATH/TO/YOUR/APP
Admin link
)SHOPIFY_CLI_VERSIONED_APP_CONFIG=1 npm run shopify app deploy --path /PATH/TO/YOUR/APP
Repeat the same three scenarios but in this case using the
release
command so instead of usingdeploy
with release you should run:SHOPIFY_CLI_VERSIONED_APP_CONFIG=1 npm run shopify app deploy --path /PATH/TO/YOUR/APP --no-release
SHOPIFY_CLI_VERSIONED_APP_CONFIG=1 npm run shopify app release --path /PATH/TO/YOUR/APP --version PREVIOUS_VERSION
The prompt output should be the same
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.