Граф коммитов

301 Коммитов

Автор SHA1 Сообщение Дата
Pasindu Gunasekara 🍣 c2e7c565d8 Merged PR 721779: Add Linux support for vscode extension
Related work items: #2009828
2023-06-07 23:07:58 +00:00
Semih Okur 556a60220d Merged PR 719487: Enable Roslyn analyzers from Microsoft in all builds
Separate guardian from Roslyn analyzers. We now use the roslyn analyzers from Microsoft in all builds as a part of the build. Guardian will be enabled when TOOLPATH_GUARDIAN variable exists.

Related work items: #2031143
2023-06-06 21:25:29 +00:00
Pasindu Gunasekara 🍣 47b5212c3e Merged PR 721442: Revert "Merged PR 719250: Use Microsoft.Artifacts.Authentication for cache/dr...
Revert "Merged PR 719250: Use Microsoft.Artifacts.Authentication for cache/drop authentication"

This reverts commit dc8fb8ff65.

Reverting change that's breaking dev cache authentication for users without VPN.
2023-06-05 21:17:17 +00:00
Serge Mera c047cec769 Merged PR 721017: Remove IncludeMonikersInNuspecDependencies temporary flag
The flag is already on by default and part of the current LKG. Remove the flag altogether.
2023-06-01 20:28:46 +00:00
Ignacio Alonso Battaglia 4fc5204442 Merged PR 719751: Update Microsoft.Extensions.Logging.Abstractions
Update Microsoft.Extensions.Logging.Abstractions:

- In CloudBuild we use Microsoft.Extensions.Logging.Abstractions version 6.0.3
- After [this change](dc8fb8ff65?refName=refs%2Fheads%2Fmain) we are trying to use the version 6.0.0 in BuildXL and causing the integration with CloudBuild to fail.

**Failed build**: https://cbtest.microsoft.com/build?id=0c452225-29ba-f9e9-3654-a6beceeb0353&bq=cloudbuild_retail
2023-05-24 23:02:07 +00:00
Pasindu Gunasekara 🍣 dc8fb8ff65 Merged PR 719250: Use Microsoft.Artifacts.Authentication for cache/drop authentication
- Microsoft.Artifacts.Authentication provides a wrapper layer for MSAL authentication. This will allow us to continue to keep BXL up to date with the latest MSAL changes without having to change too much on our end other than bumping up package versions.

Related work items: #1969711, #2063548
2023-05-24 04:01:59 +00:00
Pasindu Gunasekara 🍣 c9c14b4d74 Merged PR 719499: Match Microsoft.Data.Services.Client package version with Microsoft.Data.OData
- Microsoft.Data.Services.Client expects an exact package version of Microsoft.Data.OData as a dependency.
2023-05-23 21:24:24 +00:00
Ignacio Alonso Battaglia e8cef0c55c Merged PR 718995: Migration to Azure.Messaging.EventHubs (integration fixed)
We want to start using SAS tokens but to do that we need to update to the new EventHub package (because Microsoft.Azure.EventHubs does not support SAS).

Migration guide: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/eventhub/Azure.Messaging.EventHubs/MigrationGuide.md

**Original PR**: https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/715628

**Issue**: Conflict between different versions of _System.Memory.Data_ (during integration with CloudBuild)
**Logs**: https://cbtest.microsoft.com/stamp/SN_S1/getfile?path=\SA2PNPF00025749\d:\dbs\sh\cb_m\0517_105752\private\BuildEngine\Cache\CacheMissAnalysis\Logs\Retail\Amd64\build.log
**Difference**: Only the last commit that changes the _System.Memory.Data_ version.
2023-05-19 19:03:11 +00:00
Ignacio Alonso Battaglia 5d5556ae92 Merged PR 718827: Revert "Merged PR 715628: Migration to Azure.Messaging.EventHubs from Microso...
Revert "Merged PR 715628: Migration to Azure.Messaging.EventHubs from Microsoft.Azure.EventHubs"

This reverts commit e6f297f9eb.
2023-05-18 18:52:17 +00:00
Serge Mera 0f4cf3e1d9 Merged PR 718813: Fix nuget dependencies
Turn on the (temporary) flag that enables the correct treatment of nuget dependencies when monikers are used to specify them.

This caused a bunch of issues that are fixed here as well, caused by packages now containing more dependencies than what they used to:
* Some dependencies were plainly missing, so they are included now
* Some packages were causing double-deployment errors, so new 'skipNuget..' clauses had to be added
* On the plus side, some specs got simplified and we don't need to pin particular qualifiers.

The plan is to make this temporary flag the default after this gets merged
2023-05-18 18:32:07 +00:00
Ignacio Alonso Battaglia e6f297f9eb Merged PR 715628: Migration to Azure.Messaging.EventHubs from Microsoft.Azure.EventHubs
We want to start using SAS tokens but to do that we need to update to the new EventHub package (because Microsoft.Azure.EventHubs does not support SAS).

Migration guide: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/eventhub/Azure.Messaging.EventHubs/MigrationGuide.md
2023-05-16 17:34:48 +00:00
Sergey Tepliakov 01b37c7cda Merged PR 714911: Use RocksdDbSharp with merge operator fix for Linux
Trying to enable the rocksdb tests and figure out why they're failing.
2023-05-01 19:46:21 +00:00
Sergey Tepliakov fc72e4cf0d Merged PR 715499: Update .net 7 to 7.0.5
Update .net 7 to 7.0.5
2023-04-28 17:02:21 +00:00
Serge Mera d0df227450 Merged PR 713776: Add an option to send logs to Kusto
This change adds a /logToKusto option to send all log lines to a kusto database (in the same way today this happens for DominoMessage on CB). The primary scenario for enabling this option is ADO builds.

In order to authenticate, the pipeline running the build needs to provide a managed identity that we need to authorize. 1eshp allows for associating a managed identitie to a pipeline, so that's pretty straightforward.

Docs (on EngHub, since the flow today is mostly tied to 1eshp) to follow.

*Note*: this PR needs a fix in the nuget generation logic that is already in, but it needs to become part of the LKG, so we'll get failures till that happens

Related work items: #2047667
2023-04-26 20:25:51 +00:00
Michael Pysson 7a594282f3 Merged PR 713051: Update Azure.Data.Tables package
Update Azure.Data.Tables package

Related work items: #2047944
2023-04-14 18:31:36 +00:00
Marcelo Lynch 🧉 ca718f15dd Merged PR 712499: Update packageurl-dotnet version
Update packageurl-dotnet version to 1.1.0 to match the sbom packages.
2023-04-12 17:56:12 +00:00
Marcelo Lynch 🧉 92dcec0abc Merged PR 712326: Fix ComponentDetectionToSBOMPackageAdapter runtime failure and add unit test to exercise its logic
Related work items: #2047394
2023-04-11 21:46:00 +00:00
Michael Pysson de8f48142b Merged PR 712288: Move bond to internal only dependency
Move bond to internal only dependency
2023-04-11 20:27:20 +00:00
Qi Wang c1e535c853 Merged PR 709249: Migrate Bond to Google.Protobuf
Migrate Bond to Google.Protobuf
Temporarily upgrade Microsoft.Cloud.InstrumentationFramework to 3.4.1.1
and upgrade Bond to 11.0.0.0 (See https://eng.ms/docs/products/geneva/collect/instrument/ifx/ifx-retirement)
2023-04-07 21:01:05 +00:00
Qi Wang bb7e85ad56 Merged PR 710186: Temporarily skip sign nuget packages
Temporarily skip sign nuget packages
2023-03-30 21:11:24 +00:00
Julian Bayardo 6a93bd30c2 Merged PR 708671: Upgrade Azurite 2023-03-23 19:54:48 +00:00
Michael Pysson f09d3ec7b3 Merged PR 706442: Make DeploymentRoot mount scrubbable
Our public rolling validation tries to scrub this directory but fails with a warning because it is not a scrubbable mount. The result is we include unwanted packages in the produced artifact
2023-03-10 00:27:17 +00:00
Erik Mavrinac f5fa2d391f Merged PR 701239: Update to CopyOnWrite 0.3.1
With a bug fix to avoid stalling when there are empty SD Card drives on the machine.
2023-02-10 18:27:47 +00:00
Erik Mavrinac ddc2c8e253 Merged PR 699306: Update to CopyOnWrite 0.3.0 with improved performance
Perf updates avoiding serialization on file paths. Underlying ReFS bug appears fixed in more recent OS patches.
2023-01-31 05:58:39 +00:00
Erik Mavrinac 83cbda173b Merged PR 699121: Update CoW library to 0.2.2 containing a bug fix 2023-01-28 01:25:07 +00:00
Michael Pysson 9de1f98c70 Merged PR 698533: Remove Powershell dependency
Remove Powershell dependency. From what we can tell this is not used anymore
2023-01-25 21:58:37 +00:00
Sergey Tepliakov 3df43669ee Merged PR 697293: Update RocksDbSharp and add an option to fail when the store is not disposed
Update RocksDbSharp and add an option to fail when the store is not disposed
2023-01-18 23:27:52 +00:00
Michael Pysson a51d4ff063 Merged PR 696870: Update Nuget.CommandLine to 6.4.0
Hopefully this includes this commit which may be a fix for our flaky AbandonedMutexException

41c08c5549

Related work items: #2019483
2023-01-13 21:45:54 +00:00
Sergey Tepliakov a808153e19 Merged PR 695905: Remove keyvault packages to avoid Component Governance warnings
This PR is built on top of [this one](https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/695843) and removes the dependency to an obsolete `Microsoft.Azure.KeyVault` package that was flagged by Component Governance.

Related work items: #2011942, #2019991
2023-01-06 22:14:25 +00:00
Sergey Tepliakov 600d510bb2 Merged PR 695843: Update kusto packages
This is the second PR that updates the dependencies in order to gert rid the dependencies to the stale keyvault nuget packages.

Related work items: #2011942
2023-01-06 19:14:57 +00:00
Sergey Tepliakov 343bd394e4 Merged PR 695709: Remove unnecessary dependencies to 'Microsoft.Azure.Management.*' packages
This is the first step towards fixing the Component Governance issue automatically created because of our dependency to a deprecated Azure.KeyVault package.

Related work items: #2011942
2023-01-05 18:15:49 +00:00
Sergey Tepliakov 8e9ba5ac1d Merged PR 694738: Migrate to the latest C# compiler that supports C# 11
Migrate to the latest C# compiler that supports C# 11

The PR adds 'RequiredMemberAttribute' to support 'required' members from C# 11.

The latest compiler changed the behavior for '<<' operator making it checked. This PR addresses this by using 'unchecked' in the cases where the overflow is possible.

Related work items: #2017950
2022-12-28 19:21:16 +00:00
Sergey Tepliakov e4218d2099 Merged PR 680397: Add NET7 support for BuildXL and Cache
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
2022-12-22 00:32:20 +00:00
Sergey Tepliakov 5e9cdf92f3 Merged PR 694438: Use RocksDb 20221219.1
This PR updates RocksDb packages to 20221219.1. The new version uses different logic for tracking the lifetime of logging adapter that prevents crashes due to inconsistent lifetime.

The original allowed having different lifetime for `RocksDbStore` (the actual wrapper around native rocksdb store) and `RocksDbLoggingAdapter` that was reponsible for marshaling lagging invocations between the native and the managed worlds.

Due to a race condition (that will be fixed separately) it was possible to leave `RocksDbStore` instance undisposed. That was cuasing runtime crashes because an undisposed rocksdb wrapper was trying to use finalized `RocksDbLoggingAdapter`.

In the design, the store tracks the lifetime of the logging adpater and the adapter itself is now hidden from the public API making the lifetime issues impossible.
2022-12-20 02:05:33 +00:00
Julian Bayardo 5bb32755fe Merged PR 694152: Upgrade NuGet.CommandLine to 6.3.1
This tool has been frequently failing during PR builds with:

```
##[error]DX0064 [Pip5DE6E748056C4CEF, BuildXL.Deployment - NugetPackages.winX64 - NuGet.exe [{configuration:"debug"}], d:\dbs\el\bxlint\Public\Src\Deployment\NugetPackages.dsc] - failed with exit code 57005,
##[error]Unhandled Exception: System.Threading.AbandonedMutexException: The wait completed due to an abandoned mutex.
##[error]   at System.Threading.WaitHandle.ThrowAbandonedMutexException()
##[error]   at System.Threading.WaitHandle.InternalWaitOne(SafeHandle waitableSafeHandle, Int64 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext)
##[error]   at System.Threading.WaitHandle.WaitOne(TimeSpan timeout, Boolean exitContext)
##[error]   at NuGet.Common.Migrations.MigrationRunner.Run() in D:\a\_work\1\s\src\NuGet.Core\NuGet.Common\Migrations\MigrationRunner.cs:line 33
##[error]   at NuGet.CommandLine.Program.Main(String[] args) in D:\a\_work\1\s\src\NuGet.Clients\NuGet.CommandLine\Program.cs:line 65
```

This is an attempt to fix it.
2022-12-16 19:34:35 +00:00
Julian Bayardo 3b267b3856 Merged PR 693449: Remove debug symbols from RocksDbSharp for Linux and Mac to reduce package size
With debug symbols across all platforms:

![image.png](https://dev.azure.com/mseng/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/693449/attachments/image.png)

Without debug symbols in Linux and Mac:

![image (2).png](https://dev.azure.com/mseng/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/693449/attachments/image%20%282%29.png)

TIL: debug symbols waste **a lot** of space
2022-12-16 00:03:04 +00:00
Michael Pysson 7bc194b6a1 Merged PR 693738: Update System.Security.Cryptography.Xml
Update System.Security.Cryptography.Xml

Related work items: #2002253
2022-12-14 19:41:52 +00:00
Marcelo Lynch 🧉 35fc871697 Merged PR 693675: Remove .noindex suffix for engine directories in Linux builds
This suffix is for an optimization on MacOS. We were using `IsUnixOs` as a synonym for Mac but that is not correct now
2022-12-14 17:47:48 +00:00
Sahiti Chandramouli 8ba5b87e0a Merged PR 684501: Scan environment variables for credentials using the CredScan library(Phase I)
This is Phase I hence only a warning is logged when a credential is detected in an env var. Depending on the results obtained from the logging information the implementation is modified accordingly.

Added the CredentialScanner class to handle the functionality related to credscan
Created a unit test to test the functionality of the scanner with various test cases
Modified the SetEnvironmentVariables method to call the credscan method from CredentialScanner class.
Added allowList mechanism and a unit test to test that

Related work items: #1975564
2022-12-08 21:24:45 +00:00
Qi Wang 7d07fddf5c Merged PR 691424: Enable Ninja tests 2022-12-06 21:48:14 +00:00
Sergey Tepliakov 22ad1acf64 Merged PR 691136: Update RocksDbSharp to '7.7.3-20221205.1'
Update RocksDbSharp to '7.7.3-20221128.5'.

The validation for office dev builds succeeded: https://dev.azure.com/office/Office/_build/results?buildId=17044951&view=results

Related work items: #1996361
2022-12-06 18:09:21 +00:00
Pasindu Gunasekara 🍣 fa4b081483 Merged PR 690945: Update Linux sandbox deployment to no longer use runtime package
- Also fixes nuget package generation on Linux

Related work items: #2001808
2022-12-02 21:34:21 +00:00
Marcelo Lynch 🧉 bbecd537b8 Merged PR 690451: Update Linux sandbox version
Update Linux sandbox version to include latest changes in file descriptor cache
2022-11-26 01:22:21 +00:00
Semih Okur 00651a3f2a Merged PR 689216: Revert "Merged PR 685164: Forward rocksdb logs to Kusto
Revert "Merged PR 685164: Forward rocksdb logs to Kusto

Forward rocksdb logs to Kusto

Related work items: #1996361"

Reverted commit `60bffd1f`.

Related work items: #1996361
2022-11-21 21:50:18 +00:00
Iman Narasamdya 1ec5df3471 Merged PR 689696: Update BuildXL package to include copyfilerange patch for Linux sandbox
On newer kernel, copyfilerange no longer works cross-device. This is a known regression in the kernel.

The current BuildXL package has the Linux sandbox that doesn't contain this copyfilerange patch. AnyBuild requires this patch as it now has an updated Linux image for its agents. As a workaround, AnyBuild currently relies on two packages from BuildXL, i.e., buildxl package itself and runtime.ubuntu-linux-x64.buildxl. The latter is produced in an adhoc way.

With this PR, we can now rely solely on buildxl package.
2022-11-19 04:36:35 +00:00
Sergey Tepliakov cb97823ade Merged PR 687960: Upgrade RuntimeContracts to 0.4.0
This PR updates RuntimeContracts to 0.4.0 with the following important changes:

* All the assertions propagate caller expressions as string to make assertions more descriptive. For instance, `Contract.Requires(x != null)` will automatically embed `x != null` into a message.
* All the assertions support new interpolated string from C# 10 and allow lazy message construction. It means that now we don't need to use 'FluentAPI' and just create custom message with interpolated string syntax.
The following code is very efficient: `Contract.Assert(x > 0, $"x = {x}")`. The efficiency comes from the fact that the message is constructed only if the assertion is false and the exception will be thrown.

This PR also fixes cases when the messages were created eagerly causing excessive memory allocations that are now gone.

Related work items: #2007282
2022-11-14 20:59:22 +00:00
Iman Narasamdya 941deb9d7e Merged PR 687534: Use MSBuild locator to locate/load MSBuild assemblies when using MSBuild frontend
The custom loader is brittle that it hardcodes the assemblies to load. Moreover, the existing approach does not work with dotnetcore runtime due to some complicated way of MsBuild SDK resolution etc.

MsBuild team recommends that we should use Microsoft.Build.Locator for this purpose.

Because the locator can pin the MsBuild location if explicitly specified, all dotnetcore/full-framework unit tests work without any modification..

Related work items: #2006579
2022-11-08 01:39:45 +00:00
Serge Mera fd290e1992 Merged PR 686988: Use Ubuntu-based sandbox
This change makes bxl consume an Ubuntu-built sandbox as a stop gap for the timeouts we are experimenting. The sandbox is the result of building the current prod bits (0.1.0-20221020.0.2) but changing the pool we use to an Ubuntu one.
2022-11-04 00:00:16 +00:00
Sergey Tepliakov 60bffd1fcb Merged PR 685164: Forward rocksdb logs to Kusto
Forward rocksdb logs to Kusto

Related work items: #1996361
2022-11-03 22:28:24 +00:00
Iman Narasamdya 8d333c9efc Merged PR 684087: Detour copy_file_range with splice
Due to (possibly) kernel bug, copy_file_range no longer works when the file descriptors are not mounted on the same filesystems, despite what is said in the manual https://man7.org/linux/man-pages/man2/copy_file_range.2.html.

This bug breaks AnyBuild virtual filesystem (VFS) because the source file will be in the read-only (lower) layer of overlayfs, and this layer is mounted on AnyBuild FUSE, and the target file will be in the writable (upper) layer of overlayfs.

Without this PR AnyBuild cannot update its Linux image.

Related work items: #2000792, #2000797
2022-10-26 00:50:33 +00:00