VS integration tests running on CI - #20079
Draft
abonie wants to merge 15 commits into
Draft
Conversation
…n step The azure-pipelines-PR.yml 'Detect CI VS Roslyn version' step and the FSHARP_APEX_ROSLYN_VERSION override in eng/Versions.props were committed, but the script itself was left untracked, so on CI 'powershell: eng\SetApexRoslynVersion.ps1' could not find the file and failed with 'The module ''eng'' could not be loaded'. Co-authored-by: Copilot <[email protected]> Copilot-Session: fe2b3239-4176-4f13-b6f6-486c8799765a
main (via darc) bumped the dotnet/runtime System.* packages to 10.0.8 (assembly 10.0.0.8). The F# VSIX then references System.Composition.AttributedModel 10.0.0.8, which the CI scout VS (18.7, ships 8.0.0.0) cannot bind -- its binding-redirect ceiling is below 10.0.0.8 -- so every FSharp.Editor MEF part fails to load, IFSharpWorkspaceService is null, and all Apex tests fail with an NRE in LanguageService.fs. This is the same forward-pinned-dependency vs older-CI-VS problem already handled for Roslyn. Extend the FSHARP_APEX_ROSLYN_VERSION-gated override in eng/Versions.props to also roll System.Composition and System.Collections.Immutable back to 10.0.2 for the Apex leg only. Verified: with a simulated 10.0.8 base the override forces 10.0.2, and FSharp.Editor compiles and references System.Composition.AttributedModel 10.0.0.2. The committed pin and product/main builds are unaffected. Co-authored-by: Copilot <[email protected]> Copilot-Session: fe2b3239-4176-4f13-b6f6-486c8799765a
… leg" This reverts commit c0c3dd7.
Scaffolds an internal DevDiv DartLab pipeline (modeled on dotnet/roslyn's
azure-pipelines-integration-dartlab.yml) that installs a matching Visual Studio via
the VS bootstrapper on a VS-Platform test machine, deploys the F# VSIX, and runs the
existing Apex tests. This is the robust fix for the version-skew that blocks running
the VSIX on the older pre-baked public scout VS (the VS-SDK floor, e.g. RpcContracts
requiring System.Composition >= 10.0.8, prevents downgrading to match it).
Files (all trigger:none / inert until registered):
- azure-pipelines-integration-dartlab.yml: entry, extends the VS real-sign template.
- eng/pipelines/apex-integration/{stage,integration-job}.yml: provision + install VS +
deploy VSIX + run Apex via the existing -testApex path.
- eng/pipelines/apex-integration/README.md: external prerequisites + a concrete request
to the DartLab/VS team.
- eng/setup-pr-validation.ps1: PR-branch setup on the test machine (adapted from Roslyn).
Every access-dependent value is marked '# TODO(P0):'. Requires DevDiv/DartLab access,
an internal dotnet-fsharp mirror, and a VS-Platform pool before it can be registered
and run; those are outside this repo.
Co-authored-by: Copilot <[email protected]>
Copilot-Session: fe2b3239-4176-4f13-b6f6-486c8799765a
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.
Existing integration tests ported to Apex for less flakiness, running on CI.