<commit_before><Project ToolsVersion="12.0" DefaultTargets="Build" InitialTargets="CheckRoslyn" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Condition="Exists('..\dir.props')" Project="..\dir.props" />

  <!--
    $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
  -->
  <PropertyGroup>
    <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
  </PropertyGroup>

  <!-- Build Tools Versions -->
  <PropertyGroup>
    <RoslynVersion>1.0.0-rc3-20150510-01</RoslynVersion>
    <RoslynPackageName>Microsoft.Net.ToolsetCompilers</RoslynPackageName>
  </PropertyGroup>

  <!--
    Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer
    as well as runnning the build on mono. Until we can get these sorted out we will continue using the .NET 4.5 version of the tasks.
  -->
  <PropertyGroup>
    <BuildToolsTargets45>true</BuildToolsTargets45>
  </PropertyGroup>

  <!-- Common repo directories -->
  <PropertyGroup>
    <ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir>
    <SourceDir>$(ProjectDir)src/</SourceDir>

    <!-- Output directories -->
    <BinDir Condition="'$(BinDir)'==''">$(ProjectDir)bin/</BinDir>
    <ObjDir Condition="'$(ObjDir)'==''">$(BinDir)obj/</ObjDir>
    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'==''">$(ObjDir)</BaseIntermediateOutputPath>
    <TestWorkingDir Condition="'$(TestWorkingDir)'==''">$(BinDir)tests/</TestWorkingDir>
    <PackagesOutDir Condition="'$(PackagesOutDir)'==''">$(BinDir)packages/</PackagesOutDir>

    <!-- Input Directories -->
    <PackagesDir Condition="'$(PackagesDir)'==''">$(ProjectDir)packages/</PackagesDir>
    <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools/</ToolsDir>
    <BuildToolsTaskDir Condition="'$(BuildToolsTargets45)' == 'true'">$(ToolsDir)net45/</BuildToolsTaskDir>
    <PackagingTaskDir>$(ToolsDir)net45/</PackagingTaskDir>
    <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
  </PropertyGroup>

  <!-- Setting up Versioning -->
  <PropertyGroup>
    <VersionComparisonDate>2016-01-01</VersionComparisonDate>
  </PropertyGroup>
  <Import Project="$(ToolsDir)BuildVersion.targets" />

  <!-- Import Build tools common props file where repo-independent properties are found -->
  <Import Project="$(ToolsDir)Build.Common.props" />

  <!-- Test runtime -->
  <PropertyGroup>
    <TestRuntimeProjectJson Condition="'$(TestRuntimeProjectJson)' == ''">$(SourceDir)Microsoft.DotNet.Build.Tasks/PackageFiles/test-runtime/project.json</TestRuntimeProjectJson>
    <TestRuntimeProjectLockJson Condition="'$(TestRuntimeProjectLockJson)' == ''">$(SourceDir)Microsoft.DotNet.Build.Tasks/PackageFiles/test-runtime/project.lock.json</TestRuntimeProjectLockJson>
  </PropertyGroup>

  <!-- Package dependency validation -->
  <PropertyGroup>
    <ValidatePackageVersions>true</ValidatePackageVersions>
    <ProhibitFloatingDependencies>true</ProhibitFloatingDependencies>
    <CoreFxExpectedPrerelease>rc2-23923</CoreFxExpectedPrerelease>
  </PropertyGroup>

  <ItemGroup>
    <ValidationPattern Include="^(?i)((System\..%2A)|(Microsoft\.Cci)|(Microsoft\.CSharp)|(Microsoft\.NETCore.%2A)|(Microsoft\.Win32\..%2A)|(Microsoft\.VisualBasic))(?&lt;!TestData)$">
      <ExpectedPrerelease>$(CoreFxExpectedPrerelease)</ExpectedPrerelease>
    </ValidationPattern>
    <ValidationPattern Include="^(?i)xunit$">
      <ExpectedVersion>2.1.0</ExpectedVersion>
    </ValidationPattern>
  </ItemGroup>

  <!-- list of nuget package sources passed to nuget.exe -->
  <ItemGroup>
    <NuGetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools" />
    <NuGetSourceList Include="https:%2F%2Fwww.nuget.org/api/v2" />
  </ItemGroup>

  <!-- Common nuget properties -->
  <PropertyGroup>
    <NuGetToolPath Condition="'$(NuGetToolPath)'==''">$(PackagesDir)NuGet.exe</NuGetToolPath>
    <NuGetPackageSource>@(NuGetSourceList -> '-source %(Identity)', ' ')</NuGetPackageSource>
    <NuGetConfigCommandLine>$(NuGetPackageSource)</NuGetConfigCommandLine>

    <NugetRestoreCommand>"$(NuGetToolPath)"</NugetRestoreCommand>
    <NugetRestoreCommand>$(NugetRestoreCommand) install</NugetRestoreCommand>
    <!-- NuGet.exe doesn't like trailing slashes in the output directory argument -->
    <NugetRestoreCommand>$(NugetRestoreCommand) -OutputDirectory "$(PackagesDir.TrimEnd('/\'.ToCharArray()))"</NugetRestoreCommand>
    <NugetRestoreCommand>$(NugetRestoreCommand) $(NuGetConfigCommandLine)</NugetRestoreCommand>
    <NugetRestoreCommand>$(NugetRestoreCommand) -Verbosity detailed</NugetRestoreCommand>
    <NugetRestoreCommand Condition="'$(OsEnvironment)'=='Unix'">mono $(NuGetRestoreCommand)</NugetRestoreCommand>
  </PropertyGroup>

  <!-- list of nuget package sources passed to dnu -->
  <ItemGroup>
    <!-- Need to escape double forward slash (%2F) or MSBuild will normalize to one slash on Unix. -->
    <DnuSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-core/api/v3/index.json" />
    <DnuSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
    <DnuSourceList Include="https:%2F%2Fwww.myget.org/F/nugetbuild/api/v3/index.json" />
    <DnuSourceList Include="https:%2F%2Fapi.nuget.org/v3/index.json" />
  </ItemGroup>

  <!-- list of directories to perform batch restore -->
  <ItemGroup>
    <DnuRestoreDir Include="$(MSBuildProjectDirectory)\src" />
  </ItemGroup>

  <PropertyGroup>
    <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'!='Unix'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand>
    <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'=='Unix'">$(DotnetCliPath)dotnet</DotnetToolCommand>

    <DnuRestoreSource>@(DnuSourceList -> '--source %(Identity)', ' ')</DnuRestoreSource>
    <DnuRestoreDirs>@(DnuRestoreDir -> '&quot;%(Identity)&quot;', ' ')</DnuRestoreDirs>

    <DnuRestoreCommand>"$(DotnetToolCommand)"</DnuRestoreCommand>
    <DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
    <DnuRestoreCommand Condition="'$(ParallelRestore)'=='true'">$(DnuRestoreCommand) --parallel</DnuRestoreCommand>
    <DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/\'.ToCharArray()))" $(DnuRestoreSource)</DnuRestoreCommand>
    <DnuRestoreCommand Condition="'$(LockDependencies)' == 'true'">$(DnuRestoreCommand) --lock</DnuRestoreCommand>
    <DnuRestoreCommand Condition="'$(InferRuntimes)'!='false'">$(DnuRestoreCommand) --infer-runtimes</DnuRestoreCommand>
  </PropertyGroup>

  <!-- Create a collection of all project.json files for dependency updates. -->
  <ItemGroup>
    <ProjectJsonFiles Include="$(SourceDir)**/project.json" />
  </ItemGroup>

  <PropertyGroup Condition="'$(BuildAllProjects)'=='true'">
    <!-- When we do a traversal build we get all packages up front, don't restore them again -->
    <RestorePackages>false</RestorePackages>
  </PropertyGroup>

  <!--
    Set up Roslyn predefines
  -->
  <PropertyGroup>
    <RoslynPackageDir>$(PackagesDir)/$(RoslynPackageName).$(RoslynVersion)/</RoslynPackageDir>
    <RoslynPropsFile>$(RoslynPackageDir)build/Microsoft.Net.ToolsetCompilers.props</RoslynPropsFile>
  </PropertyGroup>
  <PropertyGroup Condition="'$(OsEnvironment)'=='Unix' and '$(UseRoslynCompiler)'=='true'">
    <!--
      PDB support isn't implemented yet. https://github.com/dotnet/roslyn/issues/2449
      Note that both DebugSymbols and DebugType need set or project references will assume they need to copy pdbs and fail.
    -->
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <!--
      Full signing with Open key doesn't work with Portable Csc.
      https://github.com/dotnet/roslyn/issues/8210
    --><commit_msg>Remove --infer-runtimes restore arg: runtimes specified in project.json files.<commit_after><Project ToolsVersion="12.0" DefaultTargets="Build" InitialTargets="CheckRoslyn" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Condition="Exists('..\dir.props')" Project="..\dir.props" />

  <!--
    $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
  -->
  <PropertyGroup>
    <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
  </PropertyGroup>

  <!-- Build Tools Versions -->
  <PropertyGroup>
    <RoslynVersion>1.0.0-rc3-20150510-01</RoslynVersion>
    <RoslynPackageName>Microsoft.Net.ToolsetCompilers</RoslynPackageName>
  </PropertyGroup>

  <!--
    Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer
    as well as runnning the build on mono. Until we can get these sorted out we will continue using the .NET 4.5 version of the tasks.
  -->
  <PropertyGroup>
    <BuildToolsTargets45>true</BuildToolsTargets45>
  </PropertyGroup>

  <!-- Common repo directories -->
  <PropertyGroup>
    <ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir>
    <SourceDir>$(ProjectDir)src/</SourceDir>

    <!-- Output directories -->
    <BinDir Condition="'$(BinDir)'==''">$(ProjectDir)bin/</BinDir>
    <ObjDir Condition="'$(ObjDir)'==''">$(BinDir)obj/</ObjDir>
    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'==''">$(ObjDir)</BaseIntermediateOutputPath>
    <TestWorkingDir Condition="'$(TestWorkingDir)'==''">$(BinDir)tests/</TestWorkingDir>
    <PackagesOutDir Condition="'$(PackagesOutDir)'==''">$(BinDir)packages/</PackagesOutDir>

    <!-- Input Directories -->
    <PackagesDir Condition="'$(PackagesDir)'==''">$(ProjectDir)packages/</PackagesDir>
    <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools/</ToolsDir>
    <BuildToolsTaskDir Condition="'$(BuildToolsTargets45)' == 'true'">$(ToolsDir)net45/</BuildToolsTaskDir>
    <PackagingTaskDir>$(ToolsDir)net45/</PackagingTaskDir>
    <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
  </PropertyGroup>

  <!-- Setting up Versioning -->
  <PropertyGroup>
    <VersionComparisonDate>2016-01-01</VersionComparisonDate>
  </PropertyGroup>
  <Import Project="$(ToolsDir)BuildVersion.targets" />

  <!-- Import Build tools common props file where repo-independent properties are found -->
  <Import Project="$(ToolsDir)Build.Common.props" />

  <!-- Test runtime -->
  <PropertyGroup>
    <TestRuntimeProjectJson Condition="'$(TestRuntimeProjectJson)' == ''">$(SourceDir)Microsoft.DotNet.Build.Tasks/PackageFiles/test-runtime/project.json</TestRuntimeProjectJson>
    <TestRuntimeProjectLockJson Condition="'$(TestRuntimeProjectLockJson)' == ''">$(SourceDir)Microsoft.DotNet.Build.Tasks/PackageFiles/test-runtime/project.lock.json</TestRuntimeProjectLockJson>
  </PropertyGroup>

  <!-- Package dependency validation -->
  <PropertyGroup>
    <ValidatePackageVersions>true</ValidatePackageVersions>
    <ProhibitFloatingDependencies>true</ProhibitFloatingDependencies>
    <CoreFxExpectedPrerelease>rc2-23923</CoreFxExpectedPrerelease>
  </PropertyGroup>

  <ItemGroup>
    <ValidationPattern Include="^(?i)((System\..%2A)|(Microsoft\.Cci)|(Microsoft\.CSharp)|(Microsoft\.NETCore.%2A)|(Microsoft\.Win32\..%2A)|(Microsoft\.VisualBasic))(?&lt;!TestData)$">
      <ExpectedPrerelease>$(CoreFxExpectedPrerelease)</ExpectedPrerelease>
    </ValidationPattern>
    <ValidationPattern Include="^(?i)xunit$">
      <ExpectedVersion>2.1.0</ExpectedVersion>
    </ValidationPattern>
  </ItemGroup>

  <!-- list of nuget package sources passed to nuget.exe -->
  <ItemGroup>
    <NuGetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools" />
    <NuGetSourceList Include="https:%2F%2Fwww.nuget.org/api/v2" />
  </ItemGroup>

  <!-- Common nuget properties -->
  <PropertyGroup>
    <NuGetToolPath Condition="'$(NuGetToolPath)'==''">$(PackagesDir)NuGet.exe</NuGetToolPath>
    <NuGetPackageSource>@(NuGetSourceList -> '-source %(Identity)', ' ')</NuGetPackageSource>
    <NuGetConfigCommandLine>$(NuGetPackageSource)</NuGetConfigCommandLine>

    <NugetRestoreCommand>"$(NuGetToolPath)"</NugetRestoreCommand>
    <NugetRestoreCommand>$(NugetRestoreCommand) install</NugetRestoreCommand>
    <!-- NuGet.exe doesn't like trailing slashes in the output directory argument -->
    <NugetRestoreCommand>$(NugetRestoreCommand) -OutputDirectory "$(PackagesDir.TrimEnd('/\'.ToCharArray()))"</NugetRestoreCommand>
    <NugetRestoreCommand>$(NugetRestoreCommand) $(NuGetConfigCommandLine)</NugetRestoreCommand>
    <NugetRestoreCommand>$(NugetRestoreCommand) -Verbosity detailed</NugetRestoreCommand>
    <NugetRestoreCommand Condition="'$(OsEnvironment)'=='Unix'">mono $(NuGetRestoreCommand)</NugetRestoreCommand>
  </PropertyGroup>

  <!-- list of nuget package sources passed to dnu -->
  <ItemGroup>
    <!-- Need to escape double forward slash (%2F) or MSBuild will normalize to one slash on Unix. -->
    <DnuSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-core/api/v3/index.json" />
    <DnuSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
    <DnuSourceList Include="https:%2F%2Fwww.myget.org/F/nugetbuild/api/v3/index.json" />
    <DnuSourceList Include="https:%2F%2Fapi.nuget.org/v3/index.json" />
  </ItemGroup>

  <!-- list of directories to perform batch restore -->
  <ItemGroup>
    <DnuRestoreDir Include="$(MSBuildProjectDirectory)\src" />
  </ItemGroup>

  <PropertyGroup>
    <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'!='Unix'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand>
    <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'=='Unix'">$(DotnetCliPath)dotnet</DotnetToolCommand>

    <DnuRestoreSource>@(DnuSourceList -> '--source %(Identity)', ' ')</DnuRestoreSource>
    <DnuRestoreDirs>@(DnuRestoreDir -> '&quot;%(Identity)&quot;', ' ')</DnuRestoreDirs>

    <DnuRestoreCommand>"$(DotnetToolCommand)"</DnuRestoreCommand>
    <DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
    <DnuRestoreCommand Condition="'$(ParallelRestore)'=='true'">$(DnuRestoreCommand) --parallel</DnuRestoreCommand>
    <DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/\'.ToCharArray()))" $(DnuRestoreSource)</DnuRestoreCommand>
    <DnuRestoreCommand Condition="'$(LockDependencies)' == 'true'">$(DnuRestoreCommand) --lock</DnuRestoreCommand>
  </PropertyGroup>

  <!-- Create a collection of all project.json files for dependency updates. -->
  <ItemGroup>
    <ProjectJsonFiles Include="$(SourceDir)**/project.json" />
  </ItemGroup>

  <PropertyGroup Condition="'$(BuildAllProjects)'=='true'">
    <!-- When we do a traversal build we get all packages up front, don't restore them again -->
    <RestorePackages>false</RestorePackages>
  </PropertyGroup>

  <!--
    Set up Roslyn predefines
  -->
  <PropertyGroup>
    <RoslynPackageDir>$(PackagesDir)/$(RoslynPackageName).$(RoslynVersion)/</RoslynPackageDir>
    <RoslynPropsFile>$(RoslynPackageDir)build/Microsoft.Net.ToolsetCompilers.props</RoslynPropsFile>
  </PropertyGroup>
  <PropertyGroup Condition="'$(OsEnvironment)'=='Unix' and '$(UseRoslynCompiler)'=='true'">
    <!--
      PDB support isn't implemented yet. https://github.com/dotnet/roslyn/issues/2449
      Note that both DebugSymbols and DebugType need set or project references will assume they need to copy pdbs and fail.
    -->
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <!--
      Full signing with Open key doesn't work with Portable Csc.
      https://github.com/dotnet/roslyn/issues/8210
    -->
{'fraction_non_alphanumeric': 0.16479806344757295, 'fraction_numerical': 0.010319785959994904, 'mean_word_length': 5.348160129397493, 'pattern_counts': {'":': 0, '<': 333, '<?xml version=': 0, '>': 339, 'https://': 4, 'lorem ipsum': 0, 'www.': 4, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '697554', 'n_tokens_mistral': 5185, 'n_tokens_neox': 4679, 'n_words': 767}