Skip to content

Commit 7a640e5

Browse files
authored
Merge pull request #37077 from dotnet/merge/release/10.0-to-main
[automated] Merge branch 'release/10.0' => 'main'
2 parents cbe388b + 0f3eab1 commit 7a640e5

File tree

8 files changed

+57
-102
lines changed

8 files changed

+57
-102
lines changed

.config/guardian/.gdnbaselines

Lines changed: 6 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -7,100 +7,20 @@
77
"baselines": {
88
"default": {
99
"name": "default",
10-
"createdDate": "2025-10-09 21:18:42Z",
11-
"lastUpdatedDate": "2025-10-09 21:18:42Z"
10+
"createdDate": "2025-11-04 05:05:39Z",
11+
"lastUpdatedDate": "2025-11-04 05:05:39Z"
1212
}
1313
},
1414
"results": {
15-
"9d8334bec997ff899ba849d8b31406f7c95af0ffb1d237972bd5134b8c6a9b88": {
16-
"signature": "9d8334bec997ff899ba849d8b31406f7c95af0ffb1d237972bd5134b8c6a9b88",
15+
"289457ef952517284338044be0d68120ad96554e2cd793b14a427b2208be2990": {
16+
"signature": "289457ef952517284338044be0d68120ad96554e2cd793b14a427b2208be2990",
1717
"alternativeSignatures": [
18-
"b6a603191b00edf78ad2c6116a7a7822864031cc001884be25b3c1543dbe20a7"
18+
"8b86228cd1b156622e76e1845b23b901cafd908a4dc0a7b7bdd5cdd714b726ab"
1919
],
2020
"memberOf": [
2121
"default"
2222
],
23-
"createdDate": "2025-10-09 21:18:42Z"
24-
},
25-
"ba7df56f5519347813a7917091709adf2d27b3493d05af0fb8b7037eda3020bb": {
26-
"signature": "ba7df56f5519347813a7917091709adf2d27b3493d05af0fb8b7037eda3020bb",
27-
"alternativeSignatures": [
28-
"5269e81e8a286ccd1568a00c455c489efa62e6887bfb55ea0dddaceb7183c882"
29-
],
30-
"memberOf": [
31-
"default"
32-
],
33-
"createdDate": "2025-10-09 21:18:42Z"
34-
},
35-
"bc04851b7440a10a0c2a03f2793ab06b6562fe0529e0d353765503f1bcaf8c46": {
36-
"signature": "bc04851b7440a10a0c2a03f2793ab06b6562fe0529e0d353765503f1bcaf8c46",
37-
"alternativeSignatures": [
38-
"274b9a26e35f9604cd1c84941eb97f2edaecde6607be139e9d9d687f7d6875f4"
39-
],
40-
"memberOf": [
41-
"default"
42-
],
43-
"createdDate": "2025-10-09 21:18:42Z"
44-
},
45-
"9fb27502e61c5647554076d6603a1092943fb625efb6c53faa1042e0d7d217ce": {
46-
"signature": "9fb27502e61c5647554076d6603a1092943fb625efb6c53faa1042e0d7d217ce",
47-
"alternativeSignatures": [
48-
"3355e030588f68be29994a44e2b11079e90945e26c6397345d11424ce36cc5a1"
49-
],
50-
"memberOf": [
51-
"default"
52-
],
53-
"createdDate": "2025-10-09 21:18:42Z"
54-
},
55-
"60f28802b8ac837691755554b460b422afaeb8dea2129097ab3b7e6c43076ea1": {
56-
"signature": "60f28802b8ac837691755554b460b422afaeb8dea2129097ab3b7e6c43076ea1",
57-
"alternativeSignatures": [
58-
"7a3aa28c8f6e629099ba288e1a78ddb3191def880ae018f7146b66689daca838"
59-
],
60-
"memberOf": [
61-
"default"
62-
],
63-
"createdDate": "2025-10-09 21:18:42Z"
64-
},
65-
"3bc55e953e7199f08b4c174f6fb0f026db93865d22fc5ef535e2ba1172c8db03": {
66-
"signature": "3bc55e953e7199f08b4c174f6fb0f026db93865d22fc5ef535e2ba1172c8db03",
67-
"alternativeSignatures": [
68-
"fb3809bbf91d374d8872aa371ff0d8858232822571dae6f9e6cba6276892d953"
69-
],
70-
"memberOf": [
71-
"default"
72-
],
73-
"createdDate": "2025-10-09 21:18:42Z"
74-
},
75-
"bd69975ed44d92efc4a265e13462b1471f292ad9e8566b0200b2df7786808469": {
76-
"signature": "bd69975ed44d92efc4a265e13462b1471f292ad9e8566b0200b2df7786808469",
77-
"alternativeSignatures": [
78-
"609bf3d92ef1f73cbe4d3fa001926c0e274b04f21bf6d103a39a64849437e7e3"
79-
],
80-
"memberOf": [
81-
"default"
82-
],
83-
"createdDate": "2025-10-09 21:18:42Z"
84-
},
85-
"0b6a4ced009a4e3efdf4ad8f00c0b31ec0791249087560c5c6481ab2824a35a8": {
86-
"signature": "0b6a4ced009a4e3efdf4ad8f00c0b31ec0791249087560c5c6481ab2824a35a8",
87-
"alternativeSignatures": [
88-
"c19c086ed81a8e7d7877bb2fb5a9d7df126ad553cbdd32086694b927042adc0b"
89-
],
90-
"memberOf": [
91-
"default"
92-
],
93-
"createdDate": "2025-10-09 21:18:42Z"
94-
},
95-
"c689fe4e10fee4bdd5a3d759c027be8b89d28303078f76bb5aeb20dc192215c9": {
96-
"signature": "c689fe4e10fee4bdd5a3d759c027be8b89d28303078f76bb5aeb20dc192215c9",
97-
"alternativeSignatures": [
98-
"4faf3b308c9131f0e11686d21fd36e1ef6779c394d37cfc43cd360b4bfb086f5"
99-
],
100-
"memberOf": [
101-
"default"
102-
],
103-
"createdDate": "2025-10-09 21:18:42Z"
23+
"createdDate": "2025-11-04 05:05:39Z"
10424
}
10525
}
10626
}

azure-pipelines.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ extends:
4444
featureFlags:
4545
autoBaseline: false
4646
usePrefastVersion3: true
47-
autoEnableRoslynWithNewRuleset: false
47+
autoEnableRoslynWithNewRuleset: false
48+
binskimScanAllExtensions: true
4849
sdl:
4950
createAdoIssuesForJustificationsForDisablement: false
5051
sourceAnalysisPool:
@@ -55,12 +56,12 @@ extends:
5556
baselineFile: $(Build.SourcesDirectory)\.config\guardian\.gdnbaselines
5657
binskim:
5758
scanOutputDirectoryOnly: true
58-
analyzeTargetGlob: '+:f|artifacts/bin/**/Microsoft.EntityFrameworkCore*.dll;+:f|artifacts/bin/**/Microsoft.Data.Sqlite*.dll;+:f|artifacts/bin/**/ef.exe;+:f|artifacts/bin/**/dotnet-ef.exe;-:f|artifacts/bin/**/shims/**/*.exe;'
59+
analyzeTargetGlob: +:f|**/Microsoft.EntityFrameworkCore*.dll;+:f|**/Microsoft.Data.Sqlite*.dll;+:f|**/ef.exe;+:f|**/dotnet-ef.exe;-:f|**/shims/**/*.exe;
5960
preReleaseVersion: '4.3.1'
6061
env:
61-
GDN_EXTRACT_TOOLS: "binskim"
62+
GDN_EXTRACT_TOOLS: 'binskim'
6263
GDN_EXTRACT_TARGETS: true
63-
GDN_EXTRACT_FILTER: "f|**\\*.zip;f|**\\*.nupkg;f|**\\*.vsix;f|**\\*.cspkg;f|**\\*.sfpkg;f|**\\*.package"
64+
GDN_EXTRACT_FILTER: 'f|**/*.zip;f|**/*.nupkg;f|**/*.vsix;f|**/*.cspkg;f|**/*.sfpkg;f|**/*.package'
6465
policheck:
6566
enabled: true
6667
tsa:

eng/Versions.props

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Project>
22
<Import Project="Version.Details.props" Condition="Exists('Version.Details.props')" />
33
<PropertyGroup Label="Version settings">
4-
<VersionPrefix>10.0.0</VersionPrefix>
5-
<PreReleaseVersionLabel>rtm</PreReleaseVersionLabel>
4+
<VersionPrefix>10.0.1</VersionPrefix>
5+
<PreReleaseVersionLabel>servicing</PreReleaseVersionLabel>
66
<PreReleaseVersionIteration></PreReleaseVersionIteration>
77
<IncludeSourceRevisionInInformationalVersion>False</IncludeSourceRevisionInInformationalVersion>
88
<IsServicingBuild Condition="'$(PreReleaseVersionLabel)' == 'servicing'">true</IsServicingBuild>
@@ -16,7 +16,7 @@
1616
<PropertyGroup Label="Arcade settings">
1717
<UsingToolXliff>False</UsingToolXliff>
1818
</PropertyGroup>
19-
<PropertyGroup Label="MSBuild and Roslyn" Condition="'$(IsServicingBuild)' != 'true'">
19+
<PropertyGroup Label="MSBuild and Roslyn" Condition="'$(IsServicingBuild)' == 'true'">
2020
<!-- For MSBuild and Roslyn packages use the previous stable version until the current stable build is released. -->
2121
<MicrosoftBuildFrameworkVersion>17.14.28</MicrosoftBuildFrameworkVersion>
2222
<MicrosoftBuildUtilitiesCoreVersion>17.14.28</MicrosoftBuildUtilitiesCoreVersion>
@@ -25,14 +25,15 @@
2525
<MicrosoftCodeAnalysisCSharpWorkspacesVersion>4.14.0</MicrosoftCodeAnalysisCSharpWorkspacesVersion>
2626
<MicrosoftCodeAnalysisWorkspacesMSBuildVersion>4.14.0</MicrosoftCodeAnalysisWorkspacesMSBuildVersion>
2727
</PropertyGroup>
28+
<!-- Revert once roslyn publishes 5.0.0 packages
2829
<PropertyGroup Label="MSBuild and Roslyn" Condition="'$(IsServicingBuild)' == 'true'">
2930
<MicrosoftBuildFrameworkVersion>17.15.0</MicrosoftBuildFrameworkVersion>
3031
<MicrosoftBuildUtilitiesCoreVersion>17.15.0</MicrosoftBuildUtilitiesCoreVersion>
3132
<MicrosoftBuildTasksCoreVersion>17.15.0</MicrosoftBuildTasksCoreVersion>
3233
<MicrosoftCodeAnalysisCSharpVersion>5.0.0</MicrosoftCodeAnalysisCSharpVersion>
3334
<MicrosoftCodeAnalysisCSharpWorkspacesVersion>5.0.0</MicrosoftCodeAnalysisCSharpWorkspacesVersion>
3435
<MicrosoftCodeAnalysisWorkspacesMSBuildVersion>5.0.0</MicrosoftCodeAnalysisWorkspacesMSBuildVersion>
35-
</PropertyGroup>
36+
</PropertyGroup> -->
3637
<PropertyGroup Label="Other dependencies">
3738
<MicrosoftCodeAnalysisAnalyzerTestingVersion>1.1.3-beta1.24423.1</MicrosoftCodeAnalysisAnalyzerTestingVersion>
3839
<MicrosoftCodeAnalysisCSharpTestingVersion>1.1.3-beta1.24352.1</MicrosoftCodeAnalysisCSharpTestingVersion>
@@ -41,4 +42,4 @@
4142
<OpenTelemetryExporterInMemoryVersion>1.12.0</OpenTelemetryExporterInMemoryVersion>
4243
<SQLitePCLRawVersion>3.0.2</SQLitePCLRawVersion>
4344
</PropertyGroup>
44-
</Project>
45+
</Project>

eng/common/SetupNugetSources.ps1

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# This script adds internal feeds required to build commits that depend on internal package sources. For instance,
2-
# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables
3-
# disabled internal Maestro (darc-int*) feeds.
2+
# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly,
3+
# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present.
4+
# In addition, this script also enables disabled internal Maestro (darc-int*) feeds.
45
#
56
# Optionally, this script also adds a credential entry for each of the internal feeds if supplied.
67
#
@@ -173,4 +174,16 @@ foreach ($dotnetVersion in $dotnetVersions) {
173174
}
174175
}
175176

177+
# Check for dotnet-eng and add dotnet-eng-internal if present
178+
$dotnetEngSource = $sources.SelectSingleNode("add[@key='dotnet-eng']")
179+
if ($dotnetEngSource -ne $null) {
180+
AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-eng-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password
181+
}
182+
183+
# Check for dotnet-tools and add dotnet-tools-internal if present
184+
$dotnetToolsSource = $sources.SelectSingleNode("add[@key='dotnet-tools']")
185+
if ($dotnetToolsSource -ne $null) {
186+
AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "dotnet-tools-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password
187+
}
188+
176189
$doc.Save($filename)

eng/common/SetupNugetSources.sh

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#!/usr/bin/env bash
22

33
# This script adds internal feeds required to build commits that depend on internal package sources. For instance,
4-
# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. In addition also enables
5-
# disabled internal Maestro (darc-int*) feeds.
4+
# dotnet6-internal would be added automatically if dotnet6 was found in the nuget.config file. Similarly,
5+
# dotnet-eng-internal and dotnet-tools-internal are added if dotnet-eng and dotnet-tools are present.
6+
# In addition, this script also enables disabled internal Maestro (darc-int*) feeds.
67
#
78
# Optionally, this script also adds a credential entry for each of the internal feeds if supplied.
89
#
@@ -173,6 +174,18 @@ for DotNetVersion in ${DotNetVersions[@]} ; do
173174
fi
174175
done
175176

177+
# Check for dotnet-eng and add dotnet-eng-internal if present
178+
grep -i "<add key=\"dotnet-eng\"" $ConfigFile > /dev/null
179+
if [ "$?" == "0" ]; then
180+
AddOrEnablePackageSource "dotnet-eng-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-eng-internal/nuget/$FeedSuffix"
181+
fi
182+
183+
# Check for dotnet-tools and add dotnet-tools-internal if present
184+
grep -i "<add key=\"dotnet-tools\"" $ConfigFile > /dev/null
185+
if [ "$?" == "0" ]; then
186+
AddOrEnablePackageSource "dotnet-tools-internal" "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/$FeedSuffix"
187+
fi
188+
176189
# I want things split line by line
177190
PrevIFS=$IFS
178191
IFS=$'\n'

src/EFCore/ChangeTracking/ComplexElementEntry`.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public virtual ComplexPropertyEntry<TEntity, TNestedComplexProperty> ComplexProp
124124
/// </param>
125125
/// <returns>An object that exposes change tracking information and operations for the given property.</returns>
126126
public virtual ComplexCollectionEntry<TEntity, TElement> ComplexCollection<TElement>(
127-
Expression<Func<TEntity, IEnumerable<TElement>?>> propertyExpression)
127+
Expression<Func<TComplexProperty, IEnumerable<TElement>?>> propertyExpression)
128128
where TElement : notnull
129129
{
130130
Check.NotNull(propertyExpression, nameof(propertyExpression));

src/EFCore/ChangeTracking/ComplexPropertyEntry`.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public virtual ComplexPropertyEntry<TEntity, TNestedComplexProperty> ComplexProp
117117
/// </param>
118118
/// <returns>An object that exposes change tracking information and operations for the given property.</returns>
119119
public virtual ComplexCollectionEntry<TEntity, TElement> ComplexCollection<TElement>(
120-
Expression<Func<TEntity, IEnumerable<TElement>?>> propertyExpression)
120+
Expression<Func<TComplexProperty, IEnumerable<TElement>?>> propertyExpression)
121121
where TElement : notnull
122122
{
123123
Check.NotNull(propertyExpression, nameof(propertyExpression));

test/EFCore.Tests/ChangeTracking/Internal/InternalComplexEntryTest.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ public void DetectChanges_detects_changes_in_nested_complex_collections()
707707
{
708708
Items =
709709
[
710-
new NestedItem { Name = "bar" },
710+
new NestedItem { Name = "bar1" },
711711
new NestedItem { Name = "baz" },
712712
new NestedItem { Name = "new-bar" }
713713
]
@@ -717,6 +717,13 @@ public void DetectChanges_detects_changes_in_nested_complex_collections()
717717
changeDetector.DetectChanges(stateManager);
718718

719719
Assert.Equal(EntityState.Modified, entityEntry.EntityState);
720+
721+
var nestedJson = new EntityEntry<BlogWithNested>(entityEntry).ComplexProperty(b => b.NestedJson);
722+
var items = nestedJson.ComplexCollection(j => j.Items);
723+
Assert.Equal(3, items.CurrentValue!.Count);
724+
Assert.Equal(EntityState.Modified, items[0].State);
725+
Assert.Equal(EntityState.Unchanged, items[1].State);
726+
Assert.Equal(EntityState.Added, items[2].State);
720727
}
721728

722729
private static IModel CreateModel()

0 commit comments

Comments
 (0)