diff --git a/Directory.Build.props b/Directory.Build.props
index 169bc4a620..82ab570fbd 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -3,25 +3,21 @@
-
+
$(CopyrightNetFoundation)
MIT
-
+
false
C#
true
true
Latest
-
-
- LICENSE
-
diff --git a/LICENSE b/LICENSE
index f6b64dc48f..984713a496 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,8 @@
-MIT License
+The MIT License (MIT)
-Copyright (c) 2018 .NET Foundation
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 87b8ad3deb..221b712141 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -2,9 +2,9 @@
-
+
https://github.com/dotnet/arcade
- 2ca74c76adc84f0459b4a0352034db463d0b910f
+ 9d0fd805448082c8d55e2434607b481bca70a146
diff --git a/eng/common/PublishToPackageFeed.proj b/eng/common/PublishToPackageFeed.proj
index b26d28a90b..e17f72644e 100644
--- a/eng/common/PublishToPackageFeed.proj
+++ b/eng/common/PublishToPackageFeed.proj
@@ -1,21 +1,29 @@
-
+
+
+
netcoreapp2.1
+
+
+
-
+
@@ -26,7 +34,31 @@
-
+
+
+
+ https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
+ https://dotnetfeed.blob.core.windows.net/arcade-validation/index.json
+ https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json
+ https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json
+ https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json
+ https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json
+ https://dotnetfeed.blob.core.windows.net/dotnet-coreclr/index.json
+ https://dotnetfeed.blob.core.windows.net/dotnet-sdk/index.json
+ https://dotnetfeed.blob.core.windows.net/dotnet-tools-internal/index.json
+ https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json
+ https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json
+ https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json
+
+
+
+
+ PackageAssetsBasePath="$(PackageBasePath)"/>
diff --git a/eng/common/PublishToSymbolServers.proj b/eng/common/PublishToSymbolServers.proj
new file mode 100644
index 0000000000..5d55e312b0
--- /dev/null
+++ b/eng/common/PublishToSymbolServers.proj
@@ -0,0 +1,82 @@
+
+
+
+
+
+ netcoreapp2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3650
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/common/SigningValidation.proj b/eng/common/SigningValidation.proj
new file mode 100644
index 0000000000..7045fb6fb9
--- /dev/null
+++ b/eng/common/SigningValidation.proj
@@ -0,0 +1,83 @@
+
+
+
+
+
+ netcoreapp2.1
+
+
+
+
+
+
+
+ $(NuGetPackageRoot)Microsoft.DotNet.SignCheck\$(SignCheckVersion)\tools\Microsoft.DotNet.SignCheck.exe
+
+ $(PackageBasePath)
+ signcheck.log
+ signcheck.errors.log
+ signcheck.exclusions.txt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/common/darc-init.ps1 b/eng/common/darc-init.ps1
index 2467ebdd42..81ffd16779 100644
--- a/eng/common/darc-init.ps1
+++ b/eng/common/darc-init.ps1
@@ -19,7 +19,7 @@ function InstallDarcCli ($darcVersion) {
# Until we can anonymously query the BAR API for the latest arcade-services
# build applied to the PROD channel, this is hardcoded.
if (-not $darcVersion) {
- $darcVersion = '1.1.0-beta.19151.3'
+ $darcVersion = '1.1.0-beta.19205.4'
}
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json'
diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh
index 8d63dd711b..bd7eb46398 100644
--- a/eng/common/darc-init.sh
+++ b/eng/common/darc-init.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
source="${BASH_SOURCE[0]}"
-darcVersion="1.1.0-beta.19151.3"
+darcVersion="1.1.0-beta.19205.4"
while [[ $# > 0 ]]; do
opt="$(echo "$1" | awk '{print tolower($0)}')"
diff --git a/eng/common/generate-graph-files.ps1 b/eng/common/generate-graph-files.ps1
index e09c64e9f6..a05b84f798 100644
--- a/eng/common/generate-graph-files.ps1
+++ b/eng/common/generate-graph-files.ps1
@@ -3,7 +3,8 @@ Param(
[Parameter(Mandatory=$true)][string] $gitHubPat, # GitHub personal access token from https://github.com/settings/tokens (no auth scopes needed)
[Parameter(Mandatory=$true)][string] $azdoPat, # Azure Dev Ops tokens from https://dev.azure.com/dnceng/_details/security/tokens (code read scope needed)
[Parameter(Mandatory=$true)][string] $outputFolder, # Where the graphviz.txt file will be created
- [string] $darcVersion = '1.1.0-beta.19156.4', # darc's version
+ [string] $darcVersion = '1.1.0-beta.19175.6', # darc's version
+ [string] $graphvizVersion = '2.38', # GraphViz version
[switch] $includeToolset # Whether the graph should include toolset dependencies or not. i.e. arcade, optimization. For more about
# toolset dependencies see https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#toolset-vs-product-dependencies
)
@@ -11,6 +12,8 @@ Param(
$ErrorActionPreference = "Stop"
. $PSScriptRoot\tools.ps1
+Import-Module -Name (Join-Path $PSScriptRoot "native\CommonLibrary.psm1")
+
function CheckExitCode ([string]$stage)
{
$exitCode = $LASTEXITCODE
@@ -27,27 +30,48 @@ try {
. .\darc-init.ps1 -darcVersion $darcVersion
CheckExitCode "Running darc-init"
+ $engCommonBaseDir = Join-Path $PSScriptRoot "native\"
+ $graphvizInstallDir = CommonLibrary\Get-NativeInstallDirectory
+ $nativeToolBaseUri = "https://netcorenativeassets.blob.core.windows.net/resource-packages/external"
+ $installBin = Join-Path $graphvizInstallDir "bin"
+
+ Write-Host "Installing dot..."
+ .\native\install-tool.ps1 -ToolName graphviz -InstallPath $installBin -BaseUri $nativeToolBaseUri -CommonLibraryDirectory $engCommonBaseDir -Version $graphvizVersion -Verbose
+
$darcExe = "$env:USERPROFILE\.dotnet\tools"
$darcExe = Resolve-Path "$darcExe\darc.exe"
Create-Directory $outputFolder
+ # Generate 3 graph descriptions:
+ # 1. Flat with coherency information
+ # 2. Graphviz (dot) file
+ # 3. Standard dependency graph
$graphVizFilePath = "$outputFolder\graphviz.txt"
- $graphFilePath = "$outputFolder\graph.txt"
- $options = "get-dependency-graph --graphviz '$graphVizFilePath' --github-pat $gitHubPat --azdev-pat $azdoPat --password $barToken --output-file $graphFilePath"
+ $graphVizImageFilePath = "$outputFolder\graph.png"
+ $normalGraphFilePath = "$outputFolder\graph-full.txt"
+ $flatGraphFilePath = "$outputFolder\graph-flat.txt"
+ $baseOptions = "get-dependency-graph --github-pat $gitHubPat --azdev-pat $azdoPat --password $barToken"
if ($includeToolset) {
Write-Host "Toolsets will be included in the graph..."
- $options += " --include-toolset"
+ $baseOptions += " --include-toolset"
}
- Write-Host "Generating dependency graph..."
- Invoke-Expression "& `"$darcExe`" $options"
- CheckExitCode "Generating dependency graph"
+ Write-Host "Generating standard dependency graph..."
+ Invoke-Expression "& `"$darcExe`" $baseOptions --output-file $normalGraphFilePath"
+ CheckExitCode "Generating normal dependency graph"
+
+ Write-Host "Generating flat dependency graph and graphviz file..."
+ Invoke-Expression "& `"$darcExe`" $baseOptions --flat --coherency --graphviz $graphVizFilePath --output-file $flatGraphFilePath"
+ CheckExitCode "Generating flat and graphviz dependency graph"
+
+ Write-Host "Generating graph image $graphVizFilePath"
+ $dotFilePath = Join-Path $installBin "graphviz\$graphvizVersion\release\bin\dot.exe"
+ Invoke-Expression "& `"$dotFilePath`" -Tpng -o'$graphVizImageFilePath' `"$graphVizFilePath`""
+ CheckExitCode "Generating graphviz image"
- $graph = Get-Content $graphVizFilePath
- Set-Content $graphVizFilePath -Value "Paste the following digraph object in http://www.webgraphviz.com `r`n", $graph
- Write-Host "'$graphVizFilePath' and '$graphFilePath' created!"
+ Write-Host "'$graphVizFilePath', '$flatGraphFilePath', '$normalGraphFilePath' and '$graphVizImageFilePath' created!"
}
catch {
if (!$includeToolset) {
@@ -58,4 +82,6 @@ catch {
Write-Host $_.Exception
Write-Host $_.ScriptStackTrace
ExitWithExitCode 1
+} finally {
+ Pop-Location
}
\ No newline at end of file
diff --git a/eng/common/init-tools-native.ps1 b/eng/common/init-tools-native.ps1
index e25c60fed4..495a563a75 100644
--- a/eng/common/init-tools-native.ps1
+++ b/eng/common/init-tools-native.ps1
@@ -98,10 +98,20 @@ try {
Write-Verbose "Executing '$LocalInstallerCommand'"
Invoke-Expression "$LocalInstallerCommand"
if ($LASTEXITCODE -Ne "0") {
- Write-Error "Execution failed"
- exit 1
+ $errMsg = "$ToolName installation failed"
+ if ((Get-Variable 'DoNotAbortNativeToolsInstallationOnFailure' -ErrorAction 'SilentlyContinue') -and $DoNotAbortNativeToolsInstallationOnFailure) {
+ Write-Warning $errMsg
+ $toolInstallationFailure = $true
+ } else {
+ Write-Error $errMsg
+ exit 1
+ }
}
}
+
+ if ((Get-Variable 'toolInstallationFailure' -ErrorAction 'SilentlyContinue') -and $toolInstallationFailure) {
+ exit 1
+ }
}
else {
Write-Host "No native tools defined in global.json"
diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml
index d6d8697cbd..620bd3c62e 100644
--- a/eng/common/templates/job/publish-build-assets.yml
+++ b/eng/common/templates/job/publish-build-assets.yml
@@ -20,6 +20,9 @@ parameters:
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
runAsPublic: false
+ # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
+ publishUsingPipelines: false
+
jobs:
- job: Asset_Registry_Publish
@@ -52,6 +55,7 @@ jobs:
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
/p:Configuration=$(_BuildConfig)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml
index 06ed58de41..6a2f98c036 100644
--- a/eng/common/templates/jobs/jobs.yml
+++ b/eng/common/templates/jobs/jobs.yml
@@ -13,6 +13,9 @@ parameters:
# Optional: Enable publishing to the build asset registry
enablePublishBuildAssets: false
+
+ # Optional: Enable publishing using release pipelines
+ enablePublishUsingPipelines: false
graphFileGeneration:
# Optional: Enable generating the graph files at the end of the build
@@ -73,6 +76,7 @@ jobs:
pool:
vmImage: vs2017-win2016
runAsPublic: ${{ parameters.runAsPublic }}
+ publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
- ${{ if and(eq(parameters.graphFileGeneration.enabled, true), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
diff --git a/eng/common/templates/phases/publish-build-assets.yml b/eng/common/templates/phases/publish-build-assets.yml
index 211967deba..a0a8074282 100644
--- a/eng/common/templates/phases/publish-build-assets.yml
+++ b/eng/common/templates/phases/publish-build-assets.yml
@@ -5,6 +5,7 @@ parameters:
condition: succeeded()
continueOnError: false
runAsPublic: false
+ publishUsingPipelines: false
phases:
- phase: Asset_Registry_Publish
displayName: Publish to Build Asset Registry
@@ -36,6 +37,7 @@ phases:
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
/p:Configuration=$(_BuildConfig)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml
index 0925e8ebd1..7c185e9414 100644
--- a/eng/common/templates/steps/send-to-helix.yml
+++ b/eng/common/templates/steps/send-to-helix.yml
@@ -1,8 +1,9 @@
+# Please remember to update the documentation if you make changes to these parameters!
parameters:
HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/
HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
- HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/api/2018-03-14/info/queues for a list of queues
+ HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
HelixPostCommands: '' # optional -- commands to run after Helix work item execution
@@ -11,6 +12,7 @@ parameters:
WorkItemTimeout: '' # optional -- a timeout in seconds for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload
XUnitProjects: '' # optional -- semicolon delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
+ XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects
XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects
XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner
XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects
@@ -42,6 +44,7 @@ steps:
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
XUnitProjects: ${{ parameters.XUnitProjects }}
+ XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
@@ -70,6 +73,7 @@ steps:
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
XUnitProjects: ${{ parameters.XUnitProjects }}
+ XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
@@ -81,4 +85,4 @@ steps:
Creator: ${{ parameters.Creator }}
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
- continueOnError: ${{ parameters.continueOnError }}
\ No newline at end of file
+ continueOnError: ${{ parameters.continueOnError }}
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index de7523cae5..5c4a129c86 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -518,6 +518,10 @@ Create-Directory $TempDir
Create-Directory $LogDir
if ($ci) {
+ Write-Host "##vso[task.setvariable variable=Artifacts]$ArtifactsDir"
+ Write-Host "##vso[task.setvariable variable=Artifacts.Toolset]$ToolsetDir"
+ Write-Host "##vso[task.setvariable variable=Artifacts.Log]$LogDir"
+
$env:TEMP = $TempDir
$env:TMP = $TempDir
}
diff --git a/global.json b/global.json
index 5d45e06eb5..21d0943048 100644
--- a/global.json
+++ b/global.json
@@ -1,11 +1,11 @@
{
"tools": {
- "dotnet": "2.1.403"
+ "dotnet": "2.1.503"
},
"sdk": {
- "version": "2.1.403"
+ "version": "2.1.503"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19161.14"
+ "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19212.2"
}
}
diff --git a/src/Iot.Device.Bindings/Directory.Build.props b/src/Iot.Device.Bindings/Directory.Build.props
index d5b51ff0e6..32ab593778 100644
--- a/src/Iot.Device.Bindings/Directory.Build.props
+++ b/src/Iot.Device.Bindings/Directory.Build.props
@@ -4,9 +4,8 @@
0
1
This preview package provides a set of Device Bindings that use System.Device.Gpio package to communicate with a microcontroller.
- Microsoft Corporation, All rights reserved.
.NET Core GPIO Pins SPI I2C PWM BCM2835 BCM2837 RPi IoT Device Bindings
-
\ No newline at end of file
+
diff --git a/src/System.Device.Gpio/Directory.Build.props b/src/System.Device.Gpio/Directory.Build.props
index 86cdad5da3..0638ea40a9 100644
--- a/src/System.Device.Gpio/Directory.Build.props
+++ b/src/System.Device.Gpio/Directory.Build.props
@@ -5,11 +5,10 @@
1
The System.Device.Gpio preview package supports general-purpose I/O (GPIO) pins, PWM, I2C, SPI and related interfaces for interacting with low level hardware pins to control hardware sensors, displays and input devices on single-board-computers; Raspberry Pi, BeagleBoard, HummingBoard, ODROID, and other single-board-computers that are supported by Linux and Windows 10 IoT Core OS can be used with .NET Core and System.Device.Gpio. On Windows 10 IoT Core OS, the library wraps the Windows.Devices.Gpio.dll assembly. On Linux, the library supports three driver modes: libgpiod for fast full-featured GPIO access on all Linux distros since version 4.8 of the Linux kernel; slower and limited-functionality GPIO access via the deprecated Sysfs interface (/sys/class/gpio) when running on older Linux distro versions with a Linux kernel older than version 4.8; and lastly board-specific Linux drivers that access GPIO addresses in /dev/mem for fasted performance at the trade-off of being able to run on very specific versions of single-board-computers. In the future, the board-specific Linux drivers may be removed in favor of only supporting libgpiod and sysfs Linux interfaces. In addition to System.Device.Gpio, the optional IoT.Device.Bindings NuGet package contains device bindings for many sensors, displays, and input devices that can be used with System.Device.Gpio.
- Microsoft Corporation, All rights reserved.
false
.NET Core GPIO Pins SPI I2C PWM BCM2835 RPi IoT
-
+
win