Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Maui: November 10, 2025 - November 17, 2025 (12:00:36)

Weekly GitHub Report for Maui

Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.


Table of Contents

  • I. News
    • 1.1. Recent Version Releases
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

I. News

1.1 Recent Version Releases:

The current version of this repository is 9.0.90

1.2 Version Information:

The .NET MAUI 9.0.90 SR9 release, published on July 11, 2025, includes over 141 commits primarily focused on critical product fixes across iOS, Android, and Windows platforms, testing enhancements, and infrastructure updates. Key highlights include numerous bug fixes addressing UI behavior, threading issues, and control improvements, alongside dependency version bumps and expanded automated testing coverage.

II. Issues

2.1 Top 5 Active Issues:

We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.

  1. Android default HttpClientHandler and Chain validation failed: This issue describes a problem where the default HttpClient handler on Android fails to connect to Azure Web Apps due to a TLS handshake exception related to certificate chain validation. The problem started occurring after a recent update and can be temporarily resolved by switching to the SocketsHttpHandler, indicating a compatibility or validation issue with the Android default handler and the server's TLS configuration.

    • The comments discuss attempts to diagnose the problem, including suggestions to check the SSL certificate chain with external tools and observations that the issue affects many users and apps. It was noted that Chrome does not show certificate errors, the problem is intermittent, and detailed logs revealed a parsing error related to certificate revocation checking, suggesting a server-side or certificate formatting issue rather than a client bug.
    • Number of comments this week: 13
  2. MAUI 10.0 orientation change bug at iOS 26: This issue reports a bug in .NET MAUI 10.0.0-rc.2 where changing the orientation on iOS 26 causes the app to hang with half of the screen black, a regression from previous versions where this worked fine. The problem appears to be related to the app’s socket usage and orientation change delegate not being called, and no workaround has been found yet.

    • Commenters confirmed the issue does not occur on iOS 18.6 and shared console logs and profiling suggestions to diagnose the problem. Some noted similar simulator glitches affecting orientation and display, while others confirmed the freeze happens on real devices with the UI thread becoming unresponsive though background tasks continue.
    • Number of comments this week: 9
  3. Installing VS2026 side by side with VS2022 breaks VS2022 iOS MAUI NET9 Development Environment: This issue describes a problem where installing Visual Studio 2026 alongside Visual Studio 2022 causes the VS2022 iOS MAUI .NET 9 development environment to break, as the pairing process with the Mac installs .NET 10 MAUI workloads instead of .NET 9, leading to build failures and simulator issues due to incompatible Xcode versions. The user cannot downgrade or manually install the .NET 9 workloads after VS2026 installation, and the only current workaround is to uninstall VS2026, which restores .NET 9 functionality but still leaves some iOS simulators missing.

    • Multiple users confirm the issue occurs when VS2026 is installed side by side with VS2022, causing .NET 9 iOS MAUI workloads to be replaced by .NET 10 versions that require Xcode 26, which is incompatible with their current Mac setup. Attempts to pin or downgrade workloads to .NET 9 fail due to manifest conflicts, and while a suggestion to install specific workload versions was made, it has not resolved the problem for the original reporter. The discussion highlights the desire for side-by-side support of both .NET 9 and .NET 10 workloads in VS2022 and VS2026, with some users noting partial workarounds but no definitive fix yet.
    • Number of comments this week: 7
  4. [.NET 10] Xaml Source Gen - NPE Property before ApplyQueryAttributes: This issue describes a null reference exception occurring in a .NET MAUI app using .NET 10 SR1 with Xaml Source Generation, where properties are accessed before the OnApplyQueryAttributes method is applied during navigation, causing a poor debugging experience. The user reports that making the bound property nullable or disabling SourceGen avoids the exceptions, but this leads to other issues such as invalid generated code and missing UI updates, highlighting a regression from previous behavior.

    • The discussion identifies that the non-nullable property is accessed before assignment, causing the NPE, and suggests making it nullable to generate safe bindings; however, this triggers a new problem with invalid static lambdas in the generated code. The maintainers acknowledge the bug in the source generator related to static lambdas referencing instance members and note that tests missed this case, indicating a need for a fix while the user continues to explore workarounds.
    • Number of comments this week: 6
  5. Layout issue using TranslateToAsync causes infinite property changed cycle on iOS: This issue describes a layout problem on iOS where using TranslateToAsync in a .NET 10 MAUI app causes an infinite property changed cycle, resulting in a deadlocked UI and incomplete animations. The problem did not exist in .NET 9 and appears related to changes in the safe area handling, with no full workaround available that supports both animations and the custom FooterView container.

    • The comments include video evidence comparing behavior between .NET 9 and .NET 10, confirmation of the issue across multiple MAUI versions on iOS, a suggested code modification to set FooterView.HeightRequest that seems to prevent the deadlock, and discussion linking the problem to recent safe area changes in the framework, with some observations about animation behavior when using negative translations.
    • Number of comments this week: 6

2.2 Top 5 Stale Issues:

We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.

  1. Nullable Enums do not bind in XAML: This issue describes a problem where nullable enums do not properly bind in XAML for a bindable property within a custom control, with the setter method not being triggered during the binding process. The user reports that this occurs across iOS and Android platforms in version 8.0.80 SR8, and the suggested workaround is to avoid using nullable enums by adding an explicit unset or none value to the enum instead.
  2. App crash after invoked FilePicker.Default.PickAsync in administrator mode and release mode of the Unpackaged app: This issue describes an application crash that occurs specifically when invoking the FilePicker.Default.PickAsync method in an unpackaged app running in administrator mode and release configuration. The problem is reproducible on Windows version 10.0.19041.0 using the .NET 8.0.80 SR8 runtime, and no workaround has been identified so far.
  3. Global defined EventTriggers get triggered twice: This issue describes a problem where an EventTrigger defined globally in a style causes its invoke method to be called twice, resulting in duplicate event handling. The user notes that applying the EventTrigger through a named style with a key triggers the event only once, indicating a discrepancy in behavior between global and keyed style definitions across multiple platforms including iOS, Android, and Windows.
  4. Path with ArcSegments is sporadically drawn offset from expected arc: This issue describes a sporadic rendering problem where ArcSegments used to draw arcs in PathGeometry are occasionally offset from their expected starting positions, particularly for large arcs greater than 180 degrees. This offset causes clipping and visual discrepancies across Windows, Android, and iOS platforms, with the problem becoming more frequent near the 180-degree threshold and when using thicker stroke widths, and attempts to work around it by using smaller arcs or line segments have only partially mitigated the issue.
  5. .NET Maui does not support FontAutoScalingEnabled for windows platform: This issue addresses the lack of support for the FontAutoScalingEnabled property in .NET Maui when running on the Windows platform, causing text labels to scale incorrectly with changes in display scaling settings. Specifically, when FontAutoScalingEnabled is set to false, the text size still increases with higher Windows display scaling factors, which should not happen according to the expected behavior.

2.3 Open Issues

This section lists, groups, and then summarizes issues that were created within the last week in the repository.

Issues Opened This Week: 83

Summarized Issues:

  • Build and CI Pipeline Failures: Several issues describe intermittent or consistent build failures in CI pipelines and local builds, including file locking conflicts, missing file paths, Android SDK provisioning errors, and dependency conflicts with AndroidX packages. These problems cause build errors that are difficult to reproduce and lack stable workarounds, impacting developer productivity and continuous integration reliability.
    • issues/32472, issues/32503, issues/32504, issues/32593
  • XAML Source Generation and Binding Issues: Multiple issues highlight problems with the XAML source generator and binding source generator, including failure to compile self-bindings, incorrect detection of inaccessible property setters, excessive dead code generation for converters, and inability to recognize bindable properties generated by other source generators. These issues lead to runtime exceptions, increased binary size, and binding errors that degrade app stability and performance.
    • issues/32467, issues/32469, issues/32473, issues/32517, issues/32596
  • UI Layout and Rendering Problems: Several issues report UI inconsistencies and layout bugs across platforms, such as thinner grid lines on Android, overlapping Flyout menu icons and window controls on Windows, incorrect cursor positioning on iOS with masking behaviors, flickering shell icons on iOS, and misaligned CollectionView items on Windows. These visual and interaction problems cause degraded user experience and platform regressions.
    • issues/32465, issues/32476, issues/32483, issues/32506, issues/32543
  • Shell and Navigation Issues: There are multiple reports of Shell-related regressions and bugs, including the Shell navigation bar remaining visible when it should be hidden on iOS, flyout menu vertical scrolling not disabling on Android, flyout revealing despite being disabled on iOS and MacCatalyst in release builds, and content clipping under status bars when SafeAreaEdges is set to None. These issues cause navigation inconsistencies and layout problems across platforms.
    • issues/32477, issues/32498, issues/32526, issues/32527, issues/32583, issues/32616
  • Platform-Specific Functional Regressions: Several issues describe regressions or platform-specific bugs such as app hangs on iOS when changing device orientation, Map control events not firing in iOS release builds, ScrollView Scrolled event not firing on Mac Catalyst in release mode, and Android emulator authorization failures in CI pipelines. These regressions affect core app functionality and testing workflows.
    • issues/32475, issues/32520, issues/32524, issues/32601
  • AI and Agent Framework Development: A large cluster of issues focus on implementing AI capabilities and agent framework integration in .NET MAUI, including creating platform-specific AI clients for chat, embeddings, image generation, and speech-to-text, designing dependency injection extensions, creating sample apps for local and cloud AI switching, and documenting integration with Microsoft Agent Framework and AG-UI protocol. These efforts aim to enable seamless on-device and cloud AI experiences with secure, extensible, and well-documented APIs.
    • issues/32539, issues/32540, issues/32541, issues/32542, issues/32544, issues/32547, issues/32548, issues/32549, issues/32550, issues/32551, issues/32552, issues/32553, issues/32554, issues/32556, issues/32557, issues/32558, issues/32559, issues/32560, issues/32561, issues/32562, issues/32563, issues/32564, issues/32565, issues/32566, issues/32567, issues/32568
  • Upgrade and Compatibility Issues: Some issues describe problems upgrading projects or environments, such as Visual Studio 2026 breaking .NET 9 iOS MAUI development due to incompatible tooling, WPF Blazor apps failing to run after upgrading to .NET 10 due to missing assemblies, and Android app package conflicts when switching build platforms. These compatibility issues hinder smooth migration and development workflows.
    • issues/32573, issues/32594, issues/32605
  • Input and Interaction Bugs: Issues include problems with cursor positioning in masked text entries on iOS, invalid size reporting for custom ContentView inside CollectionView templates, and unexpected extra checkboxes appearing in multi-selection controls on Windows. These bugs affect user input accuracy and control behavior.
    • issues/32483, issues/32581, issues/32587
  • Exception and Crash Scenarios: Several issues report runtime exceptions and crashes, including NullReferenceExceptions in MAUI compilers and binding expressions, unhandled exceptions causing app freezes in WPF Blazor Hybrid apps, and Java proxy exceptions on Android during app shutdown. These errors reduce app stability and require fixes to prevent crashes.
    • issues/32460, issues/32484, issues/32600, issues/32602
  • Media and WebView Issues: Problems include MediaPicker returning null instead of empty collections on iOS, incorrect image orientation preservation, and WebView content appearing smaller on iOS in .NET 10 compared to .NET 9. These issues degrade media handling and web content display quality.
    • issues/32603, issues/32649, issues/32650
  • Accessibility and Usability Concerns: An issue describes inconsistent initial TalkBack focus behavior on Android where focus lands incorrectly due to ScrollView presence, violating WCAG 2.2 guidelines and impacting accessibility compliance.
    • issues/32632
  • Agent and Expert Support Requests: Requests for creating expert agents and custom agents tailored to user scenarios focus on improving performance, testing, design, and handler customization to enhance support within the MAUI project.
    • issues/32507, issues/32639
  • Configuration and Metadata Handling: Issues include problems with excluding XAML files from source generation causing runtime exceptions, and ensuring inflator metadata can be reverted to default per file, affecting build and runtime behavior.
    • issues/32640, issues/32644

2.4 Closed Issues

This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.

Issues Closed This Week: 18

Summarized Issues:

  • XAML Source Generator Binding Issues: Multiple issues describe problems with the XAML Source Generator in .NET MAUI 10 RC2 and 10.0.10 causing compilation errors and warnings related to nullable reference types and platform-specific control recognition. These include casting errors when binding non-nullable properties within nullable objects, CS8603 warnings for nullable strings, and missing named controls in OnPlatform markup due to partial generation for target platforms only.
  • issues/32459, issues/32478, issues/32521
  • XAML Source Generator Obsolete API Usage: Enabling XAML Source Gen causes generated code to use the obsolete Microsoft.Maui.Controls.Device API, resulting in CS0612 warnings that break builds configured to treat warnings as errors.
  • issues/32523
  • Null Value Handling in Controls: A regression in .NET MAUI causes RadioButton controls to no longer support null values as selectable options due to coercion of the Value property, breaking scenarios like "Don't know" options and requiring fixes or workarounds across platforms.
  • issues/32466
  • Android MediaPicker NullReferenceException: The MediaPicker.Default.PickPhotosAsync() method throws a NullReferenceException on Android after migrating to .NET 10 because it lacks a null check on the MediaPickerOptions parameter, causing the picker to fail unless a non-null options object is provided.
  • issues/32535
  • AI Samples and Migration Support: There are requests to provide comprehensive AI-related samples, documentation, and project templates for .NET MAUI that enable easy migration from local AI implementations to cloud providers like Azure OpenAI. These resources aim to demonstrate configuration-only changes, hybrid cloud scenarios, and emphasize security and privacy best practices.
  • issues/32546, issues/32555
  • Android APK Publishing Regression: A change in .NET 10 requires command-line distribution for publishing Android APKs, whereas UI distribution was supported in .NET 9, prompting questions about the regression and potential optimizations.
  • issues/32576
  • Source Generator Snapshot Testing Improvements: There is an effort to research and improve snapshot testing for source generator unit tests by addressing issues like whitespace sensitivity and unclear diffs, aiming to implement a more effective and user-friendly solution.
  • issues/32584
  • Build Infinite Loop with MauiXamlInflator SourceGen: Building a .NET MAUI app can get stuck in an infinite loop when MauiXamlInflator is set to SourceGen due to circular context references triggered by XAML constructs like x:Reference, causing the build process to never complete in Visual Studio 2026 and VS Code.
  • issues/32623
  • Project Template Categorization Error: The new MAUI project template in Visual Studio is incorrectly categorized under ".NET Aspire" instead of "Aspire," causing filtering inconsistencies when selecting project types.
  • issues/32624
  • x:Static Markup Handling Enhancement: There is a proposal to improve handling of x:Static markups by inferring missing types on generated types, similar to the approach used previously for x:Type.
  • issues/32627
  • Android OpenFilePick .shp File Selection Issue: Selecting .shp files using OpenFilePick on Android fails due to uncertainty about the correct MIME type; setting it to "application/octet-stream" prevents selection, and attempts with more specific MIME types like "application/vnd.shp" have not resolved the problem.
  • issues/32636
  • EmitCompilerGeneratedFiles Build Failure: Enabling the EmitCompilerGeneratedFiles option in a MAUI project causes build failures due to missing output paths for generated source files.
  • issues/32637
  • iOS Network Permission Regression: A regression in .NET 10 with Xcode 26.0.1 causes a SocketException "No route to host" in iOS apps using the Rssdp library due to missing network permission prompts and Info.plist entries, requiring restoration of the NSLocalNetworkUsageDescription key for network discovery to work.
  • issues/32641
  • Font Usage Limitation in ICanvas: Fonts registered via ConfigureFonts in a .NET MAUI app are usable within the app but cannot be used by ICanvas unless installed on the client machine, prompting requests for ICanvas to support fonts embedded in the app's Resources/Fonts folder.
  • issues/32643
  • Shared Apple Directory Proposal: A proposal suggests adding support for a shared Apple directory (e.g., Platforms/Apple/) in .NET MAUI projects to consolidate common code for iOS and Mac Catalyst, reducing duplication and improving maintainability without new public APIs.
  • issues/32513

2.5 Issue Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.


III. Pull Requests

3.1 Open Pull Requests

This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Opened This Week: 37

Key Open Pull Requests

1. [XSG] Reduce dead code for Setters with compiled converters: This pull request optimizes the .NET MAUI XAML Source Generator by eliminating dead code generated for Setters with compiled converters, specifically by implementing the IKnownMarkupValueProvider interface and related logic to fully inline simple Setter properties without creating unnecessary service provider objects, thereby reducing binary size and removing AOT-incompatible code while maintaining correct behavior for complex markup extensions.

  • URL: pull/32474
  • Merged: No
  • Associated Commits: 1bd90, 16a6a, 53d15, 6bcda, 04e83, 3f29b, 878ad, 10302, b0f87, 4e7be, 968f3, 9e356, b2a65, 1c61b

2. [XSG] Add heuristic to support bindable properties generated by other source generators: This pull request implements a heuristic in the XAML source generator to detect and support bindable properties whose BindableProperty fields are generated by other source generators (such as CommunityToolkit.Maui's [BindableProperty] attribute), enabling correct binding by generating appropriate SetBinding or SetValue calls based on recognized attributes and name-matching strategies, thereby resolving the MAUIX2002 error caused by the independent execution of source generators.

  • URL: pull/32597
  • Merged: No
  • Associated Commits: 4837d, 52d20, bc7cc, 91269, 0e21c, 8424e, 7d996, b0f7d, 95035, 476f5, a78f4, c4025, 0118d, 936a0

3. Add support for private types in SetBinding using UnsafeAccessorType: This pull request implements full support for using private types as lambda parameters in the SetBinding method by leveraging .NET 10's [UnsafeAccessorType] feature, enabling binding scenarios with private nested classes through generated code that uses object parameters and unsafe accessors, removes previous diagnostics blocking private types, and includes comprehensive integration and functional tests verifying correct behavior with private, protected, internal, and nullable inaccessible types.

  • URL: pull/32618
  • Merged: No
  • Associated Commits: fc949, 2af17, e45d8, d17f3, 197b1, f3c11, 99697, 23192, 9ce59, 9ac3e, d666f, 6fe24, 86c93

Other Open Pull Requests

  • XAML Source Generator Fixes: Multiple pull requests fix issues in the XAML source generator, including correct compilation of self-bindings and empty bindings, handling of explicit Path= syntax and namespace resolution, and proper property type resolution for compiled bindings. These fixes prevent null reference exceptions and improve test coverage with new and updated tests.
    • pull/32468, pull/32580
  • ScrollView RTL and Orientation Fixes: Several pull requests address incorrect scrolling behavior in ScrollView components with RightToLeft (RTL) flow direction and horizontal orientation on iOS and Android by adding orientation tracking and improving RTL layout handling. These changes fix broken RTL user experiences and ensure correct content positioning at runtime.
    • pull/32529, pull/32531
  • Shell and UI Layout Improvements: Multiple pull requests fix UI issues such as Shell content page title clipping on Android 9, vertical scroll mode not disabling on Windows Shell Flyout, TabBar visibility on Mac Catalyst, and layout inconsistencies in ContentView on Catalyst. These fixes include adding missing property mappings, explicit property settings, and layout invalidation calls to ensure consistent UI behavior across platforms.
    • pull/32537, pull/32516, pull/32528, pull/32481
  • Platform-Specific Enhancements and Bug Fixes: Several pull requests provide fixes and enhancements across iOS, Android, Windows, and Mac platforms, including LinearGradientBrush alignment, Android Material theming, WebView JavaScript evaluation, predictive back gesture support for Android 13+, DatePicker year display on iOS, and MenuFlyoutItem icon color preservation on Windows. These changes improve platform consistency and user experience.
    • pull/32509, pull/32522, pull/32577
  • BindingSourceGenerator Accessibility Fixes: A pull request improves the BindingSourceGenerator to correctly detect and handle public properties with non-public setters by enhancing accessibility checks and generating appropriate UnsafeAccessor code. This prevents compilation errors caused by invalid direct assignments to inaccessible property setters and includes comprehensive tests for all setter visibility scenarios.
    • pull/32470
  • HybridWebView Refactor and Bug Fix: One pull request refactors the HybridWebView by extracting JavaScript invocation logic into a helper class and fixes a critical bug with JSON string escaping in InvokeJavaScriptAsync. This enables proper handling of complex parameters with full backward compatibility and improved test coverage.
    • pull/32491
  • AI and C# Expert Agent Integration: A pull request introduces initial support for Essentials AI by adding new AI library and sample projects, updating build configurations, and managing dependencies. Another pull request adds a MAUI-specific C# Expert agent that extends generic guidance with MAUI-tailored patterns and integrates related instruction files for comprehensive AI assistant support.
    • pull/32569, pull/32538
  • Build and CI Pipeline Improvements: Multiple pull requests update build and pipeline configurations by always including the MAUI variable group, simplifying build argument handling, removing unused parameters, fixing conditional properties, replacing deprecated tasks with custom scripts, and vendoring source code for dependencies. These changes streamline CI processes and improve maintainability and security.
    • pull/32610, pull/32599, pull/32607
  • ScrollView Dynamic Layout Testing: A pull request adds comprehensive test cases verifying that ScrollView dynamically resizes its layout correctly when child elements are added or removed at runtime. These tests cover multiple layout types and ensure consistent behavior across all supported platforms.
    • pull/32617
  • Android Safe Area and Modal Navigation Fixes: Pull requests address Android-specific issues by enabling content to flow behind translucent navigation bars when SafeAreaEdges is set to None and fixing app hangs caused by modal navigation timing inconsistencies. These fixes improve edge-to-edge content display and modal navigation reliability.
    • pull/32490, pull/32479
  • Legacy Code Removal and API Cleanup: One pull request removes the entire src/Compatibility folder along with legacy Forms compatibility code, handlers, test pages, and build configurations that were never built or tested. It updates handler registrations to modern implementations and cleans up public APIs while preserving obsolete legacy layout APIs for backward compatibility.
    • pull/32486
  • Shell Feature Matrix for Testing: A pull request introduces a comprehensive Shell feature matrix to the test cases host app by adding new pages, controls, and a view model. This enables extensive testing and dynamic customization of Shell Flyout properties and UI elements, enhancing validation and demonstration of Shell Flyout capabilities.
    • pull/32525
  • XAML Unit Test Migration Fixes: A pull request addresses issues found during migration of XAML unit tests from NUnit to xUnit by fixing test method signatures, correcting API usage, resolving logic errors, fixing build errors, and restoring accidentally deleted test files.
    • pull/32575

3.2 Closed Pull Requests

This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Closed This Week: 35

Key Closed Pull Requests

1. Improve AI agent documentation and testing instructions: This pull request consolidates and significantly improves the AI agent documentation and testing instructions for the .NET MAUI repository by introducing new detailed instruction files, enhancing existing guides with better workflows and cross-references, reorganizing documentation for clarity and maintainability, and updating sample code and configuration to support improved testing practices and agent guidance.

  • URL: pull/32485
  • Merged: Yes
  • Associated Commits: 4d399, c1f9d, daf3e, 6bb45, b49e2, 6d7d8

2. Add VisualTestUtils source to replace deprecated NuGet package: This pull request aims to replace the deprecated VisualTestUtils NuGet package by copying its source code directly into the MAUI repository, updating test project references to use the local code, upgrading Magick.NET to a secure version to address a security advisory, and ensuring better maintenance and security control over the visual test utilities.

  • URL: pull/32591
  • Merged: No
  • Associated Commits: 7fe24, 51a8f, 87200, d2ad3, c8944, e3922

3. Improve snapshot testing in source generator unit tests: This pull request introduces improved snapshot testing utilities for source generator unit tests that address whitespace brittleness, enhance diff output clarity, and simplify assertions by adding two new assertion tools—SnapshotAssert for normalized, precise comparisons and CSharpierSnapshotAssert for formatting-agnostic checks—along with comprehensive documentation and migration guides, while maintaining full backward compatibility.

  • URL: pull/32585
  • Merged: No
  • Associated Commits: 5bc1d, 9e250, 763e4, da01f, 7ee1d

Other Closed Pull Requests

  • Nullable reference type fixes in SourceGen binding code: This pull request fixes the CS8603 "Possible null reference return" error by correctly applying nullable reference type annotations in binding paths involving nullable objects followed by reference type properties. It ensures that TypedBinding signatures accurately reflect nullability and updates tests accordingly.
    • pull/32480
  • Aspire template renaming and categorization: These pull requests fix the categorization of the .NET MAUI Aspire template in Visual Studio by changing its classification from ".NET Aspire" to "Aspire" and update the Aspire ServiceDefaults template to rename all references accordingly. This ensures consistent naming, proper filtering, and accuracy across the project.
    • pull/32625, pull/32626
  • Back navigation and Android 13 gesture support: This pull request introduces a unified HandleBackNavigation method to centralize back navigation logic and integrates predictive back gesture support for Android 13 and above. It ensures custom back navigation participates in system predictive back animations while improving callback registration and resource management.
    • pull/32461
  • Project format transition to SLNX and SLNF: This pull request transitions the project to use the new slnx and slnf formats, improving workspace setup and enabling generation during local development for a better overall experience.
    • pull/32514
  • Pipeline configuration improvements for UI and device tests: These pull requests update the UI tests pipeline to restrict Android and iOS test jobs to macOS agents, refactor device test pipelines by splitting pool parameters for better flexibility, add a new UI tests pipeline YAML configuration, and remove the task of pushing device test results from CI as Helix handles it automatically. These changes improve pipeline clarity, maintainability, and agent selection.
    • pull/32532, pull/32533, pull/32572, pull/32611
  • Bug report template and version updates: These pull requests update the main SR version and GitHub Issues by modifying the bug-report template to include additional version options and bump the MicrosoftMauiPreviousDotNetReleasedVersion to 9.0.120. This enhances accuracy in bug reporting and reflects updated project dependencies.
    • pull/32499, pull/32612
  • Compile-time simplification of OnPlatform elements: These pull requests enable compile-time simplification of <OnPlatform> XML elements and OnPlatform elements with x:TypeArguments in resource dictionaries by fixing and enhancing the SimplifyOnPlatformVisitor and wrapping ValueNodes in typed ElementNodes. This improves platform-specific code generation and optimization with comprehensive test coverage.
    • pull/32534, pull/32620
  • Pipeline toolchain version updates: This pull request updates the pipeline configuration by bumping the Xcode version to 26.0.1 and setting the .NET default version to the stable release 10.0.100. This ensures build and test environments use the latest stable toolchain versions.
    • pull/32621
  • RadioButton Value property coercion removal: This pull request removes the coercion logic in the RadioButton control that automatically set its Value property to the instance when null, allowing the Value to be explicitly set to null. Related unit tests were updated to accommodate this new behavior.
    • pull/32489
  • Investigation of unmanaged resource release in collection view: This pull request is an initial investigation into whether unmanaged resources related to a collection view are properly released, prompted by a user-reported issue. The analysis and planning are ongoing and not yet completed or merged.
    • pull/32496
  • NuGet configuration cleanup: This pull request cleans the nuget.config file by removing feeds to ensure that only stable workloads are used in the build process.
    • pull/32501
  • Addition of README-AI.md file: This pull request adds a new README-AI.md file to the repository, as indicated by the commit message and successful merge.
    • pull/32502
  • Agent configuration update for C# Expert details: This pull request proposes updating the agent configuration to include C# Expert details and guidelines specifically tailored for .NET development, enhancing customization of development agents.
    • pull/32518
  • XmlLineInfoProvider addition for exception reporting: This pull request adds an XmlLineInfoProvider to ensure that exceptions are correctly reported in the project.
    • pull/32530
  • Target framework variable usage in integration tests: This pull request updates the Microsoft.Maui.IntegrationTests project to replace the hardcoded net8.0 target framework with the $(_MauiDotNetTfm) variable, improving configuration flexibility and consistency.
    • pull/32570
  • Android MediaPicker selection limit refactor: This pull request refactors selection limit handling in the Android MediaPicker by introducing a local variable with a default value of 1 to replace direct access to options.SelectionLimit. This improves null safety and code clarity consistent with the iOS implementation.
    • pull/32571
  • Correction of default solution file setting: This pull request updates the default solution file in project settings to correct an incorrect setting mistakenly set to SLNX during the SLNX move.
    • pull/32572
  • Android emulator startup pattern documentation: This pull request adds a standardized Android emulator startup pattern to the common testing patterns documentation, including process cleanup, correct directory launch, boot completion polling, device verification, and error handling. This improves reliability and consistency in testing workflows.
    • pull/32615
  • Net10 arcade configuration updates: This pull request updates the net10 arcade configuration by modifying card bits and the SDK servicing test to improve continuous integration processes.
    • pull/32574

3.3 Pull Request Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.


IV. Contributors

4.1 Contributors

Active Contributors:

We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.

If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.

Contributor Commits Pull Requests Issues Comments
Copilot 300 45 0 289
rmarinho 169 18 9 3
simonrozsival 28 2 5 98
mattleibow 54 8 29 26
PureWeen 67 8 13 22
StephaneDelcroix 48 10 11 18
kubaflo 26 15 0 19
jfversluis 18 0 1 39
jsuarezruiz 12 1 0 41
TamilarasanSF4853 12 2 1 25

Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.