You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 36931ab
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: build/releaseCompatibility/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,9 +42,9 @@ For the DevDiv cutover, supply `upgradeFromEnvironments` with the same artifact
42
42
43
43
Each boolean mode gets its own workspace, user-data directory, home, extension directory, and VS Code process. Settings are written **before host launch**. Two real `venv --without-pip` fixtures are created as direct workspace children, within the legacy locator's two-directory search depth, and their actual executable/prefix verified. The controller requires discovery of both fixtures before selecting each and invoking normal `python.execInTerminal`; observed candidates are retained even on failure. The script atomically writes a nonce, `sys.executable`, and `sys.prefix`; a terminal appearing or a command resolving is not a pass.
44
44
45
-
Only the independent test controller is an `extensionDevelopmentPath`. Its own public `ExtensionContext` must report test mode. Products must load from the exact installed VSIX directories, outside that sole development root, with the expected identities/versions. The public `Extension` object does not expose another extension's context mode; it remains unknown rather than fabricating a `Production` value. Installed-path and controller-only launch evidence prove these are not source/development-extension runs. A transparent, restored observer of the public Environments `runInTerminal` method proves core's on-mode delegation without replacing execution. Prototype methods are shadowed only on the instance and restored by removing the shadow; shared prototypes are never modified. An immutable API that cannot be observed is an explicit infrastructure error, not a pass.
45
+
Only the independent test controller is an `extensionDevelopmentPath`. Its own public `ExtensionContext` must report test mode for single-phase checks, or development mode for real-storage upgrade hosts. Products must load from the exact installed VSIX directories, outside that sole development root, with the expected identities/versions. The public `Extension` object does not expose another extension's context mode; it remains unknown rather than fabricating a `Production` value. Installed-path and controller-only launch evidence prove these are not source/development-extension runs. A transparent, restored observer of the public Environments `runInTerminal` method proves core's on-mode delegation without replacing execution. Prototype methods are shadowed only on the instance and restored by removing the shadow; shared prototypes are never modified. An immutable API that cannot be observed is an explicit infrastructure error, not a pass.
46
46
47
-
For an upgrade, the baseline host fully exits before replacing only the installed Environments directory. Workspace settings, user profile, and selection storage are retained. The upgraded host must observe the last selected fixture **before any selection write**, and explicit true/false must survive. An unsuccessful baseline cannot certify an upgrade.
47
+
For an upgrade, both phases use normal isolated VS Code hosts **without `--extensionTestsPath`**: [VS Code deliberately uses in-memory storage during extension tests](https://github.com/microsoft/vscode/blob/0870c2a0c7c0564e7631bfed2675573a94ba4455/src/vs/platform/storage/electron-main/storageMainService.ts#L99-L102). The independent controller runs on normal development-extension activation and requests a graceful quit after writing its report. The baseline fully exits before replacing only the installed Environments directory. Workspace settings, user profile, and selection storage are retained. An independent controller-owned global/workspace Memento token must survive the restart; failure is an infrastructure/storage error, not a product association verdict. The upgraded host must observe the last selected fixture **before any product selection write**, and explicit true/false must survive. Neither the probe nor the runner reseeds product selection. An unsuccessful baseline cannot certify an upgrade.
0 commit comments