Repository navigation
Use shared localization submission and pull-only release imports - #1971
Bill Schnurr (bschnurr) wants to merge 9 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Current CI blocker: Smoke Tests (windows-latest, 3.15) fails in the before-all hook because environment discovery does not complete within 45000ms. This PR does not change the runtime discovery implementation or smoke-test workflow. The failure has not been reproduced on the base branch, so it is not being classified as confirmed pre-existing. Left unresolved and outside the localization change; keep this PR draft pending CI investigation as well as its documented localization onboarding and disabled release definitions. |
…lation checkout support ## Shared pull-only release localization This PR replaces the unused unmerged Azure English extraction/submission machinery with an opt-in pullLocalization interface on both public release wrappers. It invokes the same Python core as the public GitHub composite action in microsoft/vscode-common-python-lsp#125 rather than maintaining a second importer. - Consumers declare translations (private drop dev) and localizationTools (reviewed immutable common-LSP SHA), with literal Github-Pylance endpoints. - Source stays at workspace/s; tools and translations are sibling checkouts outside extension source. - Run the shared importer after caller build/pre-built overlays and before final VSIX packaging. - Keep the default self SDL scan, explicitly include executable tooling, and exclude translation data. Additional caller exclusions remain supported; sourceAnalysisPool preserves original caller pools. - Derive canonical IDs and optional runtime metadata. Require all locales and per-table real-language translation evidence before copying; allow individual untranslated strings. - No release-side English extraction, app write-token acquisition, Git pushes, or translation-update PRs. Existing signing/setup PowerShell is intentionally unchanged. - Preserve opt-out callers, platform/version parameters, stable manual validation, and publication gates. Azure expansion can persist checkout credentials; no claim is made otherwise. ## Verification and rollout Actual YAML-reading guards and shared Python/Git fixtures passed. Both release entry points for seven enabled repositories expanded successfully with publishing explicitly disabled. Both environments definitions are disabled; their exact YAML also expanded through the enabled isort definition without enabling or modifying those definitions. All expanded platform jobs preserve import order, source paths, SDL scanning, and publication gates. Shared core CI and the actual isort GitHub submission action passed. Shared dependency: microsoft/vscode-common-python-lsp#125 Pilot: microsoft/vscode-isort#777 Sibling draft PRs: - debugger: microsoft/vscode-python-debugger#1134 - environments: microsoft/vscode-python-environments#1971 - pylint: microsoft/vscode-pylint#915 - flake8: microsoft/vscode-flake8#609 - autopep8 (including runtime l10n): microsoft/vscode-autopep8#415 - mypy: microsoft/vscode-mypy#651 - black-formatter: microsoft/vscode-black-formatter#833 Keep this PR and callers draft pending dependencies, credential setup, and real handbacks. Current drop blocks isort (English-only), environments (missing canonical output), and flake8/mypy/black (missing runtime tables). Debugger, pylint, and autopep8 passed actual manifest/runtime imports from current drop. Autopep8 runtime ...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the selecting manager separate from the fallback environment owner when clearing explicit global selections. Capture non-Linux E2E and integration host logs to diagnose remaining failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6166fde-f261-4e66-abe4-3ef5c1313713
|
Fixed and pushed in 5e192fc and 385c9c6. Global interpreter routing now retains the selecting manager instead of inferring it from a fallback environment owner; regression coverage verifies that clearing an explicit selection follows the configured manager on subsequent refreshes. Added non-Linux E2E/integration failure diagnostics using the existing test-host hooks, without weakening assertions or adding automatic test retries. Validation: full local unit suite, 72 targeted manager tests including the new regression, TypeScript compilation, webpack, ESLint, actionlint, actual-YAML diagnostic checks and the existing Python-matrix guard. Real Windows discovery and controlled stdlib/UV venv removal probes passed. Final revision 385c9c6: all 53 jobs in the pull-request workflow passed (https://github.com/microsoft/vscode-python-environments/actions/runs/41703916165); the duplicate push workflow also passed (https://github.com/microsoft/vscode-python-environments/actions/runs/41703906838). Reran only jobs that failed before executing tests because of Marketplace HTTP 503 or VS Code download timeouts. The original Windows discovery/removal failures did not recur. The test-file policy check now passes. No failed checks remain; the separate external VS Code PR Check is still pending. |
Verify that a later configured-manager refresh publishes and reads its new environment rather than routing through the stale fallback owner. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6166fde-f261-4e66-abe4-3ef5c1313713
|
🔒 Automated review in progress — Rich Chiodo (@rchiodo) is auto-reviewing this PR. |
|
Result: Verification detailsVerification: Automated verification is best effort. The PR author remains responsible for testing. Summary: Test compilation and all 30 targeted environment-manager tests passed, including the PR’s new regression test. Offline dependency preparation succeeded; local YAML contract checks and generated-localization file selection through VSCE also passed. Initial discovery encountered missing dependencies and absent container Git metadata, not a demonstrated PR defect. Shared localization execution, real handback readiness, Azure template expansion, and non-Linux diagnostic collection remain unverified. **Reviewer dependency follow-up (nonblocking):** Suggest a separate PR adding `mocha ^10.8.2`, `typescript ^5.1.3` to the official reviewer dependency declarations, using `package.json` as the dependency/version evidence. Do not automatically create that PR. This is reviewer environment maintenance, not a required change to the reviewed PR. Test runs: 5 passed, 1 failed, 2 not run
|
Rich Chiodo (rchiodo)
left a comment
There was a problem hiding this comment.
Approved via Review Center.
Stella Huang (StellaHuang95)
left a comment
There was a problem hiding this comment.
Approved via Review Center.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
d333006
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Investigated the failing Windows/Python 3.15 E2E job:
No tests were skipped, timeouts increased, or production discovery behavior changed. The underlying reason for slow Conda discovery still needs investigation; this is separate from the PR's current merge conflicts. |
|
The isolated Windows/Python 3.15 E2E rerun passed: https://github.com/microsoft/vscode-python-environments/actions/runs/41893763980/job/126925681445 . Run attempt 2 completed successfully with no code changes, skipped tests, or timeout increases. The original PET/Conda discovery timeout did not reproduce on this attempt; this supports an intermittent failure but does not establish that the underlying slowdown is fixed. Merge conflicts/approval remain separate requirements. |
|
Reviewed commit: Result: Verification detailsVerification: Automated verification is best effort. The PR author remains responsible for testing. Summary: Compiled the tests and ran targeted suites: 131 tests passed, including the PR’s new regression test; one Windows-only test was skipped on Linux. Additional probes passed for localization YAML contracts, generated-locale VSCE selection, diagnostic wiring, and global-manager fallback recovery. Missing Node dependencies were restored successfully using the offline lockfile installation. Shared localization execution, Azure template expansion, real translation readiness, and non-Linux diagnostic uploads remain unverified. **Reviewer dependency follow-up (nonblocking):** Suggest a separate PR adding `@vscode/vsce@^3.9.2`, `mocha@^10.8.2`, `sinon@^19.0.2`, `ts-mockito@^2.6.1`, `typemoq@^2.1.0`, `typescript@^5.1.3` to the official reviewer dependency declarations, using `package.json` as the dependency/version evidence. Do not automatically create that PR. This is reviewer environment maintenance, not a required change to the reviewed PR. Test runs: 5 passed, 1 skipped, 3 not run
⏩
|
Combine selection-manager tracking with main explicit-selection guard so clearing a global selection restores configured-manager routing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2141da2
|
Resolved the merge conflict with main in 2141da2. Global routing now preserves the selecting manager for an explicit global selection, while main's explicit-selection guard ensures clearing that selection restores configured-manager routing. Validation: TypeScript compilation, lint, executable localization YAML guards, and 76 focused routing/global-selection tests passed. A broader unit run reported 3514 passing, 5 pending, and 2 startup-fixture failures. Both failures also reproduce on unmodified origin/main (ebb7d76) in a separate baseline worktree, so no unrelated fixture or runtime changes were made. Temporary baseline worktree removed. CI will run on the updated PR commit. |
Pin submission and release imports to the same reviewed shared revision. Untranslated handbacks no longer block packaging; required locale tables and structural checks remain. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Dependency: microsoft/vscode-common-python-lsp#127 Pin the localization action and both release import resources to 6b4a3573e7e7a9fe1e468e129544432278aec2d6. This allows untranslated strings, including wholly untranslated tables, to retain English rather than fail packaging. Missing/empty/malformed/incomplete locale tables remain errors. Update the documented policy; preserve dev translation branch, Pylance-Eng main, publication defaults, and all build/release settings. Validation: actual-YAML caller guards, formatting, and Azure preview expansion passed. Shared tests/lint passed; real isort dev import produces all 28 locale files with English fallback. Environments' native pipelines remain disabled; exact YAML expansion was verified through an enabled definition. No release builds queued or publication performed. Merge the shared dependency before this consumer pin update. |
b936289
Summary
Shared dependencies
The GitHub action and Azure tooling checkout are pinned to d1877b84bb10ff7caa6bd12ab4e75498ba760790. Azure templates temporarily reference the shared feature branch for verification; switch to Pylance-Eng main after the dependency merges, before merging this caller.
Verification
Executable guards read the actual YAML and preserve existing triggers, build steps, publication defaults, validation contacts, version flags, and matrices. Both release YAMLs expanded with publishing explicitly disabled (environments used the enabled validation definition because its native definitions are disabled). Actual English export used the pinned CLI through the internal feed. Changed YAML/JSON formatting and whitespace checks passed.
Required setup and release blockers
Canonical English/output directories are absent from drop dev. Both native DevDiv release definitions are disabled; the exact YAML was expanded through the enabled isort validation definition without enabling them.
No repository-level PYTHON_LOCALIZATION_APP_ID variable or PYTHON_LOCALIZATION_PRIVATE_KEY secret is currently visible here. Organization-level access could not be verified with current permissions. Configure or expose them through the owners; do not copy credentials between repositories. Authorize Github-Pylance for both release resources/pipelines.
Keep this PR draft while dependencies/setup/handbacks are pending. No merge or publication is requested.