Skip to content

Add JSON schema for theme info - #8909

Merged
gonzaloriestra merged 15 commits into
mainfrom
donald/theme-info-json-schema
Oct 16, 2026
Merged

gonzaloriestra merged 15 commits into
mainfrom
donald/theme-info-json-schema

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Original PR and review history: #8525.

WHY are these changes introduced?

Fixes https://github.com/shop/issues-develop/issues/23691

Theme and environment JSON results should have a discoverable, consistent contract.

WHAT is this pull request doing?

Expose strict camelCase resources, string theme IDs, nullable unavailable fields and one ordered object for explicit environment batches. Preserve authentication and operation failures per environment.

The public output follows docs/cli/json-output.md; explicitly named environments use one {environments: [...]} object.

How to manually test your changes?

shopify theme info --json
shopify theme info --environment staging --json
shopify theme info --json-schema

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type (patch for bug fixes · minor for new features · major for breaking changes) and added a changeset with pnpm changeset add

@github-actions github-actions Bot added the Area: @shopify/cli @shopify/cli package issues label Oct 15, 2026
@gonzaloriestra
gonzaloriestra added this pull request to stack #8925 October 15, 2026 12:34
@gonzaloriestra gonzaloriestra changed the title donald/theme info json schema Add JSON schema for theme info Oct 15, 2026
@gonzaloriestra
gonzaloriestra marked this pull request as ready for review October 15, 2026 12:42
@gonzaloriestra
gonzaloriestra requested review from a team as code owners October 15, 2026 12:42
@gonzaloriestra
gonzaloriestra force-pushed the donald/theme-info-json-schema branch from 52862bf to 80b2dd5 Compare October 15, 2026 13:33
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Potential Breaking Changes Detected

This PR contains changes that may break the existing contract.

@shopify/dev_experience — this PR contains breaking changes that require coordination for the next major release.

📦 Major Version Changesets

The following changesets request a major version bump:

Changeset Package
theme-info-json-contract.md '@shopify/cli': major

@github-actions

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/node/base-command.d.ts
@@ -1,4 +1,5 @@
 import { type JsonOutputSchema } from './json-output-schema.js';
+import { JsonMap } from '../../private/common/json.js';
 import { Command } from '@oclif/core';
 import { OutputFlags, Input, ParserOutput, FlagInput, OutputArgs } from '@oclif/core/parser';
 export type ArgOutput = OutputArgs<any>;
@@ -35,6 +36,8 @@ declare abstract class BaseCommand extends Command {
         argv: string[];
     }>;
     protected environmentsFilename(): string | undefined;
+    protected parseEnvironmentFlags<TFlags extends FlagOutput, TGlobalFlags extends FlagOutput, TArgs extends ArgOutput>(environment: JsonMap, options: Input<TFlags, TGlobalFlags, TArgs>, explicitFlags: FlagOutput): Promise<FlagOutput>;
+    protected validateNonTTYFlags(flags: FlagOutput): void;
     protected failMissingNonTTYFlags(flags: FlagOutput, requiredFlags: string[]): void;
     private failMissingNonTTYFlagRequirements;
     private applicableNonTTYFlagRequirements;

@karreiro karreiro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @gonzaloriestra!

@gonzaloriestra
gonzaloriestra added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit a0f5f88 Oct 16, 2026
27 of 30 checks passed
@gonzaloriestra
gonzaloriestra deleted the donald/theme-info-json-schema branch October 16, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: @shopify/cli @shopify/cli package issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants