```
SetSite failed for package [BuildXLVsPackage]Source: 'BuildXLVsPackageDev17' Description: Unable to cast object of type 'Microsoft.VisualStudio.CommonIDE.Solutions.CSlnUpdate' to type 'Microsoft.Internal.VisualStudio.Shell.Interop.IVsSolutionBuildManagerPrivate'. System.InvalidCastException: Unable to cast object of type 'Microsoft.VisualStudio.CommonIDE.Solutions.CSlnUpdate' to type 'Microsoft.Internal.VisualStudio.Shell.Interop.IVsSolutionBuildManagerPrivate'. at BuildXL.VsPackage.VsProject.ProjectFlavorFactory..ctor(BuildXLVsPackage package) in \.\Public\Src\IDE\VsIntegration\BuildXLVsPackageShared\VsProject\ProjectFlavorFactory.cs:line 59 at BuildXL.VsPackage.BuildXLVsPackage.<InitializeAsync>d__15.MoveNext() in \.\Public\Src\IDE\VsIntegration\BuildXLVsPackageShared\BuildXLVsPackage.cs:line 137
```
The problem is that the extension has its own definition of Microsoft.Internal.VisualStudio.Shell.Interop.IVsSolutionBuildManagerPrivate copied from Microsoft.Internal.VisualStudio.Shell.Interop.10.0.DesignTime.dll. The solution is to use the interface defined in Microsoft.Internal.VisualStudio.Interop.dll.
Changes:
- add a new NuGet dependency on `Microsoft.Applications.Events.Server` (which is the cross-plat Aria SDK)
- use that on Linux and Mac
- delete the native SDK previously used on Mac
Changes:
- fix various file name capitalization errors
- fix various nuget package name capitalization errors
- create and publish `Bond.CSharp.linux-x64` nuget package
- add `/etc` to default untracked scopes
- untrack `$HOME/.dotnet` when running the `Downloader` tool
- consistently spell `App.config`
With these changes, all of the following succeed for me in Ubuntu 20.04 WSL running in Windows 11:
- `./bxl.sh --minimal`
- `./bxl.sh --minimal --internal`
- `./bxl.sh --minimal --internal --shared-comp`
Once the changes make it to LKG, the next step will be to set up a Linux pipeline to build minimal selfhost. Later, that pipeline can be expanded to run unit tests etc.
Previously, the server mode wasn't compatible with process remoting. The root cause of the issue is because we use the singleton pattern to get-or-create process remoting manager. Thus, that manager is used across build sessions, but was actually disposed after the very first session.
This PR stops the use of singleton pattern, and simply creates a remoting manager for each build session. That creation happens inside the scheduler, and the obtained instance will be disposed when the scheduler is disposed.
Related work items: #1926109
Currently it only remotes process pip with "compile" tag.
The remoting configuration is still not optimal currently, particularly for the beefy pool we have (32 cores).
In this run, https://dev.azure.com/mseng/Domino/_build/results?buildId=16779538&view=results, with remoting multiplier 1.5, and num of leases is assumed to be 2*maxproc, there are 42 processes going to AnyBuild, but 22 of them failed to find agents because AnyBuild is over saturated.
In this run, https://dev.azure.com/mseng/Domino/_build/results?buildId=16779745&view=results, with remoting multiplier 1.25 and num of leases 24, there are only 17 processes going to AnyBuild, and all of them successfully execute remotely.
More work is still needed for optimal configuration, e.g.,
- Feedback from AnyBuild about available leases, etc.
Related work items: #1912875
Integrate BuildXL with AnyBuild SDK.
The design is to isolate AnyBuild use so that the `#if FEATURE_ANYBUILD_PROCESS_REMOTING` doesn't need to appear everywhere.
This PR depends on AnyBuild.SDK package that should be published after this PR !644510 is pushed.
Related work items: #1907310
- Remove the `__ENABLE_SBOM_PACKAGE_CONVERSION` env variable. This was meant to guard against using this feature while the library had a bug that is already resolved, so not necessary anymore
- Microsoft.SBOM.Adapters and some other packages reference Newtonsoft.Json 13.0.1, while we were using 12.0.3 throughout. This was causing a failure when the runtime tried to load the assembly after calling the library. Version 13.0.1 is incompatible with earlier ones so a downgrading binding redirect is not possible. Instead, we deploy the drop daemon with Newtonsoft.Json version 13.0.1 and use "forward" binding redirects.
- Add some extra logging
With these changes, an end-to-end build where CG is run in the build runner and the packages are retrieved and added to the SPDX SBOM was successful: https://cbtest.microsoft.com/build/1d85303e-322e-4ddf-af1f-585ecce96079
- Remove ComponentDetectionConverter in favor of the Microsoft.SBOM.Adapters library
- Update SBOM packages to version 2.0.99
Related work items: #1902188
- Update qualifier for daemons to NetCoreAppQualifier
- Update VsoCrendentialHelper calls for AAD
- Upgrade Microsoft.Windows.Debuggers.SymstoreInterop to a version that is compatible with netstandard2.0
Revert "Merged PR 636560: Add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildX...
Add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildXL.Utilities
Related work items: #1882251"
Reverted commit `c7a683ce`.
Related work items: #1882251
Qtest: Update nuget to incorporate following:
1. Allow JUnit parser to read results from custom location
2. Search only current directory for JUnit.xml to avoid recursion in search
Revert "Merged PR 626875: QTest: Support coverage upload for JS"
This reverts commit 7e0d311d9e.
Revert "Merged PR 627798: QTest: Update nuget to incorporate Gradle fix and allow env var for zipsandbox"
This reverts commit 93570650e6.
QTest: Update nuget
Following new updates were made:
- Bug fixes and improvements for Torch
- Upgrade Magellan version to new signed version
- Coverage collection with vsinstr in CloudBuild
- Support AnyCPU for VsInstr
- More QTest Bug Fixes
- Update MSVC package to 14.16.27034
- Update internal feed to use VisualCppTools.Internal.VS2017Layout from devdiv feed.
- Update external build instructions to get user to download visual studio build tools manually.
- Add Qspectre flag to msvc.
- Ignore some newer warnings being hit on windows sdk source files.
Related work items: #1846018
Add initial support for distributed "content metadata store" (store which stores information currently stored in Redis i.e. content locations, memoization, and blobs) by using a gprc request to the master machine.
Doing this while ignoring the new dependency `DotNetFxRefAssemblies.Corext`, which they added to add the `netstandard.dll` references we add during runtime.
Update ADO packages. Also, added a script because, for now, we still need to pull and push packages manually to our feed. Hopefully this can go away sometime in the near future.
Add microsoft-internal Microsoft.Caching.Redis NuGet package. This is a fork of the StackExchange.Redis repo. There should be no breaking changes, other than renaming the namespace `StackExchange.Redis` to `Microsoft.Caching.Redis`
Related work items: #1822916
Updates Microsoft.Azure.Storage.Common. Also reverts the LKG update in the BuildXL.Internal repo since that LKG contains the dependency issue which causes the cache to break
1. Add qTestAzureDevOpsLogUploadMode option to dictate log upload behavior.
2. Update nuget to change parser name from Jest to JUnit.
JestParser has been renamed to JUnitParser for accuracy. This new nuget incorporates the change.
Builds using the value "Jest" as "QTestParserType" will have to replace the value to "Junit" for builds to pass. Currently we only have one customer who is running test builds, and they have been made aware of the change.
Validation run with newer BuildXL bits: https://dev.azure.com/mseng/Domino/_build/results?buildId=14224851&view=results