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

195 Коммитов

Автор SHA1 Сообщение Дата
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