Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3cf064e

Browse files
author
msftbot[bot]
authored
Merge pull request #31483 from dotnet-maestro-bot/merge/release/8.0-to-main
[automated] Merge branch 'release/8.0' => 'main'
2 parents 7318c4b + eff9864 commit 3cf064e

27 files changed

+7670
-609
lines changed

eng/Version.Details.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@
5656
</Dependency>
5757
</ProductDependencies>
5858
<ToolsetDependencies>
59-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23411.1">
59+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23415.4">
6060
<Uri>https://github.com/dotnet/arcade</Uri>
61-
<Sha>9b2af35a6702526dc8a7c5fcadcc44efd0dca170</Sha>
61+
<Sha>46ff142f43e887d5f9a4d87ef39d72166f61db8d</Sha>
6262
</Dependency>
63-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="8.0.0-beta.23411.1">
63+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="8.0.0-beta.23415.4">
6464
<Uri>https://github.com/dotnet/arcade</Uri>
65-
<Sha>9b2af35a6702526dc8a7c5fcadcc44efd0dca170</Sha>
65+
<Sha>46ff142f43e887d5f9a4d87ef39d72166f61db8d</Sha>
6666
</Dependency>
67-
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="8.0.0-beta.23411.1">
67+
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="8.0.0-beta.23415.4">
6868
<Uri>https://github.com/dotnet/arcade</Uri>
69-
<Sha>9b2af35a6702526dc8a7c5fcadcc44efd0dca170</Sha>
69+
<Sha>46ff142f43e887d5f9a4d87ef39d72166f61db8d</Sha>
7070
</Dependency>
7171
</ToolsetDependencies>
7272
</Dependencies>

eng/Versions.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<MicrosoftNETCoreBrowserDebugHostTransportVersion>8.0.0-rc.1.23402.2</MicrosoftNETCoreBrowserDebugHostTransportVersion>
3232
</PropertyGroup>
3333
<PropertyGroup Label="Dependencies from dotnet/arcade">
34-
<MicrosoftDotNetBuildTasksTemplatingVersion>8.0.0-beta.23411.1</MicrosoftDotNetBuildTasksTemplatingVersion>
34+
<MicrosoftDotNetBuildTasksTemplatingVersion>8.0.0-beta.23415.4</MicrosoftDotNetBuildTasksTemplatingVersion>
3535
</PropertyGroup>
3636
<PropertyGroup Label="Other dependencies">
3737
<!-- NB: This version affects Visual Studio compatibility. See https://learn.microsoft.com/visualstudio/extensibility/roslyn-version-support -->

eng/common/SetupNugetSources.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ if ($dotnet31Source -ne $null) {
153153
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
154154
}
155155

156-
$dotnetVersions = @('5','6','7')
156+
$dotnetVersions = @('5','6','7','8')
157157

158158
foreach ($dotnetVersion in $dotnetVersions) {
159159
$feedPrefix = "dotnet" + $dotnetVersion;

eng/common/SetupNugetSources.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ if [ "$?" == "0" ]; then
105105
PackageSources+=('dotnet3.1-internal-transport')
106106
fi
107107

108-
DotNetVersions=('5' '6' '7')
108+
DotNetVersions=('5' '6' '7' '8')
109109

110110
for DotNetVersion in ${DotNetVersions[@]} ; do
111111
FeedPrefix="dotnet${DotNetVersion}";

eng/common/native/init-distro-rid.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ getNonPortableDistroRid()
7979
# Input:
8080
# os: (str)
8181
# arch: (str)
82-
# isPortable: (int)
8382
# rootfsDir?: (nullable:string)
8483
#
8584
# Return:
@@ -97,10 +96,9 @@ initDistroRidGlobal()
9796
{
9897
local targetOs="$1"
9998
local targetArch="$2"
100-
local isPortable="$3"
10199
local rootfsDir=""
102-
if [ "$#" -ge 4 ]; then
103-
rootfsDir="$4"
100+
if [ "$#" -ge 3 ]; then
101+
rootfsDir="$3"
104102
fi
105103

106104
if [ -n "${rootfsDir}" ]; then
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<#
2+
.SYNOPSIS
3+
Install and run the 'Microsoft.DotNet.VersionTools.Cli' tool with the 'trim-artifacts-version' command to trim the version from the NuGet assets file name.
4+
5+
.PARAMETER InputPath
6+
Full path to directory where artifact packages are stored
7+
8+
.PARAMETER Recursive
9+
Search for NuGet packages recursively
10+
11+
#>
12+
13+
Param(
14+
[string] $InputPath,
15+
[bool] $Recursive = $true
16+
)
17+
18+
$CliToolName = "Microsoft.DotNet.VersionTools.Cli"
19+
20+
function Install-VersionTools-Cli {
21+
param(
22+
[Parameter(Mandatory=$true)][string]$Version
23+
)
24+
25+
Write-Host "Installing the package '$CliToolName' with a version of '$version' ..."
26+
$feed = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json"
27+
28+
$argumentList = @("tool", "install", "--local", "$CliToolName", "--add-source $feed", "--no-cache", "--version $Version")
29+
Start-Process "$dotnet" -Verbose -ArgumentList $argumentList -NoNewWindow -Wait
30+
}
31+
32+
# -------------------------------------------------------------------
33+
34+
if (!(Test-Path $InputPath)) {
35+
Write-Host "Input Path '$InputPath' does not exist"
36+
ExitWithExitCode 1
37+
}
38+
39+
$ErrorActionPreference = 'Stop'
40+
Set-StrictMode -Version 2.0
41+
42+
$disableConfigureToolsetImport = $true
43+
$global:LASTEXITCODE = 0
44+
45+
# `tools.ps1` checks $ci to perform some actions. Since the SDL
46+
# scripts don't necessarily execute in the same agent that run the
47+
# build.ps1/sh script this variable isn't automatically set.
48+
$ci = $true
49+
. $PSScriptRoot\..\tools.ps1
50+
51+
try {
52+
$dotnetRoot = InitializeDotNetCli -install:$true
53+
$dotnet = "$dotnetRoot\dotnet.exe"
54+
55+
$toolsetVersion = Read-ArcadeSdkVersion
56+
Install-VersionTools-Cli -Version $toolsetVersion
57+
58+
$cliToolFound = (& "$dotnet" tool list --local | Where-Object {$_.Split(' ')[0] -eq $CliToolName})
59+
if ($null -eq $cliToolFound) {
60+
Write-PipelineTelemetryError -Force -Category 'Sdl' -Message "The '$CliToolName' tool is not installed."
61+
ExitWithExitCode 1
62+
}
63+
64+
Exec-BlockVerbosely {
65+
& "$dotnet" $CliToolName trim-assets-version `
66+
--assets-path $InputPath `
67+
--recursive $Recursive
68+
Exit-IfNZEC "Sdl"
69+
}
70+
}
71+
catch {
72+
Write-Host $_
73+
Write-PipelineTelemetryError -Force -Category 'Sdl' -Message $_
74+
ExitWithExitCode 1
75+
}

eng/common/tools.ps1

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,14 +671,18 @@ function InitializeNativeTools() {
671671
}
672672
}
673673

674+
function Read-ArcadeSdkVersion() {
675+
return $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk'
676+
}
677+
674678
function InitializeToolset() {
675679
if (Test-Path variable:global:_ToolsetBuildProj) {
676680
return $global:_ToolsetBuildProj
677681
}
678682

679683
$nugetCache = GetNuGetPackageCachePath
680684

681-
$toolsetVersion = $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk'
685+
$toolsetVersion = Read-ArcadeSdkVersion
682686
$toolsetLocationFile = Join-Path $ToolsetDir "$toolsetVersion.txt"
683687

684688
if (Test-Path $toolsetLocationFile) {

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
}
1414
},
1515
"msbuild-sdks": {
16-
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23411.1",
17-
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23411.1"
16+
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23415.4",
17+
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23415.4"
1818
}
1919
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
5+
using Microsoft.EntityFrameworkCore.Metadata.Internal;
6+
7+
namespace Microsoft.EntityFrameworkCore.ChangeTracking;
8+
9+
/// <summary>
10+
/// Provides access to change tracking information and operations for a given property of a complex type.
11+
/// </summary>
12+
/// <remarks>
13+
/// <para>
14+
/// Instances of this class are returned from methods when using the <see cref="ChangeTracker" /> API and it is
15+
/// not designed to be directly constructed in your application code.
16+
/// </para>
17+
/// <para>
18+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
19+
/// examples.
20+
/// </para>
21+
/// </remarks>
22+
public class ComplexPropertyEntry : MemberEntry
23+
{
24+
/// <summary>
25+
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
26+
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
27+
/// any release. You should only use it directly in your code with extreme caution and knowing that
28+
/// doing so can result in application failures when updating to a new Entity Framework Core release.
29+
/// </summary>
30+
[EntityFrameworkInternal]
31+
public ComplexPropertyEntry(InternalEntityEntry internalEntry, IComplexProperty complexProperty)
32+
: base(internalEntry, complexProperty)
33+
{
34+
}
35+
36+
/// <summary>
37+
/// Gets or sets a value indicating whether any of the properties of the complex type have been modified
38+
/// and should be updated in the database when <see cref="DbContext.SaveChanges()" /> is called.
39+
/// </summary>
40+
/// <remarks>
41+
/// <para>
42+
/// Setting this value causes all of the properties of the complex type to be marked as modified or not as appropriate.
43+
/// </para>
44+
/// <para>
45+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
46+
/// examples.
47+
/// </para>
48+
/// </remarks>
49+
public override bool IsModified
50+
{
51+
get => Metadata.ComplexType.GetFlattenedProperties().Any(property => InternalEntry.IsModified(property));
52+
set
53+
{
54+
foreach (var property in Metadata.ComplexType.GetFlattenedProperties())
55+
{
56+
InternalEntry.SetPropertyModified(property, isModified: value);
57+
}
58+
}
59+
}
60+
61+
/// <summary>
62+
/// Gets the metadata that describes the facets of this property and how it maps to the database.
63+
/// </summary>
64+
public new virtual IComplexProperty Metadata
65+
=> (IComplexProperty)base.Metadata;
66+
67+
/// <summary>
68+
/// Provides access to change tracking information and operations for a given property of this complex type.
69+
/// </summary>
70+
/// <remarks>
71+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
72+
/// examples.
73+
/// </remarks>
74+
/// <param name="property">The property to access information and operations for.</param>
75+
/// <returns>An object that exposes change tracking information and operations for the given property.</returns>
76+
public virtual PropertyEntry Property(IProperty property)
77+
{
78+
Check.NotNull(property, nameof(property));
79+
80+
return new PropertyEntry(InternalEntry, property);
81+
}
82+
83+
/// <summary>
84+
/// Provides access to change tracking information and operations for a given property of this complex type.
85+
/// </summary>
86+
/// <remarks>
87+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
88+
/// examples.
89+
/// </remarks>
90+
/// <param name="propertyName">The property to access information and operations for.</param>
91+
/// <returns>An object that exposes change tracking information and operations for the given property.</returns>
92+
public virtual PropertyEntry Property(string propertyName)
93+
{
94+
Check.NotEmpty(propertyName, nameof(propertyName));
95+
96+
return new PropertyEntry(InternalEntry, Metadata.ComplexType.GetProperty(propertyName));
97+
}
98+
99+
/// <summary>
100+
/// Provides access to change tracking information and operations for all properties of this complex type.
101+
/// </summary>
102+
/// <remarks>
103+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
104+
/// examples.
105+
/// </remarks>
106+
public virtual IEnumerable<PropertyEntry> Properties
107+
=> Metadata.ComplexType.GetProperties().Select(property => new PropertyEntry(InternalEntry, property));
108+
109+
/// <summary>
110+
/// Provides access to change tracking information and operations for a given property of a nested complex type on this
111+
/// complex type.
112+
/// </summary>
113+
/// <remarks>
114+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
115+
/// examples.
116+
/// </remarks>
117+
/// <param name="property">The property to access information and operations for.</param>
118+
/// <returns>An object that exposes change tracking information and operations for the given property.</returns>
119+
public virtual ComplexPropertyEntry ComplexProperty(IComplexProperty property)
120+
{
121+
Check.NotNull(property, nameof(property));
122+
123+
return new ComplexPropertyEntry(InternalEntry, property);
124+
}
125+
126+
/// <summary>
127+
/// Provides access to change tracking information and operations for a given property of a nested complex type on this
128+
/// complex type.
129+
/// </summary>
130+
/// <remarks>
131+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
132+
/// examples.
133+
/// </remarks>
134+
/// <param name="propertyName">The property to access information and operations for.</param>
135+
/// <returns>An object that exposes change tracking information and operations for the given property.</returns>
136+
public virtual ComplexPropertyEntry ComplexProperty(string propertyName)
137+
{
138+
Check.NotEmpty(propertyName, nameof(propertyName));
139+
140+
return new ComplexPropertyEntry(InternalEntry, Metadata.ComplexType.GetComplexProperty(propertyName));
141+
}
142+
143+
/// <summary>
144+
/// Provides access to change tracking information and operations for all properties of nested complex types on this complex type.
145+
/// </summary>
146+
/// <remarks>
147+
/// See <see href="https://aka.ms/efcore-docs-entity-entries">Accessing tracked entities in EF Core</see> for more information and
148+
/// examples.
149+
/// </remarks>
150+
public virtual IEnumerable<ComplexPropertyEntry> ComplexProperties
151+
=> Metadata.ComplexType.GetComplexProperties().Select(property => new ComplexPropertyEntry(InternalEntry, property));
152+
}

0 commit comments

Comments
 (0)