-
Notifications
You must be signed in to change notification settings - Fork 322
DRAFT Pack experiment #3985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DRAFT Pack experiment #3985
Changes from all commits
9f38b2e
26e899e
ae5a1a9
e2ca90e
e6687ff
52cf1df
c9e4bf5
4b487fa
d6f1625
cdfb309
24a9397
ef0dce3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,29 +1,184 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <?xml version="1.0" encoding="utf-8"?> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Build Parameters ============================================== --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Imports ========================================================= --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Import Project="src/Directory.Build.props" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Build Parameters ================================================ --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Configuration: Which build configuration to build --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Allowed values: Debug, Release --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Default value: Debug --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Configuration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This documentation of parameters that callers may set to influence the build is great. Is there a way to have them emitted via a Just a thought if you're feeling ambitious 😄 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: All targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Which build configuration to build | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: Debug | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allowed values: Debug, Release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm pretty sure properties specified on the command line are read-only, so if someone says: Then nothing in the project files can clobber that. The same goes for properties supplied via the Since this is a top-level file that isn't included anywhere else, do we still need these conditions checking for empty values? It should be safe to just say this, I think? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- DotnetPath: Path to folder containing the `dotnet` binary. Override this if a --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- specific version (eg, x86) is required. Otherwise, this defaults to using the --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- dotnet binary in the PATH variable. The provided path should end with a `\` (or --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- `/`) character. Eg. C:\x86\ --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetPath Condition="'$(DotnetPath)' == ''"></DotnetPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DotnetPath | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: All targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Path to folder containing the `dotnet` binary. Override this if a specific | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| version (eg, x86) is required. Otherwise, this defaults to using the dotnet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| binary in the PATH variable. The provided path should end with a `\` (or `/`) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| character. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: [blank] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Example: C:\x86\ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetPath Condition="'$(DotnetPath)' == ''" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What's the purpose of defining this to be empty if it's already empty? Same for some of the properties below. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MdsPackageVersion | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: TestMdsFunctional, TestMdsManual targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Specifies what version of the Microsoft.Data.SqlClient package to run tests | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| against. If not specified, the version defined in Versions.props is used. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This argument only has effect if the ReferenceType argument is set to | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Package". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: [blank] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Example: 7.0.0-preview4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsPackageVersion Condition="'$(MdsPackageVersion)' == ''" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestPackageBuildArgument Condition="'$(MdsPackageVersion)' != ''"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $(TestPackageBuildArgument) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:MdsPackageVersion=$(MdsPackageVersion) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </TestPackageBuildArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ReferenceType | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: TestMdsFunctional, TestMdsManual targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Determines what mode to put test runs into. If set to "Project", the test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| projects will reference their test target as a ProjectReference, ie, running | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| against the code as-is in the repository. This will also trigger a build of | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| the target project, if necessary. If set to "Package", the test projects will | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| reference their test target as a PackageReference, ie, running against a | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packaged version of the project. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: Project | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allowed values: (Package|Project) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <ReferenceType Condition="'$(ReferenceType)' == ''">Project</ReferenceType> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestPackageBuildArgument Condition="'$(ReferenceType.ToLower())' == 'package'"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $(TestPackageBuildArgument) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:ReferenceType=Package | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </TestPackageBuildArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TestBlameTimeout | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: Test* targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: How long to wait on a test before timing it out. This will be fed to the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dotnet blame-hang-timeout argument. If 0 is specified, hang timeout will be | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disabled. For more details and supported suffixed see: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test-vstest#options | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: 10m | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allowed values: (time_expression|0) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestBlameTimeout Condition="'$(TestBlameTimeout)' == ''">10m</TestBlameTimeout> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestBlameTimeout Condition="'$(TestBlameTimeout)' == '0'" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think this has any effect if |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestBlameArgument Condition="'$(TestBlameTimeout)' != ''"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --blame-hang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --blame-hang-dump-type full | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --blame-hang-timeout $(TestBlameTimeout) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </TestBlameArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TestCollectCodeCoverage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: Test* targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Whether code coverage data should be collected during test target execution. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allowed value: (true|false) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestCollectCodeCoverage Condition="'$(TestCollectCodeCoverage)' == ''">true</TestCollectCodeCoverage> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestCollectArgument Condition="'$(TestCollectCodeCoverage.ToLower())' == 'true'"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --collect "Code coverage" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --settings "$(RepoRoot)src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/CodeCoverage.runsettings" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </TestCollectArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TestFilters | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: Test* targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Filter to use to include or exclude any tests. If not specified, this defaults | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| to including all tests that are not in the category "failing" or "flaky". Use | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "none" to disable filtering and run all tests in the target. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| For more information see: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| https://learn.microsoft.com/en-us/dotnet/core/testing/selective-unit-tests | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: category!=failing&category!=flaky | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Need to add |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allowed values: (category_expression|none) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestFilter Condition="'$(TestFilter)' == ''">category!=failing&category!=flaky</TestFilter> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestFilter Condition="'$(TestFilter.ToLower())' == 'none'" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestFilterArgument Condition="'$(TestFilter)' != ''"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --filter "$(TestFilter)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </TestFilterArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Imports ======================================================= --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Import Project="src/Directory.Build.props" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TestFramework | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: Test* targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Target framework moniker for the version of the .NET to use to execute the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. of the .NET ? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| specified test target. If not specified, this defaults to running tests for | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| *all* framework versions supported for the project. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: [blank] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Example: net462 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can multiple monikers be speficied at once? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestFramework Condition="'$(TestFramework)' == ''" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestFrameworkArgument Condition="'$(TestFramework)' != ''">-f $(TestFramework)</TestFrameworkArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Microsoft.Data.SqlClient Build Targets ======================== --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TestResultsFolderPath | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: Test* targets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Absolute path to directory where any test results should be dumped. If not | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| specified, this path will default to test_results in the root of the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| repository. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: $(REPO_ROOT)\test_results | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure if the existing pipelines set this, and I think they expect the test results in a different directory. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Example: C:\my_test_results\my_extra_specaial_test_run_folder\ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestResultsFolderPath Condition="'$(TestResultsFolderPath)' == ''">$(RepoRoot)test_results</TestResultsFolderPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TestSet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Applies to: TestMdsManual target | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description: Used to select a set of tests to run from the MDS manual tests project. If not | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| specified, all tests will be executed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Default value: [blank] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allowed values: ([1][2][3][AE]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Examples: "1", "12", "AE", "12AE" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestSet Condition="'$(TestSet)' == ''" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <TestSetArgument Condition="'$(TestSet)' != ''">-p:TestSet="$(TestSet)"</TestSetArgument> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- ================================================================= --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Microsoft.Data.SqlClient Targets --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsProjectPath>$(RepoRoot)src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj</MdsProjectPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Root for MDS projects --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsRoot>$(RepoRoot)src/Microsoft.Data.SqlClient/</MdsRoot> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Tools/Specs Paths --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsNuspecPath>$(RepoRoot)tools/specs/Microsoft.Data.SqlClient.nuspec</MdsNuspecPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Project Paths --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsFunctionalTestProjectPath>$(MdsRoot)tests/FunctionalTests/Microsoft.Data.SqlClient.FunctionalTests.csproj</MdsFunctionalTestProjectPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure alphabetical sorting makes the most sense here. I was expecting main project, ref project, test projects. I don't really care though. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsManualTestProjectPath>$(MdsRoot)tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj</MdsManualTestProjectPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsProjectPath>$(MdsRoot)src/Microsoft.Data.SqlClient.csproj</MdsProjectPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsRefProjectPath>$(MdsRoot)ref/Microsoft.Data.SqlClient.csproj</MdsRefProjectPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <MdsUnitTestProjectPath>$(MdsRoot)tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj</MdsUnitTestProjectPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Build MDS Targets =============================================== --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- BuildMds: Builds all binaries for MDS --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Target Name="BuildMds" DependsOnTargets="BuildMdsUnix;BuildMdsWindows" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Target Name="BuildMds" DependsOnTargets="BuildMdsRef;BuildMdsUnix;BuildMdsWindows" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- BuildMdsRef: Builds the ref binaries project for MDS, which is OS-agnostic --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Target Name="BuildMdsRef"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $(DotnetPath)dotnet build $(MdsRefProjectPath) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:Configuration=$(Configuration) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Convert more than one whitespace character into one space --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Message Text=">>> Building MDS ref binaries via command: $(DotnetCommand)"/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Exec ConsoleToMsBuild="true" Command="$(DotnetCommand)" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </Target> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- BuildMdsUnix: Builds all unix-specific MDS binaries --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Target Name="BuildMdsUnix"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -33,9 +188,10 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:Configuration=$(Configuration) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:TargetOs=Unix | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Convert more than one whitespace character into one space --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Convert more than one whitespace character into one space --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Weird indentation here, and below. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Message Text=">>> Building MDS for Unix via command: $(DotnetCommand)"/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Exec ConsoleToMsBuild="true" Command="$(DotnetCommand)" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </Target> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -48,10 +204,121 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:Configuration=$(Configuration) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -p:TargetOs=Windows_NT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Convert more than one whitespace character into one space --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Convert more than one whitespace character into one space --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Message Text=">>> Building MDS for Windows via command: $(DotnetCommand)"/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Message Text=">>> Building MDS for Windows via command: $(DotnetCommand)" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Exec ConsoleToMsBuild="true" Command="$(DotnetCommand)" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </Target> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- Pack MDS Target ===================================================== --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <!-- PackMds: Packages MDS binaries into a NuGet package --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Target Name="PackMds"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <GitCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| git rev-parse HEAD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </GitCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Message Text=">>> Fetching git commit hash via command: $(GitCommand)" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Exec Command="$(GitCommand)" ConsoleToMsBuild="true"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <Output TaskParameter="ConsoleOutput" PropertyName="CommitHash" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </Exec> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <PropertyGroup> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <NugetCommand> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| nuget pack "$(MdsNuspecPath)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -OutputDirectory "$(MdsArtifactsPath)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| -OutputDirectory "$(MdsArtifactsPath)" | |
| -OutputDirectory "$(MdsArtifactsFolder)" |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$(MdsArtifactsPath) is used as the nuget pack -OutputDirectory value, but this property is not defined anywhere in this file (and doesn't come from src/Directory.Build.props). This will expand to empty and can cause nuget pack to write into an unexpected location or fail. Define MdsArtifactsPath (e.g., based on $(Artifacts) from Directory.Build.props) or use an existing property consistently.
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CommitHash is captured from git rev-parse HEAD via ConsoleOutput, which typically includes a trailing newline. Passing that directly into -Properties "COMMITID=$(CommitHash)..." can result in an invalid COMMITID value (newline in the property) and potentially break nuget pack property parsing. Trim $(CommitHash) before using it (e.g., strip whitespace/newlines).
Copilot
AI
Feb 25, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable NugetCommand is assigned here but then DotnetCommand is incorrectly used in the whitespace cleanup on line 116. This should be cleaning up NugetCommand instead.
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | |
| <NugetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(NugetCommand), "\s+", " "))</NugetCommand> |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The nuget pack invocation doesn't pass required nuspec properties. The nuspec uses tokens like $ReferenceType$, $AbstractionsPackageVersion$, and $LoggingPackageVersion$; without supplying these via -Properties, packing will fail (unresolved tokens / missing file paths). Update -Properties to include these values (or remove the tokens from the nuspec if they are no longer needed).
| -Properties "COMMITID=$(CommitHash);Configuration=$(Configuration);" | |
| -Symbols | |
| -SymbolPackageFormat snupkg | |
| </NugetCommand> | |
| <!-- Convert more than one whitespace character into one space --> | |
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | |
| -Properties "COMMITID=$(CommitHash);Configuration=$(Configuration);ReferenceType=$(ReferenceType);AbstractionsPackageVersion=$(AbstractionsPackageVersion);LoggingPackageVersion=$(LoggingPackageVersion);" | |
| -Symbols | |
| -SymbolPackageFormat snupkg | |
| </NugetCommand> | |
| <!-- Convert more than one whitespace character into one space --> | |
| <NugetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(NugetCommand), "\s+", " "))</NugetCommand> |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In PackMds, the whitespace-normalization step is applied to $(DotnetCommand), but the command being built/executed here is $(NugetCommand). As written, $(NugetCommand) will keep the original whitespace/newlines, and $(DotnetCommand) may be unintentionally overwritten. Apply the regex replace to $(NugetCommand) instead.
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | |
| <NugetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(NugetCommand), "\s+", " "))</NugetCommand> |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PackMds always passes -Version "$(MdsPackageVersion)", but MdsPackageVersion defaults to empty. nuget pack requires a non-empty version (or you should omit -Version to fall back to the nuspec <version>). Consider only adding -Version when $(MdsPackageVersion) is set, or set a sensible default.
| <NugetCommand> | |
| nuget pack "$(MdsNuspecPath)" | |
| -OutputDirectory "$(MdsArtifactsPath)" | |
| -Version "$(MdsPackageVersion)" | |
| -Properties "COMMITID=$(CommitHash);Configuration=$(Configuration);" | |
| -Symbols | |
| -SymbolPackageFormat snupkg | |
| </NugetCommand> | |
| <!-- Convert more than one whitespace character into one space --> | |
| <DotnetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))</DotnetCommand> | |
| <!-- Only pass -Version when MdsPackageVersion is set --> | |
| <VersionArgument Condition=" '$(MdsPackageVersion)' != '' ">-Version "$(MdsPackageVersion)"</VersionArgument> | |
| <NugetCommand> | |
| nuget pack "$(MdsNuspecPath)" | |
| -OutputDirectory "$(MdsArtifactsPath)" | |
| $(VersionArgument) | |
| -Properties "COMMITID=$(CommitHash);Configuration=$(Configuration);" | |
| -Symbols | |
| -SymbolPackageFormat snupkg | |
| </NugetCommand> | |
| <!-- Convert more than one whitespace character into one space --> | |
| <NugetCommand>$([System.Text.RegularExpressions.Regex]::Replace($(NugetCommand), "\s+", " "))</NugetCommand> |
Copilot
AI
Feb 25, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in "Packageing" should be "Packaging".
| <Message Text=">>> Packageing MDS via command: $(NugetCommand)" /> | |
| <Message Text=">>> Packaging MDS via command: $(NugetCommand)" /> |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in the message text: "Packageing" should be "Packaging".
| <Message Text=">>> Packageing MDS via command: $(NugetCommand)" /> | |
| <Message Text=">>> Packaging MDS via command: $(NugetCommand)" /> |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$(TestPackageReferenceArgument) is referenced in the functional test command, but this property is never defined (the file defines TestPackageBuildArgument). As a result, ReferenceType=Package / MdsPackageVersion won't be forwarded to the test build. Use the defined property name consistently (or define TestPackageReferenceArgument).
| $(TestPackageReferenceArgument) | |
| $(TestPackageBuildArgument) |
Copilot
AI
Feb 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The unit test dotnet test command has an unterminated --logger: argument (missing the closing quote) and likely a missing closing )/quote at the end of the command block. This will cause the dotnet test invocation to fail when the target runs.
| --logger:"trx;LogFilePrefix=$(LogFilePrefix) | |
| --logger:"trx;LogFilePrefix=$(LogFilePrefix)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR description is empty and the mentioned issues (#123 about SQL Graph edge pseudo-columns and #456 about UDT buffers) appear to be unrelated to the changes in this PR, which focus on build infrastructure and packaging experiments. The PR description should be filled out to explain the purpose of this experimental build infrastructure, what problems it's trying to solve, and whether build2.proj is intended to replace or supplement build.proj.