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

376 Коммитов

Автор SHA1 Сообщение Дата
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
Michael Pysson f4475088db Merged PR 685117: Update Nuget and aspnet packages to address CG issues
Update Nuget and aspnet packages to address CG issues

Related work items: #1963501, #2002243, #2002246
2022-10-25 00:36:22 +00:00
Qi Wang fdf1c20200 Merged PR 683089: Use ninsjson pipeline auto packed version 1.11.2
Use ninsjson pipeline auto packed version 1.11.2
2022-10-10 21:41:05 +00:00
Qi Wang 8abf6918ec Merged PR 681926: Update ninjson to 1.11.1
Update ninjson to 1.11.1
2022-10-05 20:39:47 +00:00
Qi Wang 1fb64b7971 Merged PR 681631: Update nuget spec fingerprint and add esrp releated mount
update fingerprint, add esrp releated mount
2022-09-29 20:58:51 +00:00
Julian Bayardo a601f8c48f Merged PR 681101: The Great Redis Deletion
WIP PR, running tests for now
2022-09-28 17:35:59 +00:00
Christian Castaneda bc1f50ee2e Merged PR 677067: Support CopyOnWrite on Windows ReFS
Implement `IsCopyOnWriteSupportedByEnlistmentVolume` for Windows ReFS drives

Currently this will be gated under environment variable `EnableCopyOnWriteWin`. We intend to enable by COW for ReFS by default once we have more real-world data from QuickBuild dogfooding this feature.
2022-09-28 01:51:11 +00:00
Qi Wang bfb2694ba1 Merged PR 680179: Update config.dsc to enable esrp sign for nuget resolver
Update config.dsc to enable esrp sign for nuget resolver
Untrack esrpPolicy and esrpConfiguration json
2022-09-27 22:40:47 +00:00
Sergey Tepliakov dbfc427a56 Merged PR 680832: [BuildXL Perf] Reduce the size of EnvironmentVariable struct from 48 to 32
An array of `EnvironmentVariable` structs is created per pip and such arrays occupy quite a bit of memory. Here is an example from bxl dump for COSINE:

```
305412   2828539152 BuildXL.Pips.Operations.EnvironmentVariable[]
```

I.e. the arrays are almost 3Gb.

This PR reduces the size of `EnvironmentVariable` struct from 48 to 32 bytes by flattening types used in it.

It also adds a reference to `ObjectLayoutInspector` nuget package that allows inspecting the layout at runtime.

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

Here is the layout after:
![image.png](https://dev.azure.com/mseng/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/680832/attachments/image.png)
2022-09-27 19:21:43 +00:00
Qi Wang a9b39297e0 Merged PR 675070: Add nuget resolver signing
Add nuget resolver signing
Add extra dummy sign sdk in FrontEnd/UnitTest to pass the tests

Downloaded and Extracted files need to be treated differently. Extract pip generate an opaques directory. I need to use a tool to enumerate extracted files. I'd like to split into another pr.

Related work items: #1958784
2022-09-15 18:24:12 +00:00
Marcelo Lynch 🧉 a789aa51e1 Merged PR 675572: Update AdoBuildRunner and include it in the deployment
Renames the "Orchestrator" project to "AdoBuildRunner" to avoid confusion with the other uses of "Orchestrator" for distributed builds, and includes the tool in the BuildXL deployment. Also some minor tweaks to the tool + a test mode for connectivity tests between agents

Related work items: #1977690
2022-08-24 20:14:05 +00:00
Julian Bayardo 25c66486c1 Merged PR 672363: Remove Memurai package from tests 2022-08-10 00:25:04 +00:00
Julian Bayardo 9605212667 Merged PR 671481: Blob L3 bulk pinning
This PR adds support for using the Blob Storage SDK V12 and adds support for Blob Batch operations. Then uses those to implement bulk pinning in the blob L3.
2022-08-05 20:23:16 +00:00
Aleksandar Milicevic 7a24e94bee Merged PR 672070: Reuse get_mode 2022-07-27 22:22:42 +00:00
Serge Mera 5578856a34 Merged PR 671891: Track source rewrites on Linux
Make sure we produce the same special sandbox event on both Windows and Linux when a source rewrite is detected. Enable related unit tests for Linux as well.
2022-07-26 22:35:48 +00:00
Julian Bayardo 25c0df1a8d Merged PR 671117: Upgrade drop
Upgrade drop

Reverts !670396

Reverts !670874
2022-07-21 18:23:59 +00:00
Serge Mera 8fc40aae60 Merged PR 670983: Enable JS related tests on Linux
Enable JS related tests on Linux

Related work items: #1965668
2022-07-20 06:09:09 +00:00
Julian Bayardo ebb01f75a1 Merged PR 670874: Revert 'Upgrade drop'
Upgrade drop

Reverts !670396
2022-07-18 18:37:05 +00:00
Julian Bayardo d11fdb4bbb Merged PR 670396: Upgrade drop
Upgrade drop
2022-07-14 22:36:54 +00:00
Pasindu Gunasekara 🍣 d3c1fec192 Merged PR 669449: Update Microsoft.ComponentDetection.Contracts to 1.2.3 2022-07-06 23:38:08 +00:00
Serge Mera 77fd723d1c Merged PR 668806: Upgrade Nuget.CommandLine to be in compliance
Upgrade Nuget.CommandLine to be in compliance

Related work items: #1963501
2022-07-05 18:15:17 +00:00
Pasindu Gunasekara 🍣 d515ee2c43 Merged PR 668403: Upgrade Newtonsoft.Json to 13.0.1
Related work items: #1963502, #1964751
2022-06-29 20:19:45 +00:00
Qi Wang e83911086b Merged PR 658101: Add roslynanalyzers
Add roslynanalyzers call in BuildXLSdk. Csc.exe will use roslynanalyzers and produces analyze results when enableRoslynanalyzers set to true. In Compliance Build, Gurdian will run roslynanalyzers with copyLogsOnly to copy the analyze results, which will then be used for processing and break

Related work items: #1941023
2022-06-24 22:08:36 +00:00
Aleksandar Milicevic 72f694af34 Merged PR 667384: [libDetours] Don't crash if no FileAccessManifest is specified
[libDetours] Don't crash if no FileAccessManifest is specified
2022-06-22 00:11:37 +00:00
Aleksandar Milicevic 9f1e4b35ce Merged PR 667222: [Linux Sandbox] Implement a tiny bxl-env program to use instead of /usr/bin/env
[Linux Sandbox] Implement a tiny `bxl-env` program to use instead of `/usr/bin/env` because some old versions of `env` do not support the `-C` option.
2022-06-21 18:05:55 +00:00
Lance Collins 241e999120 Merged PR 666481: Add sst file creation to BlobContentLocationRegistry.
Add sst file creation to BlobContentLocationRegistry.
2022-06-20 20:17:55 +00:00
Aleksandar Milicevic ccf7741680 Merged PR 666947: [Linux Sandbox] Stop wrapping processes in a bash script
[Linux Sandbox] Stop wrapping processes in a bash script
2022-06-20 19:35:54 +00:00
Serge Mera eac32c8acc Merged PR 665942: Upgrade rocksdb to 6.10.2-b20220610.3
Upgrade rocksdb to 6.10.2-b20220610.3 (which contains the fix to include the linux .so libraries)
2022-06-10 22:12:10 +00:00
Lance Collins 4c4108b7ed Merged PR 665323: SpanWriter and merge operator support in RocksDb. This change does not actually implement a merge operator.
SpanWriter and merge operator support in RocksDb. This change does not actually implement a merge operator.
2022-06-08 19:30:25 +00:00
Michael Pysson 21431f8d0d Merged PR 664881: Update Node to 18.3
Update Node to 18.3

Related work items: #1956977
2022-06-06 18:51:47 +00:00
Serge Mera 9986922675 Merged PR 664427: Deal with the case of interactive cred provider auth for linux/mac builds
Deal with the case of interactive cred provider auth for linux/mac builds
2022-06-03 17:23:46 +00:00
Aleksandar Milicevic cd66fae5ab Merged PR 663858: Fix assertion violation in bxl_observer::resolve_path
Fix assertion violation in bxl_observer::resolve_path
2022-05-27 19:16:45 +00:00
Semih Okur 69345b51d3 Merged PR 662643: Remove netcoreapp3.1 and net5.0 2022-05-26 23:40:38 +00:00
Serge Mera 61a3155c57 Merged PR 663349: Reapply NuGet resolver changes and deal with interactive auth
Reverting the revert, plus handling interactive auth for local builds:
* build.cmd 'primes' the auth token cache by launching the specified cred provider (for internal+interactive builds)
* The cred provider used by bxl is allowed to read/write to the auth token cache. This implies dealing with the IsRetry pattern.

I'll have somebody (besides me) check that the local case works before merging.
2022-05-25 18:50:57 +00:00
Serge Mera dc0568ae3f Merged PR 663100: Revert nuget resolver changes and set LKG to 0.1.0-20220519.2 2022-05-23 19:22:28 +00:00
Serge Mera cedafaec0e Merged PR 662608: Reapply NuGet resolver schedules real pips
Same commit as before plus:
* Force check the nuget package fp on disk (apparently this was off by default because dotnet core didn't support nuget at that time) (that should fix the DFA we saw, which is a layout difference between a public vs internal package when an agent gets reused)
* Capture stderr when executing the cred provider, for better error diagnostics.

From the issues we saw, there is still one that I was not able to repro (https://dev.azure.com/mseng/Domino/_build/results?buildId=17296398&view=logs&j=cfa20e98-6997-523c-4233-f0a7302c929f&t=144c797d-20c9-5763-9672-cca1a82cd366). I'll keep trying, but the stderr should be able to tell us more if that happens again. Hopefully we can spot this before I merge this.
2022-05-20 17:27:12 +00:00
Semih Okur ba846e9b4e Merged PR 662636: Remove net462 support
Remove net462 support
2022-05-19 03:18:22 +00:00
Michael Pysson 4e9cff438c Merged PR 662122: Revert "Merged PR 661589: Reapply: nuget resolver schedules real pips"
Revert "Merged PR 661589: Reapply: nuget resolver schedules real pips"

This reverts commit 53d8270164.

This change is still causing some breaks in downstream validation
2022-05-16 21:09:46 +00:00
Serge Mera 53d8270164 Merged PR 661589: Reapply: nuget resolver schedules real pips
Reverting the revert to merge the original PR: eebb9c136a?refName=refs%2Fheads%2Fdev%2Fsmera%2Frelease509.1.1

Plus, a couple minor tweaks to make this work for linux and mac. Those changes are grouped in a separate commits so they are easier to spot.

In parallel I'm working on the rolling build cred provider configuration changes so this PR can pass.
2022-05-12 20:38:35 +00:00
Semih Okur 60b7e4cc8e Merged PR 661370: Upgrade AsyncFixer to 1.6.0 2022-05-11 17:20:13 +00:00
Iman Narasamdya 1cc3607a86 Merged PR 660987: Revert "Merged PR 659816: Nuget resolver schedules real pips
Revert "Merged PR 659816: Nuget resolver schedules real pips

Purpose: to unblock rolling builds.

This PR changes the NuGet resolver logic so instead of downloading packages at evaluation time, download pips are scheduled so the package download and extraction happens as part of the build. The high-level flow is the following:
- The nuget resolver downloads enough of each NuGet package just to understand its layout (usually <5k) + the nuspec file. This is taking ~10s on my machine. The inspection process is still using the local + bxl cache caching layer, in the same way the fully downloaded packages were using before. So hits are also possible.
- The spec generation process now generates calls into the (internal) nuget downloader SDK. The specs are still generated on disk. We can consider doing this in memory (as other resolvers do), but that can be left for a second iteration.
- A new nuget downloader tool is now deployed as part of bxl binaries, with a small DScript SDK that schedules it. The generated specs use it. Nuget.exe is not used anymore, the nuget api is used instead. This makes the whole process less prone to machine-depending state that nuget.exe reads by default and doesn't allow us to block.

Related work items: #1942615"

Reverted commit `eebb9c13`.

Related work items: #1942615
2022-05-06 22:27:59 +00:00
Serge Mera eebb9c136a Merged PR 659816: Nuget resolver schedules real pips
This PR changes the NuGet resolver logic so instead of downloading packages at evaluation time, download pips are scheduled so the package download and extraction happens as part of the build. The high-level flow is the following:
- The nuget resolver downloads enough of each NuGet package just to understand its layout (usually <5k) + the nuspec file. This is taking ~10s on my machine. The inspection process is still using the local + bxl cache caching layer, in the same way the fully downloaded packages were using before. So hits are also possible.
- The spec generation process now generates calls into the (internal) nuget downloader SDK. The specs are still generated on disk. We can consider doing this in memory (as other resolvers do), but that can be left for a second iteration.
- A new nuget downloader tool is now deployed as part of bxl binaries, with a small DScript SDK that schedules it. The generated specs use it. Nuget.exe is not used anymore, the nuget api is used instead. This makes the whole process less prone to machine-depending state that nuget.exe reads by default and doesn't allow us to block.

Related work items: #1942615
2022-05-05 19:02:49 +00:00
Sergey Tepliakov c7d7d1a615 Merged PR 659556: Update System.Threading.Channels to 6.0.0
Update System.Threading.Channels to 6.0.0
2022-05-02 18:22:56 +00:00
Michael Pysson f66a2221c7 Merged PR 658769: Update node to v18.0
Update node to v18.0 to address a few Component Governance issues
2022-04-27 18:37:29 +00:00
Aleksandar Milicevic 142d094076 Merged PR 658918: Update Bond.CSharp.{osx,linux}-x64 to version 10.0.0
Update Bond.CSharp.{osx,linux}-x64 to version 10.0.0
2022-04-22 23:58:29 +00:00
Michael Pysson 65af571f93 Merged PR 657963: Update Windows to bond 10.0 package
This only updates the Windows packages. The macOS and linux packages need to be created by building from source. We do not perform distributed builds on those platforms so I don't expect a compatibility issue with this change. We are planning to upgrade everything to protobuf anyway.

Related work items: #1938788
2022-04-15 22:34:12 +00:00
Aleksandar Milicevic 359b19edbf Merged PR 656431: Linux pipeline
[Linux Pipeline](https://dev.azure.com/mseng/Domino/_build?definitionId=13506&_a=summary):
1. build "release dev" bits using LKG
2. use the dev bits to build `/f:tag='test'` (i.e., build and run all unit tests)

Some pipeline runs:
- [clean](https://dev.azure.com/mseng/Domino/_build/results?buildId=17116401&view=results)
- [cached](https://dev.azure.com/mseng/Domino/_build/results?buildId=17116621&view=results)
- [latest](https://dev.azure.com/mseng/Domino/_build/results?buildId=17118131&view=results)

Changes:
- fix SDK test lkg files to use consistent filename capitalization
- on Windows and macOS use case-insensitive string comparison when comparing SDK tests' lkg files with the actual output
- untrack more stuff when running unit tests
- change the Linux sandbox to ignore some bogus directory deletion attempts
- in multiple places change `IsMacOS` to `IsUnixOS`
- skip a few unit tests on Linux (and leave TODOs)
2022-04-13 01:03:25 +00:00
Aleksandar Milicevic 2e353462b4 Merged PR 656681: [LinuxSandbox] Honor 'MonitorChildProcesses'
This will be needed for running BuildXL unit tests without sandboxing.
2022-04-08 00:21:15 +00:00
Aleksandar Milicevic 1fe619f579 Merged PR 656279: Initial steps toward selfhosting on Linux
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.
2022-04-05 19:44:47 +00:00
Sergey Tepliakov 8247520e16 Merged PR 654382: Update Microsoft.Azure.Amqp to v. 2.5.10
Update Microsoft.Azure.Amqp to v. 2.5.10
2022-03-22 18:54:50 +00:00
Semih Okur 551664adb5 Merged PR 653351: Enable .net6 by default 2022-03-17 15:42:38 +00:00
Sergey Tepliakov de75fa21e5 Merged PR 649621: Update System.IO.Pipelines to version 6.0.2
Update System.IO.Pipelines to version 6.0.2
2022-02-16 01:58:22 +00:00
Julian Bayardo 39727b9c15 Merged PR 647634: Upgrade RocksDbSharp
Addresses an issue with loading the zstd shared object file on Linux
2022-02-05 04:07:57 +00:00
Michael Pysson a45aa7fef2 Merged PR 647664: Remove unused Nerdbank.FullDuplexStream dependency
Everything builds fine and the locally build vscode package seems to work fine without it
2022-02-03 18:45:01 +00:00
Michael Pysson cb8e118eba Merged PR 647293: Update SharpZipLib to 1.3.3
Update SharpZipLib to 1.3.3

Related work items: #1913257
2022-02-02 00:51:10 +00:00
Julian Bayardo 6e09286506 Merged PR 647200: Update RocksDbSharp
Update RocksDbSharp to .6.10.2-b20220201.2.DRAFT
2022-02-01 20:41:23 +00:00
Lance Collins 282c021866 Merged PR 646109: Add blob storage emulator for cache tests.
Add blob storage emulator for cache tests.
2022-01-26 01:33:06 +00:00
Sergey Tepliakov 3bf3567c68 Merged PR 644729: Update .net6 sdk to 6.0.1 version
Update .NET 6 SDK to pick up the latest version that has a fix with UnobservedTaskException beein generated from SemaphoreSlim.
2022-01-18 21:59:03 +00:00
Julian Bayardo 005a8edd78 Merged PR 639385: Replace deprecated Redis-x64 package with a drop-in replacement (MemuraiDeveloper)
Redis-x64 was flagged by CG because it is way too out of date. This PR replaces it with a drop-in replacement to comply with CG alerts.
2021-12-06 19:11:17 +00:00
Semih Okur d333c78f30 Merged PR 640216: Node upgrade to v17.2.0
Component governance still complains about the NPM in node v17.1.0. I upgrade the node to v17.2.0, which has just released yesterday. That one contains the npm 1.8.4.
2021-12-04 00:17:21 +00:00
Pasindu Gunasekara 🍣 988bb1954f Merged PR 639286: Add SBOM packages to SBOM generation step in DropDaemon
- Calls the new Microsoft.Sbom.Adapters library to get a list of SBOMPackage objects from the component detection output.

Related work items: #1882259
2021-12-01 22:11:29 +00:00
Semih Okur 4ce2027aa2 Merged PR 639692: Node upgrade to v17.1.0
Related work items: #1896575
2021-11-29 18:50:41 +00:00
Sergey Tepliakov 790d0b147d Merged PR 639345: Enable C# 10 by updating the copmiler to the latest one
Enable C# 10 by updating the copmiler to the latest one
2021-11-22 23:50:50 +00:00
Semih Okur dd1b2a288b Merged PR 638939: Upgrade node to the latest LTS version: 16.13.0
Upgrade node to the latest LTS version: 16.13.0
2021-11-19 23:59:17 +00:00
Sergey Tepliakov 40c9f163ba Merged PR 633580: Add .net6.0 support
This PR adds support of .net6 (rc version for now) to bxl codebase.
2021-11-18 21:47:42 +00:00
Marcelo Lynch 🧉 e0177cf78b Merged PR 637924: Bump SBOM API version and add logging
This version fixes a bug in the generation issue. Add a logging implementation wrapping the daemon logger.

Related work items: #1882256
2021-11-12 01:52:08 +00:00
Sergey Tepliakov ce2dd05b98 Merged PR 634795: Using C# Source Generators for generating logs in Bxl
The main work was done by @<Pasindu Gunasekara 🍣> and I was integrating the new approach into our sdk.

This PR adds `LogGenerator` project that provides C# `SourceGenerator` for creating logs.

The benefit of this approach is that we don't need another compiler invocation and separate dlls are not produced if the project has generated logs. Instead those logs are produced at one step. So it should reduce the size of the output directories and speed up the self host build.

We don't change the way we generate logs, instead the solution is based on the existing log gen logic but it is called by the comipler.

**Considerations**
To make the transition simpler we now support two ways of generating logs via `generateLogs` argument and `generateLogsInProc`. The first one is the old one and the second one is the new one.

Also there is an environment variable that allows switching the mode globally from the old one to the new one.
2021-11-11 21:46:35 +00:00
Marcelo Lynch 🧉 fd879b0886 Merged PR 635704: Use the new common API to generate SBOMs from the DropDaemon 2021-11-11 19:33:21 +00:00
Marcelo Lynch 🧉 a37db4c037 Merged PR 637192: Reinstate change: add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildXL
Revert the revert and remove problematic dependencies.
2021-11-08 18:59:59 +00:00
Oleksii Kononenko 9de4b4915a Merged PR 637024: Revert "Merged PR 636560: Add a helper library to extract SBOM Metadata from...
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
2021-11-05 20:06:27 +00:00
Marcelo Lynch 🧉 c7a683ce3f 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
2021-11-04 19:28:00 +00:00
Serge Mera 7d0643d739 Merged PR 636601: Update DScript VSCode plugin to the latest and greatest
No intended changes in functionality. This PR snaps to the latest vscode-related libraries across the board.

Related work items: #1887148
2021-11-03 16:39:52 +00:00
Sergey Tepliakov 7e0366c2c1 Merged PR 633367: Remove SQLite from Bxl sdk
Remove SQLite from Bxl sdk
2021-11-02 17:31:50 +00:00
Sergey Tepliakov ff8315980b Merged PR 635626: Upload mdm metrics when the launcher is used
Upload mdm metrics when the launcher is used

Related work items: #1881914
2021-11-01 22:14:46 +00:00
Rijul Luman c655a42ec4 Merged PR 634036: Upgrade DotNet 3 Runtime to 3.1.19
Related work items: #1883444
2021-10-19 17:27:01 +00:00
Rijul Luman 2ec3e2207b Merged PR 630596: Use CloudBuild's ESRP Sign Tool to sign BuildXL's Binaries
Related work items: #1859885
2021-10-06 16:20:13 +00:00
Michael Pysson 🍕 c18e2e33a1 Merged PR 631840: Get rid of warning for .cloudbuild config files not under a mount
This should eliminate this warning in our various validation builds

`The file 'd:\dbs\el\bxlint\.CloudBuild\DominoDropConfig.json' is being used as a source file, but is not under a defined mountpoint. This file is thus 'untracked', and changes to it will not impact incremental builds`
2021-10-06 03:03:52 +00:00
Aleksandar Milicevic 06a3cd2707 Merged PR 632426: Update download links for .NET 5 runtime
Update download links for .NET 5 runtime
2021-10-04 23:20:39 +00:00
Oleksii Kononenko 2062b8dae8 Merged PR 628067: Update Node to 16.8.0
Update Node to 16.8.0

Related work items: #1866901, #1866900
2021-09-01 02:33:57 +00:00
Aleksandar Milicevic 36258a3733 Merged PR 625600: [LinuxSandbox] Break symlink loops in resolve_path
Related work items: #1867644, #1867643
2021-08-12 22:40:34 +00:00
Julian Bayardo 9ba93bf1e2 Merged PR 623804: Add title prefix and cap severity ICMs, fix assembly reference issues in Monitor 2021-08-10 23:26:50 +00:00
Pasindu Gunasekara 68a3568ca3 Merged PR 625309: Update Node to v16.6.1
Related work items: #1865701
2021-08-10 18:29:25 +00:00
Semih Okur 32abc4eafc Merged PR 621783: Support for encryption and authentication in distributed builds
Related work items: #1841751, #1842814
2021-07-24 02:56:39 +00:00
Julian Bayardo aa3ea46766 Merged PR 621292: RocksDb Spanification
This also removes all of Roxis' codebase, since we haven't used it for a long time now.
2021-07-16 20:01:31 +00:00
Pasindu Gunasekara 8d04598d33 Merged PR 616796: [Github Issue] Building bxl fails with missing VisualCppTools NuGet package
- 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
2021-07-14 21:21:37 +00:00
Aleksandar Milicevic 7b4dfdf2bb Merged PR 619968: [LinuxSandbox] Compile libDetours against glibc 2.17
This makes us compatible with a broader range of Linux distros.
2021-06-28 21:22:29 +00:00
Aleksandar Milicevic 5a9e12b0b1 Merged PR 618005: Update RocksDb packages
The new packages contain updated native binaries for Linux which are compatible with a broader range of Linux distros.

The RocksDB package was updated in !617830
2021-06-28 21:15:27 +00:00
Kevin Bazan Williams c50a070123 Merged PR 619558: EventHub auth via Azure Managed Identity
The core change is in `AzureEventHubClient.cs`, where we can now authenticate with an EventHub instance using a Managed Identity.

Related work items: #1826212, #1827238
2021-06-25 22:36:57 +00:00
Julian Bayardo 507737ce04 Merged PR 619064: Address package resolution conflict for ProtobufNet 2021-06-21 22:19:32 +00:00
Aleksandar Milicevic b4bd405fe4 Merged PR 617224: [Linux][Detours] Reset file descriptor table entry upon 'fclose'
Related work items: #1849262
2021-06-09 16:29:47 +00:00
Aleksandar Milicevic 38d8994abe Merged PR 612817: [LinuxSandbox] Don't report 'Read' when file is truncated when opened
Also fix `report_access_at` so that if pathname is an absolute path it is not concatenated to the current directory.
2021-05-14 00:37:31 +00:00
Sergey Tepliakov 133d7d65b5 Merged PR 610715: Add analyzers support for bxl sdk
Expose the analyzers support from the Bxl sdk.

Bxl supported Roslyn analyzers for a long time, but the list of supported analyzers was built in into Bxl Sdk.

This PR exposes `analyzers` properties and every project may add extra analyzers if needed:

```
@@public
export const dll = BuildXLSdk.library({
        assemblyName: "BuildXL.Cache.ContentStore.Distributed",
        sources: globR(d`.`,"*.cs"),
        analyzers: [importFrom("protobuf-net.BuildTools").pkg]});
```
2021-04-28 20:15:03 +00:00
Iman Narasamdya 9a39a17c69 Merged PR 609582: [Detours]: Move or delete directory -- ensure path has NT long prefix when it is longer than MAX_PATH
When moving or removing directory, Detours needs to enumerate it to report file writes on its members. During enumeration the path can go beyond MAX_PATH.

Tested on failed QuickBuild repo.

Related work items: #1836781
2021-04-23 18:34:47 +00:00
Julian Bayardo bd0bf3007d Merged PR 609597: Spanify RocksDb usage 2021-04-22 22:43:52 +00:00
Juan Carlos Guzman Islas 1b3fe590e1 Merged PR 608224: Upgrade System.Runtime.CompilerServices.Unsafe to 5.0.0
Upgrade System.Runtime.CompilerServices.Unsafe to 5.0.0
2021-04-14 17:26:29 +00:00
Aleksandar Milicevic 4ae372ea90 Merged PR 607317: [LinuxSandbox] Implement a file descriptor table
To get an absolute path for a file descriptor, we used to call `readlink("/proc/self/fd/{fd}")`.  That's perfectly fine and still the best way to do it; the problem is that it is slow.  (for example, it is not uncommon that a C compiler calls `putc` millions of times to produce a build output).

This PR implements a file descriptor table where where a mapping from a file descriptor to an absolute path is cached.

A new entry is computed and inserted into the table whenever a path for a file descriptor is needed but it hasn't already been computed.

Because file descriptors may be reused for different files over time, whenever a file descriptor is closed (i.e., the `close` syscall is intercepted) the corresponding entry in the table is invalidated.

Related work items: #1833259
2021-04-08 18:43:53 +00:00
Oleksii Kononenko 223d816b16 Merged PR 605157: Resolve component governance alert
Resolve component governance alert

Related work items: #1829177
2021-03-26 02:07:40 +00:00
Aleksandar Milicevic 929fa77f3a Merged PR 603931: Publish linux runtime v0.0.43
Includes John's recent changes.
2021-03-23 04:14:58 +00:00
Serge Mera 8ae0d8e6fc Merged PR 602764: Fix reparse point cache invalidation logic
Consider the following scenario:

1. Absent probe on path A/B/C/file.txt
2. Reparse point created on C in path A/B/C, where now A/B/C -> D/E/F and D/E/F/file.txt exists.
3. Present probe on path A/B/C/file.txt (by virtue of 2)

Step 1) populates the reparse point cache with A/B/C/file.txt as not needing resolution (since the path is absent). 2) should invalidate A/B/C, and now A/B/C does need resolution because C is a reparse point. But A/B/C/file.txt does not get invalidated, and therefore when 3) happens, A/B/C/file.txt is not resolved. This manifests in a cache miss when file.txt is a produced output, since we don't compensate for the absence of the file on cache lookup when the unresolved path is stored.

This PR adds:
* A conservative invalidation on reparse point creation (we don't detour the ioctl call, but we see a handle being opened for write and reparse point flags as the immediately previous operation). We invalidate the path in that case to stay on the safe side.
* A tracking mechanism for all descendants of a given path that the reparse point cache knows about. When invalidating a path, all descendants stored in the cache are also invalidated. This accounts for the above scenario, where when C is turned into a reparse point, both A/B/C and A/B/C/file.txt are invalidated
* A lightweight C++ unit test infrastructure (using boost) with unit tests for the new structure.

Related work items: #1824112
2021-03-16 07:29:35 +00:00
Sergey Tepliakov e6dca5ae4f Merged PR 599867: Downgrading RuntimeContracts to 0.3.0 to avoid build failures
Downgrading RuntimeContracts to 0.3.0 to avoid build failures
2021-02-25 23:14:57 +00:00
Julian Bayardo 7d8aa1a67e Merged PR 593608: Upgrade StackExchange.Redis to 2.2.4
This would fix this issue that bit us in production a couple months ago: d28a43a139
2021-02-25 18:37:23 +00:00
Sergey Tepliakov fbb1499a8c Merged PR 599486: Observe and Dispose CancellationTokenRegistration
This PR updates the version of ErrorProne.NET CoreAnalyzers that now detects an unobserved calls to `CancellationToken.Register`.

It is important to observe and dispose the `CancellationTokenRegistration` instance when they obtained from non-local `CancellationToken`s because otherwise we may ended up with a memory leak when a longer-lived object will hold references to a transient closures created by the callbacks provided to `CancellationToken.Register`.
2021-02-24 23:02:04 +00:00
Sergey Tepliakov 7bec6b4315 Merged PR 599428: Update RuntimeContracts and RuntimeContracts.Analyzer
Update RuntimeContracts and RuntimeContracts.Analyzer for performance reasons.
2021-02-24 00:13:26 +00:00
Sergey Tepliakov e645f01d98 Merged PR 599075: Update NLog to 4.7.7 and use built-in prop to avoid excessive allocations
It seems that the hack I've added to avoid allocations is not needed.

One of the NLog maintainers opened a bug: https://github.com/microsoft/BuildXL/issues/1283 with the explanation of the right solution and this PR uses the proposed solution instead of relying on a custom target I've created previously.
2021-02-23 22:57:22 +00:00
Semih Okur 3d57a276ff Merged PR 594337: Ugrade AsyncFixer to v1.5.1 and fix the new async cases
In my little spare time, I found a chance to improve AsyncFixer not to forget my coding skills. Here are changes needed to upgrade to v1.5.1:
- Fixed false negatives, especially for 01:UnnecessaryAsync. That's why I had to remove many redundant async/await keywords. It is always faster to directly return the Task. We rarely need async/await keywords in redundant cases due to some special exception handling. However, we have suppressed "01:UnnecessaryAsync" in only one case at our codebase so far.
- Fixed false positives for other analyzers, especially for 02:BlockingCallInsideAsync. I removed many suppressions, which made me pretty happy.

I am still OOF, but I did not want to postpone these changes. I have also open-sourced AsyncFixer. Feel free to contribute: https://github.com/semihokur/asyncfixer

@<Sergey Tepliakov>, there are several cases where we use async/await keywords with the new using statement syntax. You reported that at some point as far as I remember. I improved AsyncFixer to detect cases like below so that it does not suggest removing async/await

```
async Task foo()
{
    using var stream = new MemoryStream();
    int streamOperation()
    {
        return stream.Read(null);
    }

    Task t = Task.Run(() => streamOperation());
    await t;
}
```

@<John Erickson>, could you please point me to the artifact services projects where AsyncFixer is enabled? I can upgrade AsyncFixer in those projects as well.
2021-01-28 01:27:14 +00:00
Sergey Tepliakov cc0dece14c Merged PR 592575: Add source generators to bxl
This PR adds a facility to bxl sdk to use source generators and also it adds one source generator that can generate struct-based record-like behavior as well as two other generators that can:
* Generate ToString implementation similar to records ToString behavior but with the ability to fine tune the final ToString impl.
* Generate equality members.

Related work items: #1805964
2021-01-15 18:05:27 +00:00
Rijul Luman 25d9e283b7 Merged PR 592544: Consuming Build Manifest Generation Library and Performance fixes
Consuming Build Manifest Generation Library and Performance fixes

Related work items: #1794240, #1803820
2021-01-13 19:14:44 +00:00
Juan Carlos Guzman Islas 3d30730250 Merged PR 592750: Remove TransientFaultHandling completely
Remove TransientFaultHandling completely. Polly has been tested for a while now and this should simplify our dependencies.
The only trace of it left is that ADO packages depend on it.

Related work items: #1807652
2021-01-12 22:13:03 +00:00
Iman Narasamdya eed332d697 Merged PR 592553: Upgrade ref assemblies version
Upgrade ref assemblies version
2021-01-11 22:56:55 +00:00
Rijul Luman 5ec0c179ce Merged PR 592288: Revert 'Consuming Microsoft.ManifestGenerator nuget from BXL'
Reverts !589728

Related work items: #1794240
2021-01-08 20:27:44 +00:00
Rijul Luman 713fbe1dc7 Merged PR 592266: Revert 'Upgrade Microsoft.ManifestGenerator to 0.1.3'
Upgrade Microsoft.ManifestGenerator to 0.1.3

Reverts !592159
2021-01-08 19:27:12 +00:00
Rijul Luman 3021feb99c Merged PR 592159: Upgrade Microsoft.ManifestGenerator to 0.1.3
Upgrade Microsoft.ManifestGenerator to 0.1.3
2021-01-08 02:26:52 +00:00
Rijul Luman c0cafd9d52 Merged PR 589728: Consuming Microsoft.ManifestGenerator nuget from BXL
Related work items: #1794240
2020-12-28 21:54:25 +00:00
Serge Mera aac7c2ae4b Merged PR 588852: Upgrade VBCSCompilerLogger to use the latest code analysis libraries and incorporate the new switches
This change implies moving the VBCSCompilerLogger to net5.0, even though BuildXL codebase is not completely there yet.

Related work items: #1799988
2020-12-10 00:44:46 +00:00
Nora Huang 0fa99c3a6b Merged PR 587278: Update nodejs version for rush test.
Update nodejs version for rush test.

Related work items: #1794623
2020-12-01 20:42:06 +00:00
Aleksandar Milicevic d8bdaaccb8 Merged PR 586774: Update NodeJS to version 15.2.1 2020-11-25 23:34:06 +00:00
Juan Carlos Guzman Islas 889440d387 Merged PR 586105: Add IcM client to the monitor
Add Icm client to the monitor

Related work items: #1762976
2020-11-24 00:22:26 +00:00
Sergey Tepliakov d71d8b9b64 Merged PR 585237: Add support for NET 5
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.
2020-11-19 00:25:17 +00:00
Aleksandar Milicevic 818015320b Merged PR 585498: [LinuxSandbox] Report new process when libDetours.so is dynamically loaded
When a process is executed in a root jail, the root process under `chroot` is not being reported without this change.
2020-11-18 23:23:18 +00:00
Julian Bayardo 997dd18ca5 Merged PR 583301: Add compression support to RocksDb
This adds support for LZ4, Zlib and Zstd compression to our RocksDb binaries on Windows. Current compression support is:

- Linux supports lz4 and snappy
- Mac supports lz4 and snappy
- Windows supports lz4, zlib, zstd and snappy

We can build in more if we need. I only added these to the Windows binaries because it's what we'll be using in the datacenter.

Related work items: #1790176
2020-11-18 00:44:50 +00:00
Sergey Tepliakov d95dcc758e Merged PR 584959: Update csc to 3.7.0 and fix nullability warnings
This is the second PR that is required to make the final PR for adding .net5 support simpler.

The PR updates the compiler to a 3.7 version (this version does not support C# 9 yet), and fixes a bunch of nullability warnings that appear after the upgrade to 3.7 and some of them will be visible only when targeting .net 5.

This is another low risk PR.
2020-11-13 23:31:25 +00:00
Juan Carlos Guzman Islas beb44b2b0d Merged PR 584354: Add Polly as a TransientFaultHandling substitute
There is a desire to move to Polly, since TransientFaultHandling is not compatible with regular NuGet when using netstandard.

This adds the capability to put this under a flag to start testing the transition.

Related work items: #1791278
2020-11-11 20:07:23 +00:00
Juan Carlos Guzman Islas 574d0aea73 Merged PR 581813: Test ContentStoreApp.exe through unit tests
Test ContentStoreApp.exe through unit tests
2020-10-28 20:49:58 +00:00
Aleksandar Milicevic d363f6918e Merged PR 578304: [LinuxSandbox] Compile utils.c with gcc instead of g++
[LinuxSandbox] Compile utils.c with gcc instead of g++
2020-10-07 03:12:00 +00:00
Nora Huang 976c35591f Merged PR 577126: Add unit test for Linux sandbox utils.
Add unit test for Linux sandbox utils.

Related work items: #1778032
2020-10-01 07:52:21 +00:00
Aleksandar Milicevic f5e86cf5d4 Merged PR 576997: Fix ensure_env_value_with_log: it shouldn't crash when BUILDXL_LOG_PATH is not set 2020-09-29 19:05:11 +00:00