diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 934fe7623e1d..c2d342fc8af4 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -200,20 +200,6 @@ git commit -m "Fix: Description of the change" - `.github/instructions/android.instructions.md` - Android handler implementation - `.github/instructions/xaml-unittests.instructions.md` - XAML unit test guidelines -### Opening PRs - -All PRs are required to have this at the top of the description: - -``` - -> [!NOTE] -> Are you waiting for the changes in this PR to be merged? -> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! -``` - -Always put that at the top, without the block quotes. Without it, users will NOT be able to try the PR and your work will have been in vain! - - ## Custom Agents and Skills diff --git a/.github/skills/pr-finalize/SKILL.md b/.github/skills/pr-finalize/SKILL.md index 28ba6916dd8b..9932ac6534c5 100644 --- a/.github/skills/pr-finalize/SKILL.md +++ b/.github/skills/pr-finalize/SKILL.md @@ -127,16 +127,10 @@ Examples: ## Description Requirements PR description should: -1. Start with the required NOTE block (so users can test PR artifacts) -2. Include the base sections from `.github/PULL_REQUEST_TEMPLATE.md` ("Description of Change" and "Issues Fixed"). The skill adds additional structured fields (Root cause, Fix, Key insight, etc.) as recommended enhancements for better agent context. -3. Match the actual implementation +1. Include the base sections from `.github/PULL_REQUEST_TEMPLATE.md` ("Description of Change" and "Issues Fixed"). The skill adds additional structured fields (Root cause, Fix, Key insight, etc.) as recommended enhancements for better agent context. +2. Match the actual implementation ```markdown - -> [!NOTE] -> Are you waiting for the changes in this PR to be merged? -> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! - ### Description of Change [Must match actual implementation] @@ -229,11 +223,6 @@ Example: "Before: Safe area applied by default (opt-out). After: Only views impl Use structured template only when existing description is inadequate: ```markdown - -> [!NOTE] -> Are you waiting for the changes in this PR to be merged? -> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! - ### Root Cause [Why the bug occurred - be specific about the code path] diff --git a/.github/skills/pr-finalize/references/complete-example.md b/.github/skills/pr-finalize/references/complete-example.md index 034da2e3d09d..6f8ff08d1006 100644 --- a/.github/skills/pr-finalize/references/complete-example.md +++ b/.github/skills/pr-finalize/references/complete-example.md @@ -9,10 +9,6 @@ This example shows a PR description optimized for future agent success. ## Description ```markdown -> [!NOTE] -> Are you waiting for the changes in this PR to be merged? -> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! - ### Root Cause In `MauiView.GetAdjustedSafeAreaInsets()` on iOS, views that don't implement `ISafeAreaView` or `ISafeAreaView2` (such as `ContentPresenter`, `Border`) were falling through to return `baseSafeArea`. This applied full device safe area insets to views that never opted into safe area handling, causing double-padding when used inside ControlTemplates. diff --git a/eng/pipelines/common/ui-tests-steps.yml b/eng/pipelines/common/ui-tests-steps.yml index e3c1186e329c..b5b2a8f79a8a 100644 --- a/eng/pipelines/common/ui-tests-steps.yml +++ b/eng/pipelines/common/ui-tests-steps.yml @@ -186,6 +186,8 @@ steps: - task: PublishBuildArtifacts@1 condition: always() displayName: publish artifacts + inputs: + artifactName: drop-$(System.StageName)-$(System.JobName)-$(System.JobAttempt) # Enable Notification Center re-enabled only for catalyst - ${{ if eq(parameters.platform, 'catalyst')}}: diff --git a/src/Controls/src/Core/Platform/Windows/CollectionView/TemplatedItemSourceFactory.cs b/src/Controls/src/Core/Platform/Windows/CollectionView/TemplatedItemSourceFactory.cs index 26e47e1416fe..ee2cba88570c 100644 --- a/src/Controls/src/Core/Platform/Windows/CollectionView/TemplatedItemSourceFactory.cs +++ b/src/Controls/src/Core/Platform/Windows/CollectionView/TemplatedItemSourceFactory.cs @@ -1,4 +1,5 @@ #nullable disable +using System; using System.Collections; using System.Collections.Specialized; @@ -9,6 +10,11 @@ internal static class TemplatedItemSourceFactory internal static object Create(IEnumerable itemsSource, DataTemplate itemTemplate, BindableObject container, double? itemHeight = null, double? itemWidth = null, Thickness? itemSpacing = null, IMauiContext mauiContext = null) { + if (itemsSource is null) + { + return Array.Empty(); + } + switch (itemsSource) { case IList observable when itemsSource is INotifyCollectionChanged: diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue17864.xaml b/src/Controls/tests/TestCases.HostApp/Issues/Issue17864.xaml new file mode 100644 index 000000000000..0a274aa7276d --- /dev/null +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue17864.xaml @@ -0,0 +1,46 @@ + + + + + + + + + +