Skip to content

Commit bad9cd2

Browse files
authored
Merge pull request dotnet#3 from dotnet/master
merge with latest master
2 parents 7d0ea81 + 94401d5 commit bad9cd2

File tree

220 files changed

+78792
-2889
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

220 files changed

+78792
-2889
lines changed

.vsts-dotnet-ci.yml

-2
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,3 @@ phases:
1111
buildScript: build.cmd
1212
queue:
1313
name: Hosted VS2017
14-
demands:
15-
- agent.os -equals Windows_NT

CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ If you are new to GitHub [here](https://help.github.com/categories/collaborating
1616

1717
As a first time contributor, you will be invited to sign the Contributor License Agreement (CLA). Please follow the instructions of the dotnet foundation bot reviewer on your PR to sign the agreement indicating that you have appropriate rights to your contribution.
1818

19-
Your pull request needs to reference a filed issue. Please fill in the template that is populated for the pull request. Only pull requests adressing small typos can have no issues associated with them.
19+
Your pull request needs to reference a filed issue. Please fill in the template that is populated for the pull request. Only pull requests addressing small typos can have no issues associated with them.
2020

2121
An ML.NET team member will be assigned to your pull request once the continuous integration checks have passed successfully.
2222

Directory.Build.props

+7
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,11 @@
114114
<PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
115115
</PropertyGroup>
116116

117+
<PropertyGroup>
118+
<UseIntrinsics Condition="'$(UseIntrinsics)' == ''">$(Configuration.EndsWith('-Intrinsics'))</UseIntrinsics>
119+
</PropertyGroup>
120+
121+
<PropertyGroup>
122+
<CustomAfterMicrosoftCommonTargets>$(RepoRoot)build\AfterCommonTargets.targets</CustomAfterMicrosoftCommonTargets>
123+
</PropertyGroup>
117124
</Project>

Microsoft.ML.sln

+67
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.CodeAnalyzer",
9797
EndProject
9898
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.CodeAnalyzer.Tests", "test\Microsoft.ML.CodeAnalyzer.Tests\Microsoft.ML.CodeAnalyzer.Tests.csproj", "{3E4ABF07-7970-4BE6-B45B-A13D3C397545}"
9999
EndProject
100+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.CpuMath.PerformanceTests", "test\Microsoft.ML.CpuMath.PerformanceTests\Microsoft.ML.CpuMath.PerformanceTests.csproj", "{7333EDEF-4144-405C-A5EC-6F42201857D8}"
101+
EndProject
102+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.CpuMath.UnitTests.netstandard", "test\Microsoft.ML.CpuMath.UnitTests.netstandard\Microsoft.ML.CpuMath.UnitTests.netstandard.csproj", "{A0E562A9-0E6D-470D-B180-6EB44BA84D60}"
103+
EndProject
104+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.CpuMath.UnitTests.netcoreapp", "test\Microsoft.ML.CpuMath.UnitTests.netcoreapp\Microsoft.ML.CpuMath.UnitTests.netcoreapp.csproj", "{5F81A2A4-73AD-494C-B387-07D605EC8826}"
105+
EndProject
106+
107+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Microsoft.ML.FSharp.Tests", "test\Microsoft.ML.FSharp.Tests\Microsoft.ML.FSharp.Tests.fsproj", "{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}"
108+
EndProject
109+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.ImageAnalytics", "src\Microsoft.ML.ImageAnalytics\Microsoft.ML.ImageAnalytics.csproj", "{00E38F77-1E61-4CDF-8F97-1417D4E85053}"
110+
EndProject
111+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.HalLearners", "src\Microsoft.ML.HalLearners\Microsoft.ML.HalLearners.csproj", "{A7222F41-1CF0-47D9-B80C-B4D77B027A61}"
112+
EndProject
100113
Global
101114
GlobalSection(SolutionConfigurationPlatforms) = preSolution
102115
Debug|Any CPU = Debug|Any CPU
@@ -329,6 +342,54 @@ Global
329342
{3E4ABF07-7970-4BE6-B45B-A13D3C397545}.Release|Any CPU.Build.0 = Release|Any CPU
330343
{3E4ABF07-7970-4BE6-B45B-A13D3C397545}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
331344
{3E4ABF07-7970-4BE6-B45B-A13D3C397545}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
345+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
346+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
347+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
348+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
349+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
350+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Release|Any CPU.Build.0 = Release|Any CPU
351+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
352+
{7333EDEF-4144-405C-A5EC-6F42201857D8}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
353+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
354+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Debug|Any CPU.Build.0 = Debug|Any CPU
355+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
356+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
357+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Release|Any CPU.ActiveCfg = Release|Any CPU
358+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Release|Any CPU.Build.0 = Release|Any CPU
359+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
360+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
361+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
362+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Debug|Any CPU.Build.0 = Debug|Any CPU
363+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
364+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
365+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Release|Any CPU.ActiveCfg = Release|Any CPU
366+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Release|Any CPU.Build.0 = Release|Any CPU
367+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
368+
{5F81A2A4-73AD-494C-B387-07D605EC8826}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
369+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
370+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
371+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
372+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
373+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
374+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Release|Any CPU.Build.0 = Release|Any CPU
375+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
376+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
377+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
378+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Debug|Any CPU.Build.0 = Debug|Any CPU
379+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
380+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
381+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Release|Any CPU.ActiveCfg = Release|Any CPU
382+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Release|Any CPU.Build.0 = Release|Any CPU
383+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
384+
{00E38F77-1E61-4CDF-8F97-1417D4E85053}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
385+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
386+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Debug|Any CPU.Build.0 = Debug|Any CPU
387+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug|Any CPU
388+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Debug-Intrinsics|Any CPU.Build.0 = Debug|Any CPU
389+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Release|Any CPU.ActiveCfg = Release|Any CPU
390+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Release|Any CPU.Build.0 = Release|Any CPU
391+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Release-Intrinsics|Any CPU.ActiveCfg = Release|Any CPU
392+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61}.Release-Intrinsics|Any CPU.Build.0 = Release|Any CPU
332393
EndGlobalSection
333394
GlobalSection(SolutionProperties) = preSolution
334395
HideSolutionNode = FALSE
@@ -365,8 +426,14 @@ Global
365426
{001F3B4E-FBE4-4001-AFD2-A6A989CD1C25} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
366427
{DCF46B79-1FDB-4DBA-A263-D3D64E3AAA27} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
367428
{BF66A305-DF10-47E4-8D81-42049B149D2B} = {D3D38B03-B557-484D-8348-8BADEE4DF592}
429+
{7333EDEF-4144-405C-A5EC-6F42201857D8} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
430+
{A0E562A9-0E6D-470D-B180-6EB44BA84D60} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
431+
{5F81A2A4-73AD-494C-B387-07D605EC8826} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
368432
{B4E55B2D-2A92-46E7-B72F-E76D6FD83440} = {7F13E156-3EBA-4021-84A5-CD56BA72F99E}
369433
{3E4ABF07-7970-4BE6-B45B-A13D3C397545} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
434+
{802233D6-8CC0-46AD-9F23-FEE1E9AED9B3} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
435+
{00E38F77-1E61-4CDF-8F97-1417D4E85053} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
436+
{A7222F41-1CF0-47D9-B80C-B4D77B027A61} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
370437
EndGlobalSection
371438
GlobalSection(ExtensibilityGlobals) = postSolution
372439
SolutionGuid = {41165AF1-35BB-4832-A189-73060F82B01D}

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Along with these ML capabilities this first release of ML.NET also brings the fi
1818

1919
ML.NET runs on Windows, Linux, and macOS - any platform where 64 bit [.NET Core](https://github.com/dotnet/core) or later is available.
2020

21-
The current release is 0.3. Check out the [release notes](docs/release-notes/0.3/release-0.3.md).
21+
The current release is 0.4. Check out the [release notes](docs/release-notes/0.4/release-0.4.md).
2222

2323
First ensure you have installed [.NET Core 2.0](https://www.microsoft.com/net/learn/get-started) or later. ML.NET also works on the .NET Framework. Note that ML.NET currently must run in a 64 bit process.
2424

build.proj

+7-5
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,26 @@
3434
BuildNative;
3535
$(TraversalBuildDependsOn);
3636
DownloadExternalTestFiles;
37-
RunTests;
3837
</TraversalBuildDependsOn>
3938
</PropertyGroup>
4039

4140
<Target Name="RestoreProjects" Condition="'$(RestoreDuringBuild)'=='true'">
4241
<Message Importance="High" Text="Restoring all projects..." />
4342
<MSBuild Projects="@(Project)"
44-
Targets="Restore" />
43+
Targets="Restore"
44+
Properties="MSBuildWarningsAsMessages=NU1503" />
4545
</Target>
4646

47-
<Target Name="BuildNative" Condition="'$(SkipNativeBuild)' != 'true'">
47+
<Target Name="BuildNative"
48+
Condition="'$(SkipNativeBuild)' != 'true'"
49+
DependsOnTargets="RestoreProjects">
4850
<Message Importance="High" Text="Building native components..." />
4951
<MSBuild Projects="src/Native/build.proj"
5052
Targets="Build" />
5153
</Target>
5254

5355
<Target Name="BuildPackages"
54-
DependsOnTargets="CreateOrUpdateCurrentVersionFile">
56+
DependsOnTargets="CreateOrUpdateCurrentVersionFile;RestoreProjects">
5557
<Message Importance="High" Text="Building packages ..." />
5658

5759
<ItemGroup>
@@ -77,7 +79,7 @@
7779
TreatErrorsAsWarnings="true"/>
7880
</Target>
7981

80-
<Target Name="RunTests" Condition="'$(RunTests)'=='true'">
82+
<Target Name="RunTests">
8183
<MSBuild Projects="test\run-tests.proj"
8284
Targets="RunTests" />
8385
</Target>

build/AfterCommonTargets.targets

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project>
2+
<PropertyGroup>
3+
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
4+
</PropertyGroup>
5+
6+
<!--
7+
We use netcoreapp3.0 for C# intrinsics, but 3.0 isn't supported in CI or in normal development
8+
environments yet. So when we are targeting netcoreapp3.0, but aren't building for intrinsics,
9+
we need to skip the project.
10+
-->
11+
<Import Condition="'$(UseIntrinsics)' != 'true' and '$(TargetFramework)' == 'netcoreapp3.0'"
12+
Project="$(RepoRoot)build\Empty.targets" />
13+
</Project>

build/BranchInfo.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22
<PropertyGroup>
33
<MajorVersion>0</MajorVersion>
4-
<MinorVersion>4</MinorVersion>
4+
<MinorVersion>5</MinorVersion>
55
<PatchVersion>0</PatchVersion>
66
<PreReleaseLabel>preview</PreReleaseLabel>
77
</PropertyGroup>

build/Dependencies.props

+2
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@
88
<SystemReflectionEmitLightweightPackageVersion>4.3.0</SystemReflectionEmitLightweightPackageVersion>
99
<PublishSymbolsPackageVersion>1.0.0-beta-62824-02</PublishSymbolsPackageVersion>
1010
<LightGBMPackageVersion>2.1.2.2</LightGBMPackageVersion>
11+
<MlNetMklDepsPackageVersion>0.0.0.5</MlNetMklDepsPackageVersion>
12+
<SystemDrawingCommonPackageVersion>4.5.0</SystemDrawingCommonPackageVersion>
1113
</PropertyGroup>
1214
</Project>

build/Empty.targets

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<Project>
2+
<PropertyGroup>
3+
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
4+
<!--
5+
In the SDK ImportAfter folder, this property is declared to point to Microsoft.TestPlatform.targets, which is the file containing the original VSTest target.
6+
Since the Microsoft.TestPlatform.targets are in the ImportAfter folder, they would be imported after this file hence our empty VSTest target would be overriden,
7+
in order to be able to override this target, we set the VSTestTargets property to an inexistent file path, so nothing will be imported and that way we successfully
8+
overrode the VSTest target.
9+
-->
10+
<VSTestTargets>ignore.targets</VSTestTargets>
11+
</PropertyGroup>
12+
13+
<!--
14+
Copied from https://github.com/dotnet/arcade/blob/master/src/Microsoft.DotNet.Arcade.Sdk/tools/Empty.targets
15+
16+
Import this file to suppress all targets while allowing the project to participate in the build.
17+
Workaround for https://github.com/dotnet/sdk/issues/2071.
18+
19+
The targets defined here are not sufficient for the project to be open in Visual Studio without issues though.
20+
-->
21+
22+
<Target Name="_IsProjectRestoreSupported"/>
23+
<Target Name="_CheckForInvalidConfigurationAndPlatform"/>
24+
<Target Name="Restore"/>
25+
<Target Name="Build"/>
26+
<Target Name="Test"/>
27+
<Target Name="VSTest"/>
28+
<Target Name="Pack"/>
29+
</Project>

build/ci/phase-template.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,18 @@ phases:
1313
${{ if ne(parameters.dockerImage, '') }}:
1414
_PREVIEW_VSTS_DOCKER_IMAGE: ${{ parameters.dockerImage }}
1515
queue:
16-
parallel: 2
16+
parallel: 99
1717
matrix:
1818
Build_Debug:
1919
_configuration: Debug
2020
Build_Release:
21-
_configuration: Release
21+
_configuration: Release
2222
${{ insert }}: ${{ parameters.queue }}
2323
steps:
24+
- script: $(_buildScript) -$(_configuration)
25+
displayName: Build
2426
- script: $(_buildScript) -$(_configuration) -runtests
25-
displayName: Build and Test
27+
displayName: Run Tests
2628
- task: PublishTestResults@2
2729
displayName: Publish Test Results
2830
condition: succeededOrFailed()

build/vsts-ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ phases:
1010
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
1111
DOTNET_MULTILEVEL_LOOKUP: 0
1212
queue:
13-
name: DotNetCore-Test
13+
name: DotNet-Build
1414
demands:
1515
- agent.os -equals linux
1616
steps:

config.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
"defaultValue": ""
6868
},
6969
"RunTests": {
70-
"description": "Run tests after building.",
71-
"valueType": "property",
70+
"description": "MsBuild target that run the tests. Call this after building.",
71+
"valueType": "target",
7272
"values": [],
7373
"defaultValue": ""
7474
},
@@ -113,9 +113,9 @@
113113
}
114114
},
115115
"runtests": {
116-
"description": "Runs the tests after building.",
116+
"description": "Runs the tests. Call this after building.",
117117
"settings": {
118-
"RunTests": "true"
118+
"RunTests": "default"
119119
}
120120
},
121121
"verbose": {

docs/building/windows-instructions.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ You can use the Developer Command Prompt, Powershell or work in any regular cmd.
4646
From a (non-admin) Command Prompt window:
4747

4848
- `build.cmd` - builds the assemblies
49-
- `build.cmd -runTests` - builds the assemblies and runs tests
49+
- `build.cmd -runTests` - called after a normal "build.cmd" will run all tests
5050
- `build.cmd -buildPackages` called after a normal “build.cmd” will create the NuGet packages with the assemblies in “bin"
5151

5252
**Note**: Before working on individual projects or test projects you **must** run `build.cmd` from the root once before beginning that work. It is also a good idea to run `build.cmd` whenever you pull a large set of unknown changes into your branch.
5353

5454
### Running tests from the command line
5555

56-
From the root, use `build.cmd -runTests`.
56+
From the root, run `build.cmd` and then `build.cmd -runTests`.
5757
For more details, or to test an individual project, you can navigate to the test project directory and then use `dotnet test`
5858

5959
### Running tests from Visual Studio

docs/project-docs/developer-guide.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ build.cmd -Release -TargetArchitecture:x64
3232

3333
- Building the src and then building and running the tests
3434
```
35-
build.cmd -RunTests
35+
build.cmd
36+
build.cmd -runTests
3637
```
3738

3839
### Building individual projects

0 commit comments

Comments
 (0)