Update dependencies from https://github.com/dotnet/arcade build 20190415.12 (#24029)
authordotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Wed, 17 Apr 2019 03:14:22 +0000 (20:14 -0700)
committerJan Kotas <jkotas@microsoft.com>
Wed, 17 Apr 2019 03:14:22 +0000 (20:14 -0700)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19215.12
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19215.12

eng/Version.Details.xml
eng/common/CheckSymbols.ps1 [new file with mode: 0644]
global.json

index c0b8a82..b402d1a 100644 (file)
@@ -3,13 +3,13 @@
   <ProductDependencies>
   </ProductDependencies>
   <ToolsetDependencies>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19214.2">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19215.12">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>bcf1186cb0db792906fd319ae49bdbc41f44f8ec</Sha>
+      <Sha>517bf671ea342965d007aa48f5bfd4926e58d582</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19214.2">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19215.12">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>bcf1186cb0db792906fd319ae49bdbc41f44f8ec</Sha>
+      <Sha>517bf671ea342965d007aa48f5bfd4926e58d582</Sha>
     </Dependency>
     <Dependency Name="Microsoft.Private.CoreFx.NETCoreApp" Version="4.6.0-preview5.19214.16">
       <Uri>https://github.com/dotnet/corefx</Uri>
diff --git a/eng/common/CheckSymbols.ps1 b/eng/common/CheckSymbols.ps1
new file mode 100644 (file)
index 0000000..074b423
--- /dev/null
@@ -0,0 +1,134 @@
+param(
+  [Parameter(Mandatory=$true)][string] $InputPath,       # Full path to directory where NuGet packages to be checked are stored
+  [Parameter(Mandatory=$true)][string] $ExtractPath,     # Full path to directory where the packages will be extracted during validation
+  [Parameter(Mandatory=$true)][string] $SymbolToolPath   # Full path to directory where dotnet symbol-tool was installed
+)
+
+Add-Type -AssemblyName System.IO.Compression.FileSystem
+
+function FirstMatchingSymbolDescriptionOrDefault {
+  param( 
+    [string] $FullPath,                  # Full path to the module that has to be checked
+    [string] $TargetServerParam          # Parameter to pass to `Symbol Tool` indicating the server to lookup for symbols
+  )
+
+  $FileName = [System.IO.Path]::GetFileName($FullPath)
+  $Extension = [System.IO.Path]::GetExtension($FullPath)
+
+  # Those below are potential symbol files that the `dotnet symbol` might
+  # return. Which one will be returned depend on the type of file we are
+  # checking and which type of file was uploaded.
+
+  # The file itself is returned
+  $SymbolPath = $SymbolsPath + "\" + $FileName
+
+  # PDB file for the module
+  $PdbPath = $SymbolPath.Replace($Extension, ".pdb")
+
+  # PDB file for R2R module (created by crossgen)
+  $NGenPdb = $SymbolPath.Replace($Extension, ".ni.pdb")
+
+  # DBG file for a .so library
+  $SODbg = $SymbolPath.Replace($Extension, ".so.dbg")
+
+  # DWARF file for a .dylib
+  $DylibDwarf = $SymbolPath.Replace($Extension, ".dylib.dwarf")
+  
+  .\dotnet-symbol.exe --symbols --modules $TargetServerParam $FullPath -o $SymbolsPath -d | Out-Null
+  
+  if (Test-Path $PdbPath) {
+    return "PDB"
+  }
+  elseif (Test-Path $NGenPdb) {
+    return "NGen PDB"
+  }
+  elseif (Test-Path $SODbg) {
+    return "DBG for SO"
+  }  
+  elseif (Test-Path $DylibDwarf) {
+    return "Dwarf for Dylib"
+  }  
+  elseif (Test-Path $SymbolPath) {
+    return "Module"
+  }
+  else {
+    return $null
+  }
+}
+
+function CountMissingSymbols {
+  param( 
+    [string] $PackagePath          # Path to a NuGet package
+  )
+
+  # Ensure input file exist
+  if (!(Test-Path $PackagePath)) {
+    throw "Input file does not exist: $PackagePath"
+  }
+  
+  # Extensions for which we'll look for symbols
+  $RelevantExtensions = @(".dll", ".exe", ".so", ".dylib")
+
+  # How many files are missing symbol information
+  $MissingSymbols = 0
+
+  $PackageId = [System.IO.Path]::GetFileNameWithoutExtension($PackagePath)
+  $ExtractPath = $ExtractPath + $PackageId;
+  $SymbolsPath = $ExtractPath + $PackageId + ".Symbols";
+  
+  [System.IO.Compression.ZipFile]::ExtractToDirectory($PackagePath, $ExtractPath)
+
+  # Makes easier to reference `symbol tool`
+  Push-Location $SymbolToolPath
+
+  Get-ChildItem -Recurse $ExtractPath |
+    Where-Object {$RelevantExtensions -contains $_.Extension} |
+    ForEach-Object {
+      Write-Host -NoNewLine "`t Checking file" $_.FullName "... "
+
+      $SymbolsOnMSDL = FirstMatchingSymbolDescriptionOrDefault $_.FullName "--microsoft-symbol-server"
+      $SymbolsOnSymWeb = FirstMatchingSymbolDescriptionOrDefault $_.FullName "--internal-server"
+  
+      if ($SymbolsOnMSDL -ne $null -and $SymbolsOnSymWeb -ne $null) {
+        Write-Host "Symbols found on MSDL (" $SymbolsOnMSDL ") and SymWeb (" $SymbolsOnSymWeb ")"
+      }
+      else {
+        $MissingSymbols++
+
+        if ($SymbolsOnMSDL -eq $null -and $SymbolsOnSymWeb -eq $null) {
+          Write-Host "No symbols found on MSDL or SymWeb!"
+        }
+        else {
+          if ($SymbolsOnMSDL -eq $null) {
+            Write-Host "No symbols found on MSDL!"
+          }
+          else {
+            Write-Host "No symbols found on SymWeb!"
+          }
+        }
+      }
+    }
+  
+  Pop-Location
+
+  return $MissingSymbols
+}
+
+function CheckSymbolsAvailable {
+  if (Test-Path $ExtractPath) {
+    Remove-Item -recurse $ExtractPath
+  }
+
+  Get-ChildItem "$InputPath\*.nupkg" |
+    ForEach-Object {
+      $FileName = $_.Name
+      Write-Host "Validating $FileName "
+      $Status = CountMissingSymbols "$InputPath\$FileName"
+  
+      if ($Status -ne 0) {
+        Write-Error "Missing symbols for $Status modules in the package $FileName"
+      }
+    }
+}
+
+CheckSymbolsAvailable
index 37dcfed..8172ac7 100644 (file)
@@ -7,7 +7,7 @@
     "python": "2.7.15"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19214.2",
-    "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19214.2"
+    "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19215.12",
+    "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19215.12"
   }
 }