Skip to content

[net9.0] Merge main to net9 #28936

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 30 commits into from
Apr 14, 2025
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
bc63d94
Fixed iOS cell resizing issue #23319, CellRenderer.GetCell may not be…
VitalyKnyazev Apr 1, 2025
d9438f2
[ci] Fix variable _UploadPathRoot (#28733)
github-actions[bot] Apr 1, 2025
a6bc852
[ci] Fix naming of workloads (#28742)
github-actions[bot] Apr 1, 2025
8ee00e0
Revert "[ci] Fix naming of workloads (#28742)" (#28754)
rmarinho Apr 2, 2025
05999a1
[iOS] CollectionView footer sizing when source is empty - fix (#28610)
kubaflo Apr 2, 2025
dad356b
[main] [ci] Add maui release internal (#28776)
github-actions[bot] Apr 3, 2025
3da3c4e
Fix iOS CollectionView not reacting properly to orientation changes (…
albyrock87 Apr 3, 2025
fe2e1fa
[Testing] Fix for flaky UITests in CI that occasionally fail - 7 (#28…
HarishKumarSF4517 Apr 3, 2025
97d5452
Update CommunityToolkit.Maui reference in sample content template (#2…
jfversluis Apr 4, 2025
e41df8e
[Testing] Fix for flaky UITests in CI that occasionally fail - 6 (#28…
anandhan-rajagopal Apr 4, 2025
ac1292e
Update dependencies from https://github.com/dotnet/xharness build 202…
dotnet-maestro[bot] Apr 7, 2025
6c9798f
Update Issue19509.cs (#28807)
HarishKumarSF4517 Apr 7, 2025
af78f88
Resave mac tabbedpage images (#28803)
HarishKumarSF4517 Apr 7, 2025
1f5da58
Fixed ListView leak caused by not disposed ContextActionsCell (#28702)
VitalyKnyazev Apr 7, 2025
5455104
[Testing] Fix for flaky UITests in CI that occasionally fail - 8 (#28…
HarishKumarSF4517 Apr 7, 2025
82b018a
Cleanup virtual layer measure invalidation (#28756)
albyrock87 Apr 8, 2025
4ff875a
Revert "Cleanup virtual layer measure invalidation (#28756)" (#28872)
rmarinho Apr 8, 2025
6ff7573
Revert Applying visibility change to child controls (#28768)
jfversluis Apr 8, 2025
360f436
Improve TFM condition for sample content template (#28865)
jfversluis Apr 9, 2025
df738bf
The footer position is not on the far right of the horizontal grid - …
kubaflo Apr 9, 2025
89946dd
[iOS] Fix for Transparent Background Color not applied to WebView (#2…
Tamilarasan-Paranthaman Apr 9, 2025
7b9d351
Revert "[Accessibility] Add 'button' for TalkBalk on Android Tap Gest…
PureWeen Apr 9, 2025
c4c3ca5
Revert "Revert "Cleanup virtual layer measure invalidation (#28756)" …
albyrock87 Apr 9, 2025
2cc5a76
fix for flaky tests (#28887)
anandhan-rajagopal Apr 9, 2025
43f90d0
Update Versions.props to 9.0.70 SR7 (#28900)
PureWeen Apr 10, 2025
037fd6c
Update bug-report.yml with latest public releases (#28922)
PureWeen Apr 10, 2025
a8e1c3d
Update dependencies from https://github.com/dotnet/xharness build 202…
dotnet-maestro[bot] Apr 11, 2025
358f7e7
fix (#28919)
bhavanesh2001 Apr 11, 2025
ed6aaaf
Merge branch 'main' into merge-main-net9
rmarinho Apr 11, 2025
4943ed3
[tests] No expectedNativeAOTWarnings
rmarinho Apr 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"rollForward": false
},
"microsoft.dotnet.xharness.cli": {
"version": "9.0.0-prerelease.25167.9",
"version": "9.0.0-prerelease.25207.3",
"commands": [
"xharness"
],
Expand Down
6 changes: 6 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ body:
label: Version with bug
description: In what version do you see this issue? Run `dotnet workload list` to find your version.
options:
- 10.0.0-preview.3
- 10.0.0-preview.2
- 10.0.0-preview.1
- 9.0.60 SR6
- 9.0.50 SR5
- 9.0.40 SR4
- 9.0.30 SR3
Expand Down Expand Up @@ -165,7 +168,10 @@ body:
- 9.0.30 SR3
- 9.0.40 SR4
- 9.0.50 SR5
- 9.0.60 SR6
- 10.0.0-preview.1
- 10.0.0-preview.2
- 10.0.0-preview.3
validations:
required: true
- type: dropdown
Expand Down
4 changes: 2 additions & 2 deletions eng/Publishing.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
</ItemGroup>

<PropertyGroup>
<_UploadPathRoot>maui-sdk</_UploadPathRoot>
<_UploadPathRoot>maui</_UploadPathRoot>
</PropertyGroup>

<ItemGroup>
<Artifact Include="@(_InstallersToPublish)" Kind="Blob" RelativeBlobPath="@(_UploadPathRoot)/%(Filename)%(Extension)">
<Artifact Include="@(_InstallersToPublish)" Kind="Blob" RelativeBlobPath="$(_UploadPathRoot)/%(Filename)%(Extension)">
<IsShipping>true</IsShipping>
<IsShipping Condition="$([System.String]::Copy('%(RecursiveDir)').StartsWith('NonShipping'))">false</IsShipping>
</Artifact>
Expand Down
12 changes: 6 additions & 6 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -135,17 +135,17 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>831d23e56149cd59c40fc00c7feb7c5334bd19c4</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="9.0.0-prerelease.25167.9">
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="9.0.0-prerelease.25207.3">
<Uri>https://github.com/dotnet/xharness</Uri>
<Sha>8fa551353a0b2c90afb82c507f23afdf966d57c5</Sha>
<Sha>aed708d126f0776c81966db1ca17278edbef8279</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="9.0.0-prerelease.25167.9">
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="9.0.0-prerelease.25207.3">
<Uri>https://github.com/dotnet/xharness</Uri>
<Sha>8fa551353a0b2c90afb82c507f23afdf966d57c5</Sha>
<Sha>aed708d126f0776c81966db1ca17278edbef8279</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="9.0.0-prerelease.25167.9">
<Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="9.0.0-prerelease.25207.3">
<Uri>https://github.com/dotnet/xharness</Uri>
<Sha>8fa551353a0b2c90afb82c507f23afdf966d57c5</Sha>
<Sha>aed708d126f0776c81966db1ca17278edbef8279</Sha>
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
Expand Down
8 changes: 4 additions & 4 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<MajorVersion>9</MajorVersion>
<MinorVersion>0</MinorVersion>
<PatchVersion>60</PatchVersion>
<PatchVersion>70</PatchVersion>
<SdkBandVersion>9.0.100</SdkBandVersion>
<PreReleaseVersionLabel>ci.net9</PreReleaseVersionLabel>
<PreReleaseVersionIteration>
Expand Down Expand Up @@ -125,9 +125,9 @@
<_HarfBuzzSharpVersion>8.3.0.1</_HarfBuzzSharpVersion>
<_SkiaSharpNativeAssetsVersion>0.0.0-commit.e57e2a11dac4ccc72bea52939dede49816842005.1728</_SkiaSharpNativeAssetsVersion>
<MicrosoftTemplateEngineTasksVersion>7.0.120</MicrosoftTemplateEngineTasksVersion>
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>9.0.0-prerelease.25167.9</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>9.0.0-prerelease.25167.9</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
<MicrosoftDotNetXHarnessCLIVersion>9.0.0-prerelease.25167.9</MicrosoftDotNetXHarnessCLIVersion>
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>9.0.0-prerelease.25207.3</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>9.0.0-prerelease.25207.3</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
<MicrosoftDotNetXHarnessCLIVersion>9.0.0-prerelease.25207.3</MicrosoftDotNetXHarnessCLIVersion>
<TizenUIExtensionsVersion>0.9.2</TizenUIExtensionsVersion>
<SvgSkiaPackageVersion>2.0.0.4</SvgSkiaPackageVersion>
<FizzlerPackageVersion>1.3.0</FizzlerPackageVersion>
Expand Down
125 changes: 125 additions & 0 deletions eng/pipelines/maui-release-internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
trigger: none
pr: none

parameters:
- name: ghRepo
displayName: GitHub repository name
type: string
default: maui

- name: ghOwner
displayName: GitHub repository owner
type: string
default: dotnet

- name: commitHash
displayName: Commit hash to download nupkgs from
type: string
default: skip

- name: VM_IMAGE_HOST
type: object
default:
name: NetCore1ESPool-Internal
image: 1es-windows-2022
os: windows

variables:
- template: /eng/common/templates/variables/pool-providers.yml@self
- group: DotNetBuilds storage account read tokens
- group: AzureDevOps-Artifact-Feeds-Pats

resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

extends:
${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
${{ else }}:
template: v1/1ES.Unofficial.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
pool: ${{ parameters.VM_IMAGE_HOST }}
sdl:
binskim:
scanOutputDirectoryOnly: true
codeql:
runSourceLanguagesInSourceAnalysis: true
policheck:
enabled: true
spotBugs:
enabled: false
justification: 'Failing with "Could not successfully find the java tool launcher"'
sourceRepositoriesToScan:
exclude:
- repository: yaml-templates
suppression:
suppressionFile: $(Build.SourcesDirectory)\eng\automation\guardian\source.gdnsuppress
stages:
- stage: publish_maestro
displayName: Publish to Workload Set channel
dependsOn: []
jobs:
- job: publish_maestro
displayName: Publish to Workload Set channel
pool: ${{ parameters.VM_IMAGE_HOST }}
timeoutInMinutes: 240
workspace:
clean: all
steps:
- ${{ if eq(parameters.commitHash, 'skip') }}:
- script: echo parameters.commitHash was not set, skipping...
displayName: Skip push
- ${{ else }}:
- script: |
echo ##vso[task.setvariable variable=COMMIT]${{ parameters.commitHash }}
displayName: Set COMMIT
- task: AzureCLI@2
displayName: Add build to workload set channel
inputs:
azureSubscription: "Darc: Maestro Production"
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Getting BAR ID for commit: $(COMMIT)"
. $(Build.SourcesDirectory)\eng\common\tools.ps1
$darc = Get-Darc
$buildJson = & $darc get-build --ci --repo "${{ parameters.ghRepo }}" --commit "$(COMMIT)" --output-format json --azdev-pat $(System.AccessToken)
Write-Host "`n$buildJson`n"
$barId = $buildJson | ConvertFrom-Json | Select-Object -ExpandProperty "id" -First 1
Write-Host "Got the Bar ID: $barId for commit $(COMMIT) on repo ${{ parameters.ghRepo }}"
if ($barId -eq $null) {
Write-Error "Could not find a build for commit $(COMMIT) on repo ${{ parameters.ghRepo }}"
exit 1
}
Write-Host "Getting drop for Bar ID: $barId"
& $darc gather-drop --ci --id $barId -o "$(Build.StagingDirectory)\nupkgs" --azdev-pat $(System.AccessToken) --verbose
Write-Host "List downloaded artifacts"
Get-ChildItem -Name -Recurse -Path $(Build.StagingDirectory)
$manifestPack = Get-ChildItem -Path "$(Build.StagingDirectory)\nupkgs\shipping\packages\" -Filter "*.Manifest-*.nupkg" | Select-Object -First 1
$workloadSetsChannel = ""
$workloadSetsFeed = ""
if ($manifestPack -like "*.Manifest-8.0*") {
$workloadSetsChannel = ".NET 8 Workload Release"
$workloadSetsFeed = "dotnet8-workloads"
}
if ($manifestPack -like "*.Manifest-9.0*") {
$workloadSetsChannel = ".NET 9 Workload Release"
$workloadSetsFeed = "dotnet9-workloads"
}
if ($manifestPack -like "*.Manifest-10.0*") {
$workloadSetsChannel = ".NET 10 Workload Release"
$workloadSetsFeed = "dotnet10-workloads"
}
if (!$workloadSetsChannel -or !$workloadSetsFeed) {
Write-Error "Could not determine the workload sets channel or feed for the manifest pack '$manifestPack'"
exit 1
}
Write-Host "##vso[task.setvariable variable=WorkloadSetsFeedName;]$workloadSetsFeed"
Write-Host "Adding build ID '$barId' to channel '$workloadSetsChannel' and feed '$workloadSetsFeed'"
& $darc add-build-to-channel --ci --channel "$workloadSetsChannel" --id "$barId" --skip-assets-publishing --azdev-pat $(System.AccessToken) --verbose
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ public void TestVisibility()
};

var handler = Substitute.For<IViewHandler>();
stack.Handler = handler;
child1.Handler = handler;

stack.Layout(new Rect(0, 0, 100, 100));

Expand All @@ -352,8 +352,11 @@ public void TestVisibility()

child1.IsVisible = false;

// Verify that the visibility change invalidated the layout, and simulate a native layout update
// Verify that the visibility change invalidated the child
// which will propagate the invalidation up through the platform tree.
AssertInvalidated(handler);

// Then simulate a native layout update
stack.ForceLayout();

Assert.False(child1.IsVisible);
Expand Down Expand Up @@ -661,14 +664,16 @@ public void PaddingResizeTest()


var handler = Substitute.For<IViewHandler>();
outerLayout.Handler = handler;
innerStack.Handler = handler;

outerLayout.Layout(new Rect(0, 0, 100, 100));
var beforeSize = innerStack.Bounds.Size;
innerStack.Padding = new Thickness(30);

// Verify that the Padding change invalidated the layout, and simulate a native layout update
// Verify that the padding change invalidated the inner stack
// which will propagate the invalidation up through the platform tree.
AssertInvalidated(handler);
// Now simulate a native layout update
outerLayout.ForceLayout();

var afterSize = innerStack.Bounds.Size;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ protected override UITableViewCell CreatePlatformElement()
var tv = VirtualView.TableView;
VirtualView.ReusableCell = null;
VirtualView.TableView = null;
_tableView = new(tv);
return GetCell(VirtualView, reusableCell, tv);
}

public virtual UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
_tableView = new(tv);
Performance.Start(out string reference);

var tvc = reusableCell as CellTableViewCell ?? new CellTableViewCell(UITableViewCellStyle.Default, item.GetType().FullName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -986,6 +986,7 @@ internal class ListViewDataSource : UITableViewSource
readonly WeakReference<UITableView> _uiTableView;
readonly WeakReference<FormsUITableViewController> _uiTableViewController;
protected readonly WeakReference<ListView> _list;
readonly HashSet<ContextActionsCell> _contextActionsCells = new();
bool _isDragging;
bool _setupSelection;
bool _selectionFromNative;
Expand Down Expand Up @@ -1113,6 +1114,10 @@ public override UITableViewCell GetCell(UITableView tableView, NSIndexPath index
SetCellBackgroundColor(platformCell, bgColor);
PreserveActivityIndicatorState(cell);
Performance.Stop(reference);

if(platformCell is ContextActionsCell contextActionsCell)
_contextActionsCells.Add(contextActionsCell);

return platformCell;
}

Expand Down Expand Up @@ -1495,12 +1500,16 @@ protected override void Dispose(bool disposing)

if (disposing)
{
if (!_list.TryGetTarget(out var list))
if (_list.TryGetTarget(out var list))
{
list.ItemSelected -= OnItemSelected;
WatchShortNameCollection(false);
}

foreach (var cell in _contextActionsCells)
cell.Dispose();
_contextActionsCells.Clear();

_templateToId = null;
}

Expand Down
5 changes: 0 additions & 5 deletions src/Controls/src/Core/ContentPresenter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,5 @@ Size ICrossPlatformLayout.CrossPlatformArrange(Rect bounds)
this.ArrangeContent(bounds);
return bounds.Size;
}

private protected override void InvalidateMeasureLegacy(InvalidationTrigger trigger, int depth, int depthLeveltoInvalidate)
{
base.InvalidateMeasureLegacy(trigger, depth, 1);
}
}
}
21 changes: 14 additions & 7 deletions src/Controls/src/Core/Handlers/Items/iOS/ItemsViewCell.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@ protected ItemsViewCell(CGRect frame) : base(frame)
}

protected void InitializeContentConstraints(UIView platformView)
{
SetupPlatformView(platformView, true);
}

private protected void SetupPlatformView(UIView platformView, bool autoLayout = false)
{
ContentView.TranslatesAutoresizingMaskIntoConstraints = false;
platformView.TranslatesAutoresizingMaskIntoConstraints = false;

ContentView.AddSubview(platformView);

Expand All @@ -36,12 +40,15 @@ protected void InitializeContentConstraints(UIView platformView)
ContentView.LeadingAnchor.ConstraintEqualTo(LeadingAnchor).Active = true;
ContentView.TrailingAnchor.ConstraintEqualTo(TrailingAnchor).Active = true;

// And we want the ContentView to be the same size as the root renderer for the Forms element
// TODO: we should probably remove this to support `Margin` applied to the cell's root `VirtualView`
ContentView.TopAnchor.ConstraintEqualTo(platformView.TopAnchor).Active = true;
ContentView.BottomAnchor.ConstraintEqualTo(platformView.BottomAnchor).Active = true;
ContentView.LeadingAnchor.ConstraintEqualTo(platformView.LeadingAnchor).Active = true;
ContentView.TrailingAnchor.ConstraintEqualTo(platformView.TrailingAnchor).Active = true;
if (autoLayout)
{
// And we want the ContentView to be the same size as the root renderer for the Forms element
platformView.TranslatesAutoresizingMaskIntoConstraints = false;
ContentView.TopAnchor.ConstraintEqualTo(platformView.TopAnchor).Active = true;
ContentView.BottomAnchor.ConstraintEqualTo(platformView.BottomAnchor).Active = true;
ContentView.LeadingAnchor.ConstraintEqualTo(platformView.LeadingAnchor).Active = true;
ContentView.TrailingAnchor.ConstraintEqualTo(platformView.TrailingAnchor).Active = true;
}
}

public abstract void ConstrainTo(nfloat constant);
Expand Down
Loading
Loading