-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[net10.0] Merge main to net10 #33216
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…51120.1 On relative base path root Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 10.0.0-prerelease.25506.2 -> To Version 10.0.0-prerelease.25570.1
* Added size update for Shell Popup Overlay after rotation # Conflicts: # src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt # src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt * Fix resizing on rotation * - fix publicapi # Conflicts: # src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt # src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt * - apply copilot suggested change * - Add Tests * - fix test * - make backdrop orange --------- Co-authored-by: Shane Neuville <[email protected]>
Deleted the OnDestroy method and its dispatcher-based disposal logic from ShellFragmentContainer. Cleanup is unnecessary in this context and causes Android.Runtime.JavaProxyThrowable exception
* Fix RTL column mirroring in UICollectionView Explicitly sets the semantic content attribute on the native UICollectionView to ensure compositional layouts mirror columns correctly in right-to-left (RTL) scenarios. This addresses an issue where the platform view's semantic attribute does not propagate to native children not backed by IView. * - add UITests * Improvements --------- Co-authored-by: Shane Neuville <[email protected]>
Since TimePicker now supports nullable, the casts need to be nullable to match the TimeChangedEventArgs properties. Otherwise, `timeSpan.Time = null` throws a NullReferenceException.
… Back to a ContentPage with NavigationBar Hidden (#32622) * [iOS] Fix for Shell Navigation Bar Remaining Visible After Navigating Back to a ContentPage with NavigationBar Hidden * Added test cases and snapshots for both iOS and Android platforms * Added snapshot for windows platform
…m change with PresentationMode set to Modal (#32582) * Fix for Page OnAppearing triggered twice when navigating via ShellItem change with PresentationMode set to Modal * - generate tests with copilot * Removed the UI test since unit tests have been added, and also removed duplicate tests in the unit tests --------- Co-authored-by: Shane Neuville <[email protected]>
#32868) This PR addresses the UI test image failures that occurred in the inflight/candidate branch #32841 and includes updates to improve rendering and test stability across platforms. - In ShouldFlyoutTextWrapsInLandscape test case, added the resaved CI snapshot caused by changes from fix PR - #15866 - In FlyoutOverlayResizesOnRotation test cases, disable for android platform, because the Shell FlyoutContent overlaps the navigation bar due to SafeArea during Landscape Orientation, Related issue: #32275 **Test cases:** - ShouldFlyoutTextWrapsInLandscape - NavigationBarShouldRemainHiddenAfterNavigatingBack - FlyoutOverlayResizesOnRotation - VerticalGridCollectionViewLTRToRTLToggleShouldWork - VerticalGridCollectionViewRTLColumnMirroringShouldWork
…51125.2 On relative base path root Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 10.0.0-prerelease.25506.2 -> To Version 10.0.0-prerelease.25575.2
…ces (#32956) Fixes #27281 The issue was that SolidColorBrush.Equals used '==' to compare Color objects, which compares references instead of values. This caused infinite loops when using DynamicResource with OnPlatform<Color> because OnPlatform creates new Color instances each time, and the equality check would always return false even for identical color values. Changed to use Equals() which properly compares Color values via Color.Equals().
This pull request updates the following dependencies [marker]: <> (Begin:a71c12d9-5aa4-4b46-e2d6-08da0cf8cd95) ## From https://github.com/dotnet/xharness - **Subscription**: [a71c12d9-5aa4-4b46-e2d6-08da0cf8cd95](https://maestro.dot.net/subscriptions?search=a71c12d9-5aa4-4b46-e2d6-08da0cf8cd95) - **Build**: [20251125.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2847614) ([292346](https://maestro.dot.net/channel/8394/github:dotnet:xharness/build/292346)) - **Date Produced**: November 25, 2025 9:55:44 PM UTC - **Commit**: [bdf0f92540d68762bb028b8cb859146048f3c356](dotnet/xharness@bdf0f92) - **Branch**: [release/10.0](https://github.com/dotnet/xharness/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-prerelease.25506.2 to 10.0.0-prerelease.25575.2][2] - Microsoft.DotNet.XHarness.CLI - Microsoft.DotNet.XHarness.TestRunners.Common - Microsoft.DotNet.XHarness.TestRunners.Xunit [2]: dotnet/xharness@5b57221...bdf0f92 [DependencyUpdate]: <> (End) [marker]: <> (End:a71c12d9-5aa4-4b46-e2d6-08da0cf8cd95)
The TS compiler automatically includes the JS files as content, but we want it as embedded files. Fixes #32683 Update src/TestUtils/src/Microsoft.Maui.IntegrationTests/WindowsTemplateTest.cs Co-authored-by: Copilot <[email protected]>
…nt crash (#31866) Add null check in ControlsModalWrapper.ViewDidLayoutSubviews to prevent crash Co-authored-by: jfversluis <[email protected]> Add explanatory comment for defensive null check in ViewDidLayoutSubviews Co-authored-by: jsuarezruiz <[email protected]>
Fixes unsigned underflow in AsBaseStyle() causing VSM setters from base styles to be incorrectly converted to ImplicitVSM (lower priority). Changes: - Check if style <= StyleBasedOn before subtracting to prevent underflow - Clamp result to StyleBasedOn minimum to maintain proper priority - Add StyleBasedOn constant (0x0C0) between implicit and local styles - Preserve specificity during VisualStateGroupList cloning Fixes #27202
…2828) Add accessibility identifier to MauiDoneAccessoryView Done button Co-authored-by: jfversluis <[email protected]> Address code review feedback - extract constant and improve comment Co-authored-by: jfversluis <[email protected]> Update src/Controls/tests/TestCases.HostApp/Issues/MauiDoneAccessoryButton.cs Co-authored-by: Copilot <[email protected]>
Added a device test Fixes Fixed a memory leak Don't interfere with other gestures
# Conflicts: # src/Controls/tests/TestCases.HostApp/Issues/Issue15810.cs # src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue15810.cs # src/Core/src/Handlers/ContentView/ContentViewHandler.Windows.cs Updated test
Removed conditional compilation for Android tests related to color assertions.
Introduces the UpdateLargeTitles method to manage large title display modes for navigation bars in ShellItemRenderer. This ensures that the large title preference is updated when the displayed page changes or when the view lays out subviews, aligning with iOS-specific platform configurations. Added a UITest Fix large title display mode handling on iOS Shell Corrects the logic for setting PrefersLargeTitles to only enable large titles when LargeTitleDisplayMode is Always. Updates Issue12156 test to set LargeTitleDisplay on ContentPage instead of Shell. Adds snapshot images for large title display verification on Mac and iOS.
…r scrolling when deploying ManualMaui Demo project on iOS 26.1 (#32822) Fix optimized Update src/Controls/src/Core/Handlers/Items2/iOS/TemplatedCell2.cs Co-authored-by: Copilot <[email protected]>
* Migrate Xaml.UnitTests from NUnit to xUnit Complete migration of src/Controls/tests/Xaml.UnitTests from NUnit to xUnit testing framework. * Improve exception tests and remove unnecessary IDisposable - Bz43694, Bz44216, Issue2450: Use XamlExceptionAssert to check exception line/position and message content - Maui17222: Replace IDisposable with try/finally for cleanup
…tegory (#32990) * Initial plan * Split UITest category group into two runs Co-authored-by: PureWeen <[email protected]> * Move ScrollView to run separately Co-authored-by: PureWeen <[email protected]> * Split Label,Layout,Lifecycle,ListView and Shadow,ViewBaseTests,Visual,WebView,Window to run separately Co-authored-by: PureWeen <[email protected]> * Combine SafeAreaEdges and Shadow, remove Visual category and reassign tests Co-authored-by: PureWeen <[email protected]> * Combine category groups: Lifecycle+ManualReview+Maps, ViewBaseTests+Window, Cells+DatePicker groups Co-authored-by: PureWeen <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: PureWeen <[email protected]>
* Add scripts to easily retrieve MAUI PR artifacts * Add GitHub Action for commenting * Remove comment from PR template * Update README.md * Address comments * Don't trigger Azure Pipelines on GitHub changes * Update get-maui-pr.sh
Added version 10.0.20 to the bug report template options.
…2835) * Initial plan * Add comprehensive README for Microsoft.Maui.Controls NuGet package Co-authored-by: jfversluis <[email protected]> * Update src/Controls/src/NuGet/README.md * Change title to use product name .NET MAUI instead of .NET MAUI Controls Co-authored-by: jfversluis <[email protected]> * Address PR feedback: Update Background property, add XAML enhancements, update Discord/social links Co-authored-by: jfversluis <[email protected]> * Update src/Controls/src/NuGet/README.md Co-authored-by: Copilot <[email protected]> * Update src/Controls/src/NuGet/README.md Co-authored-by: Kartheek Penagamuri <[email protected]> * Add Mac Catalyst run command and replace code examples with doc links Co-authored-by: jfversluis <[email protected]> * Add code snippets alongside doc links and remove ListView reference Co-authored-by: jfversluis <[email protected]> * Remove build status badge from README Co-authored-by: jfversluis <[email protected]> * Update src/Controls/src/NuGet/README.md --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: jfversluis <[email protected]> Co-authored-by: Gerald Versluis <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Kartheek Penagamuri <[email protected]>
* Initial plan * chore: plan uitest artifact fix Co-authored-by: jfversluis <[email protected]> * fix: include stage in uitest snapshot artifacts Co-authored-by: jfversluis <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: jfversluis <[email protected]>
* Update arcade * [ci] Force helix sdk version to be the same as release
### Description of Change This tries to workaround a issue with Microsoft.Windowsappsdk failing sometimes https://microsoft.visualstudio.com/OS/_workitems/edit/57204991 Fixes #32503
This PR addresses UI test image failures in the main branch and includes updates to improve rendering and test stability across platforms. - WebViewShouldNotMirrored: Updated to use a new static web link and added VerifyInternetConnectivity to ensure internet connection before running the test. - HeaderFooterHorizontalViewWorks: Changed the scroll strategy to Gesture for better reliability. ### Test cases: - WebViewShouldNotMirrored - HeaderFooterHorizontalViewWorks
This pull request updates the test order in the ``TwoPaneViewFeatureTests`` class. The TwoPaneView_Pane1Priority test was occasionally failing in CI due to RTL state carried over from earlier tests. Setting a clear execution order ensures tests run in the correct sequence and resolves the flaky behavior.
This pull request improves the reliability and accuracy of UI tests by addressing test flakiness, enhancing assertions, and refining test logic. The main focus is on making tests more robust across different platforms (especially in CI environments) and ensuring UI behavior is correctly validated. **Test reliability improvements:** * Added retry logic for drag-and-drop actions in `GesturesSenderIsView()` on Mac Catalyst to reduce test flakiness in CI environments. * Extended double-tap retry logic in `TapThenDoubleTap()` to both Android and iOS platforms, not just Android, to handle potential flakiness. **Test accuracy and validation enhancements:** * Improved `ModalPageMarginCorrectAfterKeyboardOpens()` by capturing and asserting the position of an `Entry` before and after keyboard appearance/dismissal, ensuring the UI remains visible and returns to its original state. * Updated `TextInEditorShouldScroll()` to use a more precise scroll command (`ScrollStrategy.Gesture` with `withInertia: false`), improving test consistency.
This pull request updates the `VerifyEditorFocusedEvent` test method to be asynchronous, improving reliability by adding a short delay after tapping the editor. This ensures the focus event is properly triggered before the assertion is made. **Test reliability improvement:** * Changed `VerifyEditorFocusedEvent` in `EditorFeatureTests.cs` to be an `async Task`, and added a `Task.Delay(100)` after tapping the editor to ensure the focus event has time to trigger before the test assertion.
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR merges the latest changes from the main branch into the net10.0 branch, bringing forward numerous bug fixes, test improvements, and infrastructure updates.
Key changes include:
- Multiple bug fixes for controls (SwipeView, Picker, Slider, CollectionView, etc.)
- Test coverage improvements with new UI tests for Slider and Shell
- New PR testing scripts for bash and PowerShell to enable dogfooding
- Infrastructure updates including pipeline configurations and GitHub workflow improvements
Reviewed changes
Copilot reviewed 126 out of 904 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/Controls/tests/DeviceTests/TestCategory.cs | Added "Slider" test category constant |
| src/Controls/tests/DeviceTests/Elements/SwipeView/SwipeViewTests.cs | Updated test to verify SwipeView maintains 5 logical children (Content + 4 SwipeItems) |
| src/Controls/tests/DeviceTests/Elements/Slider/SliderTests.iOS.cs | New iOS-specific memory leak test for Slider with UpdateOnTap feature |
| src/Controls/tests/DeviceTests/Elements/Slider/SliderTests.cs | New test infrastructure for Slider control |
| src/Controls/tests/DeviceTests/Elements/ContentView/ContentViewTests.iOS.cs | Re-enabled previously skipped test (issue #32368 resolved) |
| src/Controls/tests/Core.UnitTests/SwipeViewTests.cs | Added comprehensive test for SwipeItems logical tree and binding context propagation |
| src/Controls/tests/Core.UnitTests/SolidColorBrushTests.cs | Added test for Color value equality comparison (fixes issue #27281) |
| src/Controls/tests/Core.UnitTests/ShellModalAppearingTests.cs | New test file for Shell modal page lifecycle (fixes issue #31584) |
| src/Controls/tests/Core.UnitTests/PickerTests.cs | Updated tests to verify SelectedItem preservation during collection changes |
| src/Controls/src/SourceGen/CompiledBindingMarkup.cs | Added null value handling for compiled bindings setter generation |
| src/Controls/src/NuGet/README.md | New comprehensive README for NuGet package with documentation and examples |
| src/Controls/src/NuGet/Controls.NuGet.csproj | Added PackageReadmeFile property to include README in package |
| src/Controls/src/Core/VisualStateManager.cs | Added debug output and specificity preservation for VSM cloning (issue #27202) |
| src/Controls/src/Core/TimePicker/TimePicker.cs | Fixed TimeSelected event arguments to accept nullable TimeSpan values |
| src/Controls/src/Core/TemplateUtilities.cs | Modified to preserve SwipeItems in logical tree during content changes |
| src/Controls/src/Core/SolidColorBrush.cs | Fixed Equals comparison to use value equality instead of reference equality |
| src/Controls/src/Core/Slider/Slider.iOS.cs | New iOS-specific mapper for UpdateOnTap property |
| src/Controls/src/Core/Slider/Slider.Mapper.cs | New mapper configuration for iOS Slider handlers |
| src/Controls/src/Core/Shell/ShellSection.cs | Fixed modal page lifecycle during ShellItem switching |
| src/Controls/src/Core/Shapes/Shape.cs | Fixed RoundRectangle measurement to use inner path excluding stroke |
| src/Controls/src/Core/Shapes/RoundRectangle.cs | Added InnerPath method to IRoundRectangle interface |
| src/Controls/src/Core/SetterSpecificity.cs | Added StyleBasedOn constant and updated VSM priority handling |
| src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt | Added ViewWillTransitionToSize method to public API surface |
| src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt | Added ViewWillTransitionToSize method to public API surface |
| src/Controls/src/Core/Platform/iOS/ControlsModalWrapper.cs | Added defensive null check for VirtualView during iOS snapshot creation |
| src/Controls/src/Core/Platform/GestureManager/GesturePlatformManager.iOS.cs | Added SwipeGestureRecognizer direction property change handling |
| src/Controls/src/Core/Platform/AlertManager/AlertManager.Standard.cs | Fixed NotImplementedException in CreateSubscription for standard platforms |
| src/Controls/src/Core/Picker/Picker.cs | Fixed SelectedIndex to preserve SelectedItem during collection changes |
| src/Controls/src/Core/ImageBrush.cs | Simplified GetHashCode to use base implementation |
| src/Controls/src/Core/Hosting/AppHostBuilderExtensions.cs | Added Slider.RemapForControls() call to handler remapping |
| src/Controls/src/Core/Handlers/Items2/iOS/TemplatedCell2.cs | Added MeasureFirstItem caching and BackgroundProperty VSM support |
| src/Controls/src/Core/Handlers/Items2/iOS/LayoutFactory2.cs | Added rotation check to prevent invalid carousel positioning |
| src/Controls/src/Core/Handlers/Items2/iOS/ItemsViewController2.cs | Added ReloadData wrapper to reset cached first item size |
| src/Controls/src/Core/Handlers/Items2/iOS/CarouselViewController2.cs | Added device orientation change handling for carousel repositioning |
| src/Controls/src/Core/Handlers/Items2/ItemsViewHandler2.iOS.cs | Added layout update call when FlowDirection changes |
| src/Controls/src/Core/Handlers/Items2/CollectionViewHandler2.iOS.cs | Implemented first item size caching for MeasureFirstItem strategy |
| src/Controls/src/Core/Handlers/Items/iOS/TemplatedCell.cs | Added BackgroundProperty check to VSM selection color detection |
| src/Controls/src/Core/Handlers/Items/Android/TemplatedItemViewHolder.cs | Added BackgroundProperty check to VSM selection color detection |
| src/Controls/src/Core/Handlers/Items/Android/MauiRecyclerView.cs | Added empty view update detection for header/footer property changes |
| src/Controls/src/Core/Handlers/Items/Android/Adapters/StructuredItemsViewAdapter.cs | Added header/footer template property change notifications |
| src/Controls/src/Core/GradientStop.cs | Simplified GetHashCode to use base implementation |
| src/Controls/src/Core/Compatibility/Handlers/TabbedPage/iOS/TabbedRenderer.cs | Added TabBar visibility fix for MacCatalyst 18+ |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRenderer.cs | Added navigation bar visibility animation and iOS 26+ title view updates |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellPageRendererTracker.cs | Added iOS 26+ navigation controller check and search bar cleanup |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellItemRenderer.cs | Added large title display mode updates and TabBar visibility handling |
| src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellFlyoutRenderer.cs | Added ViewWillTransitionToSize override for tapoff view frame updates |
| src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellItemRenderer.cs | Added appearance update when switching between tabs |
| src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellFragmentContainer.cs | Removed OnDestroy override with Dispose call |
| src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellFlyoutTemplatedContentRenderer.cs | Added UpdateContentPadding call when footer is null |
| src/Controls/src/Core/Compatibility/Handlers/NavigationPage/iOS/NavigationRenderer.cs | Added iOS 26+ orientation change handling for title view |
| src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj | Conditional EmitCompilerGeneratedFiles only in Debug configuration |
| src/Controls/samples/Controls.Sample.Profiling/Maui.Controls.Sample.Profiling.csproj | Conditional EmitCompilerGeneratedFiles only in Debug configuration |
| eng/scripts/get-maui-pr.sh | New bash script to apply PR builds to local projects |
| eng/scripts/get-maui-pr.ps1 | New PowerShell script to apply PR builds to local projects |
| eng/scripts/README.md | Documentation for PR artifact testing scripts |
| eng/pipelines/*.yml | Updated branch patterns from hardcoded versions to wildcard (net*.0) |
| eng/Versions.props | Updated PatchVersion to 30 and XHarness package versions |
| eng/Version.Details.xml | Updated XHarness dependency SHAs |
| Directory.Build.targets | Added target to prevent TypeScript output deletion |
| Directory.Build.props | Added TypeScript compilation properties and EmitCompilerGeneratedFiles workaround |
| .github/workflows/*.yml | Added repository_owner checks to prevent fork workflow execution |
| .github/workflows/dogfood-comment.yml | New workflow to add PR dogfooding comments automatically |
| .github/scripts/templates/RunWithAppiumTest.template.cs | Updated template with better validation and helper extensions |
| .github/scripts/shared/Start-Emulator.ps1 | Added AVD name detection for DeviceUdid parameter |
| .github/instructions/*.md | Removed/reorganized agent instruction files |
| .config/dotnet-tools.json | Updated XHarness CLI version |
This was referenced Dec 18, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
Bring latest changes from main to net10.0