Microsoft Build Accelerator
Перейти к файлу
Rijul Luman 8d8f3474f7 Merged PR 532412: Convert to user-error: CTMIS due to 'access denied' errors
- Some process interacts with motif.pdb and that access is whitelisted. So BuildXL isn't tracking for dependency order or concurrent writes
- Some other process concurrently needs this file materialized from the cache. That materialization cannot happen because of the concurrent access
- We bucket this build as a failure with internal error bucket: "PipMaterializeDependenciesFromCacheFailure". It is true that the engine failed to materialize failures from the cache, but the reason was not the cache. Instead it was that the operation to delete the file prior to replaying it from cache failed

So we are differentiating the cache issues from this error category which are caused by user defined race conditions so we can triage them away in our analysis.

Related work items: #1657589
2020-02-10 21:15:46 +00:00
.config Flaky Test Management Service: Updating flaky tests 2020-02-05 21:39:25 +00:00
.vscode Recommend the BuildXL extension when people look for extensions (#782) 2019-08-21 14:41:03 -07:00
Documentation Merged PR 532751: Fix the landing page of documentation 2020-02-07 22:04:32 +00:00
Examples Merged PR 529793: Revamp the build-with-casaas.sh script for building the Example build CASaaS on 2020-01-18 05:07:56 +00:00
Private Merged PR 531384: Retry failed pip on different worker 2020-01-29 19:02:17 +00:00
Public Merged PR 532412: Convert to user-error: CTMIS due to 'access denied' errors 2020-02-10 21:15:46 +00:00
Shared Merged PR 534346: Make -vs and -vsnew route to netcore qualifier for solution generation 2020-02-10 21:02:27 +00:00
cg Merged PR 530288: CASaaS log to Kusto 2020-02-07 00:10:16 +00:00
third_party Merged PR 529759: Update XNU security headers 2020-01-20 14:24:46 +00:00
.editorconfig Improve cached graph log readability (#1217) 2019-11-19 09:30:43 -08:00
.gitattributes Initial commit for the sandbox client and server 2018-11-06 15:01:51 -08:00
.gitignore VS solution generator: support for multiple target frameworks (#853) 2019-09-10 13:10:51 -07:00
BuildCache.cmd Initial sync 2019-03-28 15:35:49 -07:00
BuildCacheDefault.json Initial sync 2019-03-28 15:35:49 -07:00
BuildCacheDefaultNetCore.json Initial sync 2019-03-28 15:35:49 -07:00
BuildCacheOverride.json Initial sync 2019-03-28 15:35:49 -07:00
CODEOWNERS Adding Code owners (#133) 2019-04-11 19:23:06 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md document (#765) 2019-08-19 16:56:06 -07:00
CONTRIBUTING.md Documentation updates (#1071) 2019-10-22 16:49:55 -07:00
CreatePr.cmd Merged PR 521990: Update CreatePr Script to work with Azure DevOps again 2019-12-02 20:02:16 +00:00
LICENSE Restoring licence file 2019-04-09 16:12:01 -07:00
README.md Fix a typo in README.md 2019-11-27 22:10:53 +00:00
RunCheckInTests-Test.cmd Initial sync 2019-03-28 15:35:49 -07:00
RunCheckInTests.cmd Merged PR 527770: Enable shared compilation by default for bxl self-host 2020-01-09 15:01:32 +00:00
RunCheckInTestsWithPAT.ps1 Nuget Credential Provider Auth Fix (#1087) 2019-10-30 11:34:42 -07:00
SECURITY.md Add Security.md document (#763) 2019-08-19 15:47:52 -07:00
SlimBuildForMacTests.cmd Initial sync 2019-03-28 15:35:49 -07:00
buddy.cmd Merged PR 523227: Reviving buddy build for BuildXL selfhost 2019-12-09 22:37:52 +00:00
bxl.cmd Initial sync 2019-03-28 15:35:49 -07:00
bxl.sh Merged PR 529582: Don't hardcode /sandboxKind:macOsKext for internal builds 2020-01-17 15:45:05 +00:00
clean.bat Initial sync 2019-03-28 15:35:49 -07:00
config.dsc Merged PR 530288: CASaaS log to Kusto 2020-02-07 00:10:16 +00:00
config.microsoftInternal.dsc Merged PR 532035: QTest: Update QTest version to plumb Gradle Runner 2020-01-30 21:21:07 +00:00
config.nuget.aspNetCore.dsc Merged PR 532175: Re-upgrade GRPC and add fix to DNS resolution delay 2020-01-30 16:18:57 +00:00
config.nuget.dotnetcore.dsc Merged PR 532175: Re-upgrade GRPC and add fix to DNS resolution delay 2020-01-30 16:18:57 +00:00
config.nuget.grpc.dsc Merged PR 532175: Re-upgrade GRPC and add fix to DNS resolution delay 2020-01-30 16:18:57 +00:00
config.nuget.vssdk.dsc Merged PR 524279: Remove all nuget workarounds that are no longer needed 2019-12-13 01:03:27 +00:00
domino.cmd Initial sync 2019-03-28 15:35:49 -07:00
drop.cmd Optimizations for office mularchy builds: (#957) 2019-10-01 07:29:08 -07:00
dropout.cmd Initial sync 2019-03-28 15:35:49 -07:00
macos.mounts.dsc Initial sync 2019-03-28 15:35:49 -07:00

README.md

Microsoft Build Accelerator

BuildXL Icon

Introduction

Build Accelerator, BuildXL for short, is a build engine originally developed for large internal teams at Microsoft, and owned by the Tools for Software Engineers team, part of the Microsoft One Engineering System internal engineering group. Internally at Microsoft, BuildXL runs 30,000+ builds per day on monorepo codebases up to a half-terabyte in size with a half-million process executions per build, using distribution to thousands of data center machines and petabytes of source code, package, and build output caching. Thousands of developers use BuildXL on their desktops for faster builds even on mega-sized codebases.

BuildXL accelerates multiple build languages, including:

  • MSBuild (using new features under development in MSBuild 16 which will ship in future versions of Visual Studio 2019 and the .NET Core SDK)
  • CMake (under development)
  • Its own internal scripting language, DScript, an experimental TypeScript based format used as an intermediate language by a small number of teams inside Microsoft

BuildXL has a command-line interface. There are currently no plans to integrate it into Visual Studio. The project is open source in the spirit of transparency of our engineering system. You may find our technology useful if you face similar issues of scale. Note that BuildXL is not intended as a replacement for MSBuild or to indicate any future direction of build languages from Microsoft.

Documentation

The BuildXL documentation main page is here.

Examples and Demos

See the Examples/ folder for basic project examples. See the Demos page for information about various technical demos like using the process sandboxing code.

Building the Code

Build Status - Azure DevOps Pipelines

Build status

Command Line Build and Test

See the Developer Guide for instructions on compiling BuildXL.

Contributing

See CONTRIBUTING.