Phase 3b: raise the schema floor to 0.6.0-alpha, retire 0.4.0/0.5.0#581
Open
MGudgin wants to merge 1 commit into
Open
Conversation
This PR raises the config schema floor from 0.4.0-alpha to 0.6.0-alpha. The Rust parser and the SDK now reject configs declaring 0.4.0-alpha or 0.5.0-alpha as "older than supported" (the deferred Phase 1 p1b back-dating gate), and accept 0.6.0-alpha through the dev ceiling 0.8.0-alpha. This is safe because Phase 3a decoupled Windows backend selection from the schema version, so no runtime behavior depends on the 0.4-vs-0.5 boundary anymore. The released 0.4.0-alpha/0.5.0-alpha stable schema files are kept as immutable historical artifacts; the parser simply stops accepting those versions. Details: - Canonical source schemas/schema-version.json: min 0.4.0-alpha -> 0.6.0-alpha. - Rust config_parser.rs: SUPPORTED_VERSION ">=0.4, <=0.8" -> ">=0.6, <=0.8", and the second hardcoded older-vs-newer floor classifier ">=0.4" -> ">=0.6". Converted the 0.4/0.5 acceptance tests into rejection tests and added "older than supported" assertions; bumped incidental version literals. - SDK sandbox.ts: MIN_VERSION -> 0.6.0-alpha. Flipped the unit-test bound case to assert 0.5.0-alpha is rejected; bumped incidental literals; bumped the integration-test version matrix (test-helpers.ts) and the hardcoded versions in the seatbelt/microvm/wslc integration tests. - Corpus: migrated 80 configs in tests/configs + tests/examples from 0.4.0-alpha/0.5.0-alpha -> 0.6.0-alpha; renamed hello_world_v050.json -> hello_world_v060.json (containerId + message updated). - Manual smoke scripts (T3-Workloads, WinProcessContainer-Tests, run_isolation_session_resize_smoke) bumped to 0.6.0-alpha. - Docs: sdk/README.md compatibility table (0.4/0.5 marked retired below the floor) + examples + troubleshooting; docs/schema.md version-range table; docs/versioning.md, docs/playground-limitations.md, copilot-instructions.md, and assorted example snippets; check-schema-versions.js stale comment. Deferred (recorded on the session backlog, not done here): - The tests/playground version model still encodes the obsolete version-as-AppContainer/BaseContainer switch (default 0.5.0-dev). It needs a UI rework rather than a string bump and is not CI-gated; tracked separately. Tests: - check-schema-versions.js, check-schema-codegen.js, check-sdk-types-codegen.js, validate-configs.js (169/169) all green. - cargo test -p wxc_common (357 pass; 0.4/0.5 now rejected, 0.6+ accepted); cargo clippy --workspace --all-targets -- -D warnings; cargo fmt --all -- --check. - cd sdk && npm run build + test:unit (181 pass); integration tests type-check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Generated-with: claude-opus-4.8
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.
.github/copilot-instructions.md.Summary
Phase 3b of the versioning remediation. It raises the config schema floor from
0.4.0-alphato0.6.0-alpha: the Rust parser and the SDK now reject configs declaring0.4.0-alphaor0.5.0-alphaas "older than supported" (the deferred Phase 1 p1b back-dating gate), and accept0.6.0-alphathrough the dev ceiling0.8.0-alpha. This is safe because Phase 3a decoupled Windows backend selection from the schema version, so no runtime behavior depends on the 0.4-vs-0.5 boundary anymore.The released
0.4.0-alpha/0.5.0-alphastable schema files are kept as immutable historical artifacts (the repo convention never edits released stable schemas, and external configs may still reference them via$schemafor editor validation); the parser simply stops accepting those versions.Details
schemas/schema-version.json:min0.4.0-alpha->0.6.0-alpha.config_parser.rs:SUPPORTED_VERSION">=0.4, <=0.8"->">=0.6, <=0.8", and the second hardcoded older-vs-newer floor classifier">=0.4"->">=0.6". Converted the 0.4/0.5 acceptance tests into rejection tests (assertingolder than supported); bumped incidental version literals.sandbox.ts:MIN_VERSION->0.6.0-alpha. Flipped the unit-test bound case to assert0.5.0-alphais rejected; bumped incidental literals; bumped the integration-test version matrix (test-helpers.ts) and the hardcoded versions in the seatbelt/microvm/wslc integration tests.tests/configs+tests/examplesfrom0.4.0-alpha/0.5.0-alpha->0.6.0-alpha; renamedhello_world_v050.json->hello_world_v060.json(containerId + message updated).T3-Workloads,WinProcessContainer-Tests,run_isolation_session_resize_smoke) bumped to0.6.0-alpha.sdk/README.mdcompatibility table (0.4/0.5 marked retired below the floor) + examples + troubleshooting;docs/schema.mdversion-range table;docs/versioning.md,docs/playground-limitations.md,.github/copilot-instructions.md, assorted example snippets;check-schema-versions.jsstale comment.Deferred (follow-up, not in this PR)
tests/playgroundstill encodes the obsolete version-as-AppContainer/BaseContainer switch (default0.5.0-dev). It needs a UI rework rather than a string bump and is not CI-gated; tracked as a follow-up.Tests
check-schema-versions.js,check-schema-codegen.js,check-sdk-types-codegen.js,validate-configs.js(169/169) all green.cargo test -p wxc_common(357 pass; 0.4/0.5 now rejected, 0.6+ accepted);cargo clippy --workspace --all-targets -- -D warnings;cargo fmt --all -- --check.cd sdk && npm run build+test:unit(181 pass); integration tests type-check.Microsoft Reviewers: Open in CodeFlow