Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions BUILDGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,23 +66,32 @@ The following build targets are defined in `build.proj`:
|Target|Description|
|-|-|
|`BuildAbstractions`|Restore and build the Abstractions package.|
|`BuildAllConfigurations`|Default target. Builds the .NET Framework and .NET drivers for all target frameworks and operating systems.|
|`BuildAkvProvider`|Builds the Azure Key Vault Provider package for all supported platforms.|
|`BuildAllPackages`|Builds all packages. Intended for reference type `Project` only.|
|`BuildAzure`|Restore and build the Azure package.|
|`BuildLogging`|Restore and build the Logging package.|
|`BuildNetCore`|Builds the .NET driver for all target frameworks.|
|`BuildNetCoreAllOS`|Builds the .NET driver for all target frameworks and operating systems.|
|`BuildNetCoreUnix`|Builds the .NET driver for Unix.|
|`BuildNetFx`|Builds the .NET Framework driver for all target frameworks.|
|`BuildSqlClient`|Build the driver for all target frameworks.|
|`BuildSqlClient`|Restore and build the SqlClient package. Requires `BuildTools` first.|
|`BuildSqlServer`|Restore and build the SqlServer package.|
|`BuildTools`|Build tools required by other targets.|
|`Clean`|Cleans all generated files.|
|`PackAbstractions`|Pack the Abstractions NuGet package into `packages/`. Requires `BuildAbstractions` first.|
|`PackAkvProvider`|Pack the AKV Provider NuGet package into `packages/`. Requires `BuildAkvProvider` first.|
|`PackAllPackages`|Pack all packages into `packages/`. Requires all build targets to have run first. Windows only.|
|`PackAzure`|Pack the Azure NuGet package into `packages/`. Requires `BuildAzure` first.|
|`PackLogging`|Pack the Logging NuGet package into `packages/`. Requires `BuildLogging` first.|
|`PackSqlClient`|Pack the SqlClient NuGet package into `packages/`. Requires `BuildSqlClient` first. Windows only.|
|`PackSqlServer`|Pack the SqlServer NuGet package into `packages/`. Requires `BuildSqlServer` first.|
|`Restore`|Restores NuGet packages.|
|`RunTests`|Runs the unit, functional, and manual tests for the .NET Framework and .NET drivers|
|`RunUnitTests`|Runs just the unit tests for the .NET Framework and .NET drivers|
|`RunFunctionalTests`|Runs just the functional tests for the .NET Framework and .NET drivers|
|`RunManualTests`|Runs just the manual tests for the .NET Framework and .NET drivers|
|`BuildAkv`|Builds the Azure Key Vault Provider package for all supported platforms.|

The default build targets are `BuildTools` and `BuildAllPackages`.

### Parameters

Expand All @@ -92,7 +101,7 @@ build:
|Name|Supported Values|Default|Description|
|-|-|-|-|
|`Configuration`|`Debug`, `Release`|`Debug`|Sets the release configuration.|
|`OSGroup`|`Unix`, `Windows_NT`, `AnyOS`|typically defaults to the client system's OS, unless using `BuildAllConfigurations` or an `AnyOS` specific target|The operating system to target.|
|`OSGroup`|`Unix`, `Windows_NT`, `AnyOS`|typically defaults to the client system's OS, unless using an `AnyOS` specific target|The operating system to target.|
|`Platform`|`AnyCPU`, `x86`, `x64`, `ARM`, `ARM64`|`AnyCPU`|May only be set when using package reference type or running tests.|
|`TestSet`|`1`, `2`, `3`, `AE`, or any combination thereof|`''`|Build or run a subset of the manual tests. Omit (default) to run all tests.|
|`DotnetPath`|Absolute file path to an installed `dotnet` version.|The system default specified by the path variable|Set to run tests using a specific dotnet version (e.g. C:\net6-win-x86\)|
Expand Down Expand Up @@ -199,8 +208,7 @@ dotnet build -t:BuildAbstractions,PackAbstractions -p:ReferenceType=Package
dotnet build -t:BuildAzure,PackAzure -p:ReferenceType=Package
dotnet build -t:BuildSqlClient -p:ReferenceType=Package
dotnet build -t:GenerateMdsPackage
dotnet build -t:BuildAKVNetCore -p:ReferenceType=Package
dotnet build -t:GenerateAkvPackage
dotnet build -t:BuildAkvProvider,PackAkvProvider -p:ReferenceType=Package
```

The above will build the MDS and AKV components, place their NuGet packages into
Expand Down
8 changes: 7 additions & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<!--
Transitive pinning promotes every transitive dependency that has a PackageVersion entry to a
direct dependency. That is useful for applications, but all projects in this repo produce
library NuGet packages. Enabling it here would cause each package to declare its entire
transitive closure as direct dependencies in its .nuspec, over-constraining consumers.
-->
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>

<!-- ===================================================================== -->
Expand Down
Loading
Loading