Add typed JSON output to theme push - #8647
Open
gonzaloriestra wants to merge 1 commit into
Open
gonzaloriestra wants to merge 1 commit into
gonzaloriestra wants to merge 1 commit into
Conversation
gonzaloriestra
added this pull request to stack #8650
September 24, 2026 09:31
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 24, 2026 10:04
16e4ae7 to
c3100fb
Compare
gonzaloriestra
removed this pull request from stack #8650
September 24, 2026 10:04
gonzaloriestra
changed the base branch from
main
to
gonzalo/json-theme-rename
September 24, 2026 10:05
gonzaloriestra
added this pull request to stack #8655
September 24, 2026 10:05
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
2 times, most recently
from
September 24, 2026 10:25
96095dc to
ff21d01
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 24, 2026 11:56
ff21d01 to
4f412b3
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
2 times, most recently
from
September 24, 2026 14:21
a17bb51 to
e719f0c
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
2 times, most recently
from
September 25, 2026 11:43
8afadb0 to
5c4a5e5
Compare
gonzaloriestra
marked this pull request as ready for review
September 25, 2026 11:56
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 25, 2026 11:59
5c4a5e5 to
8b08bde
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 25, 2026 12:28
8b08bde to
03e1631
Compare
gonzaloriestra
removed this pull request from stack #8655
September 25, 2026 12:28
gonzaloriestra
added this pull request to stack #8673
September 25, 2026 12:29
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
2 times, most recently
from
September 28, 2026 10:25
f8fd1ed to
c689639
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 28, 2026 11:39
c689639 to
6d703be
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 28, 2026 11:52
6d703be to
f1d0388
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
2 times, most recently
from
September 29, 2026 11:11
01f9e27 to
59a30f0
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
2 times, most recently
from
September 29, 2026 13:44
81490b0 to
4a678df
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 29, 2026 14:18
4a678df to
8b07b26
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
September 29, 2026 14:40
8b07b26 to
ae8d031
Compare
gonzaloriestra
force-pushed
the
gonzalo/json-theme-push
branch
from
October 1, 2026 08:52
ae8d031 to
4b54221
Compare
Contributor
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/node/base-command.d.ts@@ -35,6 +35,7 @@ declare abstract class BaseCommand extends Command {
argv: string[];
}>;
protected environmentsFilename(): string | undefined;
+ protected validateNonTTYFlags(flags: FlagOutput): void;
protected failMissingNonTTYFlags(flags: FlagOutput, requiredFlags: string[]): void;
private failMissingNonTTYFlagRequirements;
private applicableNonTTYFlagRequirements;
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WHY are these changes introduced?
Related to https://github.com/shop/issues-develop/issues/23693
theme pushhas JSON output, but its result schema is not discoverable and execution chooses the final presentation. Strict checks and multiple environments can also produce several JSON documents on stdout.WHAT is this pull request doing?
Add
status: "success"when all upload operations succeed, orstatus: "failed"when any upload operation fails. A failed result can still contain a theme and partially uploaded files; the existing warning and error details remain available. Each environment has its own status.Return typed transfer data and move final output into a validating codec and presenter. Keep compact JSON formatting, optional warnings/errors, terminal text, publish behavior, and the exported
push()compatibility adapter. Progress and strict-check diagnostics use typed side events.Normal output:
Matching JSON:
{ "status": "success", "theme": { "id": 1, "name": "MyTheme", "role": "unpublished", "shop": "example.myshopify.com", "editor_url": "https://example.myshopify.com/admin/themes/1/editor", "preview_url": "https://example.myshopify.com?preview_theme_id=1" } }Draft contract for review: multiple environments produce one array in requested order. Each entry includes
environment. Environments that throw, are skipped, or are cancelled are omitted; diagnostics go to stderr. Completed uploads with file errors remain in the array withstatus: "failed". No completed environment results produces[]. Existing exit behavior stays unchanged, including partial and total environment failures. Single-environment cancellation still emits no success result.The shared collector preserves store sequencing and waits for analytics cleanup before collecting successful results. JSON execution bypasses the terminal concurrency renderer to avoid escape sequences in stderr. The exported programmatic wrapper retains its existing strict-check output; the CLI uses side events.
Refresh the upload progress title when the upload finishes, so the completed event reports 100% even when the last polling update happened earlier.
How to manually test your changes?
Checklist