CaSaaS is currently on Net7 and it might need updated bxl bits while it's moving to Net8. This PR re-adds net7 qualifier. It's essentially a revert of `0a4d5b272900cfb6ad2c13795650e269500f9d17` and `5380d614bb98bfebb5a63900bb617ff51e93e56e`.
7.0.18 has a vulnerability, so this PR also includes a change that updates net7 bits to 7.0.19 to make the CG happy.
note: MsBuild is back to net7 (net7->net8 for msbuild was a part of net7 removal)
Reapply the original Net7 removal commit `4c5cc753`. The issue that we initially saw after it was merged was not caused by the commit. The commit forced a cache miss for a couple of pip and it uncovered the issue with vctip/lib.exe.
Must be merged after !784653
Related work items: #2174274
After net7 removal the minimal build fails in CB with 'child process survived' error.
Revert "Merged PR 784187: Remove net7 qualifier
Remove net7 qualifier and move msbuild to net8.
Related work items: #2174274"
Reverted commit `4c5cc753`.
Related work items: #2174274
This caused some deployment issues in CB, and there is a hot fix that CB needs that got trapped in between cleanup waves. Reverting so CB can get unblocked.
* Removed now unnecessary 'dependentPackageIdsToSkip'
* Removed remaining unnecessary 'withQualifier' and the general netstandard2.0 forcing that happened on cache specs side
* Reorganized asptnetcore assembly references. This could be simplified further in the future, but now it is more self-contained.
* Some other minor cleanups
Next step is trying to make sure dependency versions are the right ones and try to turn on the flag that enforces this from the nuget resolver.
Revert "Merged PR 765049: DScript spec cleanup wave 2
* Removed now unnecessary 'dependentPackageIdsToSkip'
* Removed remaining unnecessary 'withQualifier' and the general netstandard2.0 forcing that happened on cache specs side
* Reorganized asptnetcore assembly references. This could be simplified further in the future, but now it is more self-contained.
* Some other minor cleanups
Next step is trying to make sure dependency versions are the right ones and try to turn on the flag that enforces this from the nuget resolver."
Reverted commit `2b01690d`.
* Removed now unnecessary 'dependentPackageIdsToSkip'
* Removed remaining unnecessary 'withQualifier' and the general netstandard2.0 forcing that happened on cache specs side
* Reorganized asptnetcore assembly references. This could be simplified further in the future, but now it is more self-contained.
* Some other minor cleanups
Next step is trying to make sure dependency versions are the right ones and try to turn on the flag that enforces this from the nuget resolver.
Mostly cache specs, but also touching some shared stuff:
* Unified some Nuget packages (System.Collections.Immutable, System.Memory, etc), and bumped versions to the latest. This triggered a bunch of other updates...
* Removed a lot of unnecessary 'withQualifier'
* Simplified some references by fixing the 'runtimes' folder behavior on the Nuget resolver (which forced a bunch of 'withWinRuntime' calls
More cleanup passes are possible, but those to come later
Updates various SBOM related packages to work with the new Component Detector.
These changes are necessary in order for CloudBuild Repo to update to the new version of Component Detector and SBOM tooling
This PR fixes the discrepancy between the artifact services package that requires 4.4.0 version and BuildXL.Utilities that used to require 4.3.0 version. Without this change referencing BUildXL.Utilities package was causing a nuget package downgrade.
Related work items: #2039361
This PR adds .NET 7 RC1 support to BuildXL and Cache Service.
Please note, that the PR will be failing until the new LKG with net7 nuget support will be deployed.
Related work items: #1990373
The ["Add Azure blob reference to BXL.Cache.Libraries package"](https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/690299?_a=files) PR added a reference to azure blobs nuget package from the cache library package. This started causing an issue, because the azure package requires System.Text.Json 4.7.2 but the cache package itself requires System.Text.Json 4.7.0.
This PR bumps the depdendency in bxl to 4.7.2 to avoid the issue.
- 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
This PR adds support for .NET 5.
The only current limitation is that QTest is disabled in .NET 5 because it was failing with some "can't find the right assembly" issue that I'm going to investigate.
Also, the default qualifier stays the same and I need some help testing the changes on the mac and on Linux.
This PR also allow us using C# 9 features like records **for all target frameworks** and the following code compiles just fine:
```csharp
public record X
{
public int Y { get; init; }
}
```
Keep in mind, that you need the most recently released VS in order to see intellisense for this code.
Update System.Threading.Tasks.Extensions to 4.5.4
We recently updated System.IO.Pipelines from 4.7.0 to 4.7.2 and it requires 4.5.4 instead of 4.5.2
We didn't notice the change was necessary because we ignore the dependency on config..dsc
Without making this change, CloudBuild (and potentially anyone consuming our nuget packages) complains that there is a package downgrade.
This PR removes `ForMSBuild` packages because all the pieces are using the same version.
And it also fixes the test discovery issue that is happening in Test Explorer when trying to run the cache tests.