Skip to content

Publish 0.6.0-alpha as the new stable schema (strict surface)#455

Merged
MGudgin merged 1 commit into
mainfrom
user/gudge/schema/0.6.0-alpha-stable
May 30, 2026
Merged

Publish 0.6.0-alpha as the new stable schema (strict surface)#455
MGudgin merged 1 commit into
mainfrom
user/gudge/schema/0.6.0-alpha-stable

Conversation

@MGudgin

@MGudgin MGudgin commented May 29, 2026

Copy link
Copy Markdown
Member

📖 Description

Promotes dev content into schemas/stable/mxc-config.schema.0.6.0-alpha.json, mints 0.7.0-dev as the next dev iteration, and adopts a strict policy: stable schemas document only the non-experimental surface. Experimental backends, the experimental.* block, and state-aware sandbox lifecycle live in 0.7.0-dev only.

Runtime is unchanged. The parser still accepts experimental backends and the experimental.* block when paired with --experimental, regardless of which schema validated the config. Schema choice affects editor validation, not runtime behavior.

Schema:

  • 0.6.0-alpha (NEW): processContainer, fallback.allowDaclMutation, network.allowLocalNetwork; deny-by-default defaultPolicy; containment enum ['process', 'processcontainer', 'lxc', 'bubblewrap'], default 'process'. process is the cross-platform abstract intent — resolves to processcontainer on Windows, bubblewrap on Linux, and (in the future, when seatbelt graduates) seatbelt on macOS. No experimental.* block.
  • 0.5.0-alpha-strict.json (NEW): strict sibling of 0.5.0-alpha. Same wire version, containment ['appcontainer', 'lxc']. The original 0.5.0-alpha.json is preserved unmodified per the immutability rule.
  • Dev schema renamed 0.6.0-dev0.7.0-dev.

Wire version (Step A of the dev-mint pattern from #265):

  • Parser SUPPORTED_VERSION <=0.6<=0.7; SDK SUPPORTED_VERSION 0.6.0-alpha0.7.0-alpha.
  • Dev schema and 13 macOS examples declare 0.7.0-alpha as the wire version.

Bubblewrap reclassification:

  • Bubblewrap is no longer experimental as of [Bubblewrap] Make Bubblewrap the default Linux backend #368 (runtime gate removed; it's the default Linux backend). This PR drops it from the SDK ExperimentalBackends list, adds it to the strict 0.6.0-alpha enum, removes it from the dev schema's "experimental backends" note, and updates the README backend table to show it as the Linux default.

SDK:

  • windows_sandbox and isolation_session added to ExperimentalBackends so the validator errors in-process.
  • bubblewrap removed from ExperimentalBackends ([Bubblewrap] Make Bubblewrap the default Linux backend #368 already removed the runtime gate).
  • README backend table: Linux default = bubblewrap, other = lxc. macOS x64 / ARM64ARM64. Windows narrowed to 24H2+ (verified on 25H2). Hyperlight is a build-flavor footnote.

Docs:

  • authoring-a-new-feature.md and versioning.md document the strict policy.

🔗 References

🔍 Validation

  • 164/164 SDK unit tests pass
  • 11/11 parser schema_version tests pass
  • Runtime behavior unchanged (verified against the wire-version range and the --experimental runtime gate)

✅ Checklist

📋 Issue Type

  • Feature

Follow-ups (out of scope for this PR)

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 29, 2026 14:28
@MGudgin

MGudgin commented May 29, 2026

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Copilot AI 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.

Pull request overview

Promotes the 0.6.0 schema content into a new shipped stable schema (0.6.0-alpha), updates the SDK to treat additional backends as experimental for validation, and refreshes documentation to reflect the new stable/dev schema split and the “stable schemas may include experimental shapes” policy.

Changes:

  • Add new stable schema file schemas/stable/mxc-config.schema.0.6.0-alpha.json reflecting the current accepted config shape.
  • Update SDK experimental backend validation list to include windows_sandbox and isolation_session.
  • Update SDK/docs guidance to list 0.6.0-alpha as the current stable schema and clarify the stable-vs-dev schema model.
Show a summary per file
File Description
sdk/src/types.ts Expands ExperimentalBackends so the SDK validator gates windows_sandbox and isolation_session behind experimental mode.
sdk/README.md Updates schema/version guidance and backend tables to include 0.6.0-alpha and new/experimental backends.
schemas/stable/mxc-config.schema.0.6.0-alpha.json Introduces the new stable 0.6.0-alpha JSON schema, including experimental sections for editor validation.
schemas/dev/mxc-config.schema.0.6.0-dev.json Tweaks containment description to correctly label microvm as experimental.
docs/versioning.md Documents 0.6.0-alpha as current stable and clarifies the policy that stable schemas may include experimental shapes.
docs/authoring-a-new-feature.md Updates contributor guidance around schema immutability and promotion, aligned with the clarified versioning model.

Copilot's findings

  • Files reviewed: 6/6 changed files
  • Comments generated: 5

Comment thread schemas/stable/mxc-config.schema.0.6.0-alpha.json Outdated
Comment thread schemas/stable/mxc-config.schema.0.6.0-alpha.json Outdated
Comment thread schemas/stable/mxc-config.schema.0.6.0-alpha.json Outdated
Comment thread sdk/README.md Outdated
Comment thread schemas/dev/mxc-config.schema.0.6.0-dev.json Outdated
@MGudgin MGudgin force-pushed the user/gudge/schema/0.6.0-alpha-stable branch from 9d25a05 to cfb9044 Compare May 29, 2026 14:51
@MGudgin MGudgin requested review from a team, bbonaby and jsidewhite May 29, 2026 14:53
@MGudgin

MGudgin commented May 29, 2026

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MGudgin MGudgin requested a review from SohamDas2021 May 29, 2026 15:00
Comment thread schemas/dev/mxc-config.schema.0.7.0-dev.json
Comment thread schemas/stable/mxc-config.schema.0.6.0-alpha.json
Comment thread sdk/README.md Outdated
Comment thread sdk/README.md Outdated
Comment thread sdk/README.md Outdated
Comment thread docs/versioning.md Outdated
Comment thread docs/versioning.md Outdated
Comment thread docs/versioning.md Outdated
Comment thread docs/versioning.md Outdated
Comment thread schemas/dev/mxc-config.schema.0.7.0-dev.json
Comment thread sdk/README.md Outdated
Comment thread sdk/README.md Outdated
@microsoft-github-policy-service microsoft-github-policy-service Bot added Needs-Author-Feedback Issue needs attention from issue or PR author Needs-Attention Issue needs attention from Microsoft and removed Needs-Author-Feedback Issue needs attention from issue or PR author labels May 29, 2026
Comment thread schemas/dev/mxc-config.schema.0.7.0-dev.json
Comment thread docs/versioning.md Outdated
@MGudgin MGudgin force-pushed the user/gudge/schema/0.6.0-alpha-stable branch 2 times, most recently from bc2a7c0 to a9bd5ad Compare May 29, 2026 23:41
@MGudgin MGudgin changed the title Publish 0.6.0-alpha as the new stable schema Publish 0.6.0-alpha as the new stable schema (strict surface) May 29, 2026
@SohamDas2021

SohamDas2021 commented May 30, 2026

Copy link
Copy Markdown
Contributor

Sorry, one more thing I noticed, there are bubblewrap test configs in tests/configs/ that are using "version": "0.6.0-alpha" and containment: "bubblewrap". We will have to switch these to the dev json- 0.7.0?

Same comment for tests/configs/linux_process_default.json and tests/configs/linux_process_abstract.json

Comment thread sdk/README.md Outdated
Comment thread docs/versioning.md Outdated
@bbonaby

bbonaby commented May 30, 2026

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MGudgin MGudgin force-pushed the user/gudge/schema/0.6.0-alpha-stable branch from a9bd5ad to dea1b82 Compare May 30, 2026 02:20
Promotes dev content into schemas/stable/mxc-config.schema.0.6.0-alpha.json,
mints 0.7.0-dev as the next dev iteration, and adopts a strict policy:
stable schemas document only the non-experimental surface. Experimental
backends, the experimental.* block, and state-aware sandbox lifecycle
live in 0.7.0-dev only. The --experimental runtime gate is unchanged;
schema choice affects editor validation, not runtime behavior.

Schema:
- 0.6.0-alpha (NEW): processContainer, fallback.allowDaclMutation,
  network.allowLocalNetwork; deny-by-default defaultPolicy; containment
  ['processcontainer', 'lxc']. No experimental block.
- 0.5.0-alpha-strict (NEW): strict sibling of 0.5.0-alpha. The original
  0.5.0-alpha.json is preserved unmodified per the immutability rule.
- Dev schema renamed 0.6.0-dev → 0.7.0-dev.

Wire version (Step A of the dev-mint pattern from #265):
- Parser SUPPORTED_VERSION '<=0.6' → '<=0.7'; SDK SUPPORTED_VERSION
  '0.6.0-alpha' → '0.7.0-alpha'. Dev schema and 13 macOS examples
  declare '0.7.0-alpha' as the wire version.

SDK:
- 'windows_sandbox' and 'isolation_session' added to ExperimentalBackends
  so the validator errors in-process.
- README backend table: macOS x64 → ARM64; Windows narrowed to 24H2+
  (verified on 25H2); Hyperlight is a build-flavor footnote.

Docs:
- authoring-a-new-feature.md and versioning.md document the strict
  policy.

Testing: 164/164 SDK unit tests pass; 11/11 parser schema_version tests pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MGudgin MGudgin force-pushed the user/gudge/schema/0.6.0-alpha-stable branch from dea1b82 to e7405ff Compare May 30, 2026 02:27
@MGudgin

MGudgin commented May 30, 2026

Copy link
Copy Markdown
Member Author

Sorry, one more thing I noticed, there are bubblewrap test configs in tests/configs/ that are using "version": "0.6.0-alpha" and containment: "bubblewrap". We will have to switch these to the dev json- 0.7.0?

Same comment for tests/configs/linux_process_default.json and tests/configs/linux_process_abstract.json

See the latest, bubblewrap is now in 0.6.0-alpha, so configs are OK.

@MGudgin

MGudgin commented May 30, 2026

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@bbonaby bbonaby requested a review from shschaefer May 30, 2026 03:06
@kanismohammed kanismohammed removed the request for review from shschaefer May 30, 2026 03:06
@MGudgin MGudgin dismissed shschaefer’s stale review May 30, 2026 03:08

Comments addressed. Most recent changes reviewed by other team members.

@MGudgin MGudgin merged commit d2ec550 into main May 30, 2026
20 checks passed
@MGudgin MGudgin deleted the user/gudge/schema/0.6.0-alpha-stable branch May 30, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs-Attention Issue needs attention from Microsoft

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants