-
Notifications
You must be signed in to change notification settings - Fork 548
Closed
Labels
breaking-changeIf an issue or a pull request represents a breaking changeIf an issue or a pull request represents a breaking changeenhancementThe issue or pull request is an enhancementThe issue or pull request is an enhancementiOSIssues affecting iOSIssues affecting iOSmacOSIssues affecting macOSIssues affecting macOS
Milestone
Description
In some future day we may have a chance to break API compatibility.
When that day comes we should fix up every single API mistake we can. This is a list of items we should audit.
-
Drop support for iOS 32-bit?We still support iOS 32-bit in .NET, and we will until our minimum OS version is 11+. - The "old" XM audit bug list from 2015 - https://bugzilla.xamarin.com/show_bug.cgi?id=31549
- Rename: [AppKit] Improve a few API names for .NET. #13824
[Lion] [Export ("frameForItemAtIndex:withNumberOfItems:")] CGRect FrameForItemAtIndex (nint index, nint numberOfItems); -
NSAttributedString contains an existing ContainsAttachments property. 10,11 added a ContainsAttachmentsInRange method. Can't name the method ContainsAttachments because it conflicts with the property, but ContainsAttachmentsInRange (used for now) is an ugly name.Nothing can be done here. - NSTableView.DragImageForRowsWithIndexestableColumnseventoffset should be DragImageForRows. [AppKit] Rename NSTableView.DragImageForRowsWithIndexestableColumnseventoffset to NSTableView.DragImageForRows in .NET. #13723.
- interface MKUserLocation : IMKAnnotation should be MKAnnotation not possible, see [AppKit] Use the correct interface for inlining protocols in our api definitions in .NET. #14041
-
Double exported "worksWhenModal" selectorDon't know what this is talking about, can't find any problems with the "worksWhenModal" selector that looks like this. - Invalid enum sizes: https://bugzilla.xamarin.com/show_bug.cgi?id=30719
- NSPasteboardItemDataProvider's FinishedWithDataProvider should not be required.
-
[XM] Add missing NSResponder APIs #929: All of the PresentError in AppKit need love.This can be done in a non-breaking way. - Api inconsistency [AppKit] Improve a few API names for .NET. #13824
NSMenuItemCell `cell.StateImageWidth () - cell.KeyEquivalentWidth` one is a method... one a property! - Need an override for CreateCGImage that accepts (CIImage, CGRect, CIFormat, CGColorSpace) (Bindings have int instead of CIFormat).
[CoreImage] Strong-type a format parameter to CIContext.CreateCGImage in .NET. #13829already done some time ago - AudioComponentDescription.ComponentSubType should be of type AudioUnitSubType instead of int. [AudioComponentDescription] Strong-type the ComponentSubType field in .NET. #13827
- Apple added a number of "smart" enums by renaming NSStrings with a typedef. If/when we break API compat, we should adopt those. This has been fixed in various XAMCORE_4_0 defines already
- NSWorkspace.SharedWorkspace.OpenURLs are inconsistent. [AppKit] Rename NSWorkspace.OpenURL[s] to OpenUrl[s] in .NET. #14028
- NSLayoutManager has numerous methods that are not well named. [Foundation] Adopt a better name/signature for numerous Foundation API in .NET. #13776
- On NSTextFieldDelegate this is a terrible name: Not worth it to change
[Export ("controlTextDidChange:"), EventArgs ("NSNotification")] void Changed (NSNotification notification);
- Rename: [AppKit] Improve a few API names for .NET. #13824
- Other bugs listed with [APIBreak] - https://bugzilla.xamarin.com/buglist.cgi?quicksearch=[APIBreak]
- https://bugzilla.xamarin.com/show_bug.cgi?id=40095: [AppKit] Fix NSWindow.WindowController's return type in .NET. #13624
- [APIBreak] All events on NSApplicationDelegate are unsafe in 99% of applications #14047 (old: https://bugzilla.xamarin.com/show_bug.cgi?id=44957): We don't want to do this
- https://bugzilla.xamarin.com/show_bug.cgi?id=46316: [WebKit] Fix the return types for WebUIDelegate.UIGetDragDestinationActionMask and WebUIDelegate.UIDragSourceActionMask in .NET. #13626
- Issues marked with breaking-change - https://github.com/xamarin/xamarin-macios/issues?q=is%3Aopen+is%3Aissue+label%3Abreaking-change+-milestone%3AXAMCORE_5_0+
- Audit
[Sealed]items, as some were added during work arounds for binding mistakes. Example - Consider Immutable/readonly structs (e.g. NSRange) #5110 and other immutable changes on our data structure wrappings
-
Look at the types we use from System.Drawing and see if we can improve that scenario.This is done as part of .NET 6. - Change some non-optimal default values to better default values
- Make --dlsym:false the default for all assemblies, not just ours. This can be done later, it's not an API breaking change
- Turn on exception marshalling by default. [tools/runtime] Enable exception marshalling by default for all platforms in .NET. #14051
- Change constraint according to comment here: https://github.com/xamarin/xamarin-macios/blob/544925738de4a724611c8743408ab9b637fa4605/src/ObjCRuntime/Blocks.cs#L239: [Blocks] Constrain the generic type for GetTarget and GetDelegateForBlock to delegates in .NET #13606.
- Remove
CFNetworknamespace, includingMessageHandler, from Xamarin.Mac. [CFNetwork] Remove the MessageHandler type from .NET. #14056 - Depending on OS versions supported remove
CFNetworkHandler(minimum iOS 8) We can do this at a later stage - Remove Runtime.GetSurfacedObjects: [src] Remove Runtime.GetSurfacedObjects in .NET. #13608
- Move System.Drawing.[Point[F]|Rectangle[F]|Size[F] types out of platform assemblies. This is already a side effect of .NET.
- Move System.Drawing.Colors out of OpenTK-1.0.dll: This is already a side effect of .NET.
- Move OpenTK types out of platform assemblies: Severe namespace conflict with OpenTK in Xamarin.Android and Xamarin.iOS mono/opentk#19 and https://gist.github.com/rolfbjarne/f3e2030c5b334146c2af488f33973bab. Tracked here: .NET: Clear the OpenTK namespace #13160
- Audit availability attributes
- Remove ObjCRuntime.AvailabilityAttribute (and maybe rename ObjCRuntime.AvailabilityBaseAttribute to ObjCRuntime.AvailabilityAttribute). This has been done as part of the .NET migration.
- Check if the
onlyOn64logic is still applicable (it's not for tvOS for instance, where the API will always be 64-bit, and it might be true for our iOS/macOS bindings too at that point). This has been done as part of the .NET migration.
- Make ObjCRuntime.Runtime.Arch a readonly field (Make ObjCRuntime.Runtime.Arch a constant for the AOT compiler #5518).
- Change Full Target Framework Identifier: N/A, this is already a side effect of .NET.
- Fix incorrectly abstract members in UITextInputTraits (IUITextInputTraits incorrectly marks members as "IsRequired" when in reality they are all optional #5831): [UIKit] Make UITextInputTraits members optional in .NET. Fixes #5831. #13607
- Make AutoGeneratedName true by default. [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. #13619
- All deprecated API, example: https://github.com/xamarin/xamarin-macios/pull/6476/files tracked in Verify obsolete selectors to be removed #13621
- AUParameter/AUParameterNode extensions calling into obsolete generated code [AudioUnit] Adopt XAMCORE_4_0 changes in .NET. #13899
Metadata
Metadata
Assignees
Labels
breaking-changeIf an issue or a pull request represents a breaking changeIf an issue or a pull request represents a breaking changeenhancementThe issue or pull request is an enhancementThe issue or pull request is an enhancementiOSIssues affecting iOSIssues affecting iOSmacOSIssues affecting macOSIssues affecting macOS