KEMBAR78
[NET10] Make IPlatformMeasureInvalidationController public by Copilot · Pull Request #31133 · dotnet/maui · GitHub
Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 12, 2025

  • Make IPlatformMeasureInvalidationController interface public for .NET 10
  • Add comprehensive XML documentation to guide proper implementation
  • Update PublicAPI.Unshipped.txt files for iOS and Mac Catalyst platforms
  • Add interface methods to PublicAPI files
  • FIX: Add missing interface declaration to PublicAPI files
  • Add comprehensive tests demonstrating interface implementation patterns
  • Ensure backward compatibility - all existing implementations continue to work unchanged
  • Validate all 798 existing unit tests pass
  • FIX: Remove duplicate LerpDelegate.Invoke entries causing RS0025 build error
  • FIX: Remove BOM character from SafeAreaEdgesTypeConverter PublicAPI declaration
  • FIX: Remove IPlatformMeasureInvalidationControllerTests.cs file as requested

Latest Fix: Removed the IPlatformMeasureInvalidationControllerTests.cs test file as requested by the reviewer. The interface is now correctly declared as public API with all its methods properly documented and no test file conflicts.

The interface is now correctly declared as public API with all its methods properly documented and all analyzer errors resolved.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@Copilot Copilot AI changed the title [WIP] [NET10] Make IPlatformMeasureInvalidationController public [NET10] Make IPlatformMeasureInvalidationController public Aug 12, 2025
Copilot finished work on behalf of PureWeen August 12, 2025 17:59
@Copilot Copilot AI requested a review from PureWeen August 12, 2025 17:59
@jsuarezruiz
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@jfversluis
Copy link
Member

@copilot the public api txt files do not seem correct, see build error:

src\Core\src\Platform\iOS\IPlatformMeasureInvalidationController.cs(6,18): Error RS0016: Symbol 'Microsoft.Maui.Platform.IPlatformMeasureInvalidationController' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)

@Copilot
Copy link
Contributor Author

Copilot AI commented Aug 28, 2025

@copilot the public api txt files do not seem correct, see build error:

src\Core\src\Platform\iOS\IPlatformMeasureInvalidationController.cs(6,18): Error RS0016: Symbol 'Microsoft.Maui.Platform.IPla...

Fixed the PublicAPI files by adding the missing interface declaration. The issue was that I had added the interface methods but forgot to add the interface declaration itself. Added Microsoft.Maui.Platform.IPlatformMeasureInvalidationController to both net-ios and net-maccatalyst PublicAPI.Unshipped.txt files. Commit: 0e1f6f6

@Copilot Copilot AI requested a review from jfversluis August 28, 2025 13:47
Copilot finished work on behalf of jfversluis August 28, 2025 13:47
@jsuarezruiz
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

jsuarezruiz
jsuarezruiz previously approved these changes Sep 1, 2025
@PureWeen PureWeen marked this pull request as ready for review September 5, 2025 21:46
@Copilot Copilot AI review requested due to automatic review settings September 5, 2025 21:46
@PureWeen PureWeen requested a review from a team as a code owner September 5, 2025 21:46
Copy link
Contributor

@Copilot Copilot AI left a 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 makes the IPlatformMeasureInvalidationController interface public for .NET 10, allowing external developers to implement custom measure invalidation behavior in iOS applications. The change addresses the need for developers to control how layout invalidation propagates through the view hierarchy.

  • Make IPlatformMeasureInvalidationController interface public with comprehensive XML documentation
  • Add the interface and its methods to PublicAPI.Unshipped.txt files for iOS and Mac Catalyst platforms
  • Add comprehensive unit tests demonstrating proper interface implementation patterns

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/Core/src/Platform/iOS/IPlatformMeasureInvalidationController.cs Changes interface visibility from internal to public and adds comprehensive XML documentation
src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt Registers the new public interface and its methods for iOS platform
src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt Registers the new public interface and its methods for Mac Catalyst platform
src/Core/tests/UnitTests/Platform/IPlatformMeasureInvalidationControllerTests.cs Adds unit tests validating interface implementation and method behavior

@PureWeen PureWeen changed the base branch from main to net10.0 September 5, 2025 21:49
@PureWeen
Copy link
Member

PureWeen commented Sep 5, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

Copy link
Contributor

@jsuarezruiz jsuarezruiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Errors is publicAPIs, could you review?

C:\a\_work\1\s\src\Core\src\PublicAPI\net-maccatalyst\PublicAPI.Unshipped.txt(233,1): error RS0025: The symbol 'virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object!' appears more than once in the public API files (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [C:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=net10.0-maccatalyst18.5]
C:\a\_work\1\s\src\Core\src\PublicAPI\net-ios\PublicAPI.Unshipped.txt(230,1): error RS0025: The symbol 'virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object!' appears more than once in the public API files (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [C:\a\_work\1\s\src\Core\src\Core.csproj::TargetFramework=net10.0-ios18.5]
    2 Error(s)

@PureWeen
Copy link
Member

/rebase

@PureWeen
Copy link
Member

@copilot fix this please

/Users/builder/azdo/_work/2/s/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt(233,1): error RS0025: The symbol 'virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object!' appears more than once in the public API files (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [/Users/builder/azdo/_work/2/s/src/Core/src/Core.csproj::TargetFramework=net10.0-maccatalyst18.5]

Build FAILED.

/Users/builder/azdo/_work/2/s/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt(233,1): error RS0025: The symbol 'virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object!' appears more than once in the public API files (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [/Users/builder/azdo/_work/2/s/src/Core/src/Core.csproj::TargetFramework=net10.0-maccatalyst18.5]
0 Warning(s)
1 Error(s)

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@PureWeen
Copy link
Member

@copilot /Users/builder/azdo/_work/3/s/src/Core/src/Converters/SafeAreaEdgesTypeConverter.cs(11,15): error RS0016: Symbol 'Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [/Users/builder/azdo/_work/3/s/src/Core/src/Core.csproj::TargetFramework=net10.0-ios18.5]
/Users/builder/azdo/_work/3/s/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt(6,1): error RS0017: Symbol 'Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter' is part of the declared API, but is either not public or could not be found (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) [/Users/builder/azdo/_work/3/s/src/Core/src/Core.csproj::TargetFramework=net10.0-ios18.5]
0 Warning(s)
2 Error(s)

…ration

Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com>
@Copilot
Copy link
Contributor Author

Copilot AI commented Sep 12, 2025

@copilot /Users/builder/azdo/_work/3/s/src/Core/src/Converters/SafeAreaEdgesTypeConverter.cs(11,15): error RS0016: Symbol 'Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter' is not part of the decl...

Fixed the PublicAPI error by removing the BOM (Byte Order Mark) character from the SafeAreaEdgesTypeConverter declaration in the net-ios PublicAPI.Unshipped.txt file. The BOM character was preventing the analyzer from correctly recognizing the symbol. Commit: 66e9cce

Copilot finished work on behalf of PureWeen September 12, 2025 16:44
@PureWeen
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@PureWeen PureWeen enabled auto-merge (squash) September 18, 2025 20:03
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot delete this file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted the IPlatformMeasureInvalidationControllerTests.cs file as requested. Build verified successfully after removal. Commit: df32577

Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com>
@Copilot Copilot AI requested a review from PureWeen September 18, 2025 20:15
Copilot finished work on behalf of PureWeen September 18, 2025 20:15
@PureWeen
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@PureWeen PureWeen added the p/0 Work that we can't release without label Sep 21, 2025
@PureWeen PureWeen added this to the .NET 10.0-rc2 milestone Sep 21, 2025
@PureWeen PureWeen moved this from Todo to Ready To Review in MAUI SDK Ongoing Sep 21, 2025
@PureWeen PureWeen merged commit 1100f53 into net10.0 Sep 22, 2025
148 checks passed
@PureWeen PureWeen deleted the copilot/fix-31131 branch September 22, 2025 12:15
@github-project-automation github-project-automation bot moved this from Ready To Review to Done in MAUI SDK Ongoing Sep 22, 2025
@PureWeen PureWeen mentioned this pull request Oct 21, 2025
2 tasks
@github-actions github-actions bot locked and limited conversation to collaborators Oct 23, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

p/0 Work that we can't release without

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants