-
Notifications
You must be signed in to change notification settings - Fork 743
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
[Epic] Breaking changes roundup #8339
Comments
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
It might also be a good idea to not expose uno/src/Uno.UI/UI/Xaml/Controls/Image/Image.wasm.cs Lines 17 to 22 in 88d7a40
It should be used only by Uno, I think |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
@MartinZikmund I assume these will go into Uno 5 (next major release)? If so, should we have a branch to work on these earlier? |
I think that is a good idea, let's make PRs for them targeting this branch - https://github.com/unoplatform/uno/tree/dev/5.0-breaking-changes
|
For breaking changes let's use a branch named |
Great. I renamed the branch Martin created: https://github.com/unoplatform/uno/tree/feature/breaking-changes. I'm going to start working on some of the changes soon.
|
BREAKING CHANGE: `ControlsResourcesVersion` enum is moved to Uno.UI assembly GitHub Issue (If applicable): Part of #8339 <!-- Link to relevant GitHub issue if applicable. All PRs should be associated with an issue (GitHub issue or internal), unless the change is documentation related. --> ## PR Type What kind of change does this PR introduce? <!-- Please uncomment one or more that apply to this PR - Bugfix - Feature - Code style update (formatting) - Refactoring (no functional changes, no api changes) - Build or CI related changes - Documentation content changes - Project automation - Other... Please describe: --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying, or link to a relevant issue. --> ## What is the new behavior? <!-- Please describe the new behavior after your modifications. --> ## PR Checklist Please check if your PR fulfills the following requirements: - [ ] Docs have been added/updated which fit [documentation template](https://github.com/unoplatform/uno/blob/master/doc/.feature-template.md) (for bug fixes / features) - [ ] [Unit Tests and/or UI Tests](https://github.com/unoplatform/uno/blob/master/doc/articles/uno-development/working-with-the-samples-apps.md) for the changes have been added (for bug fixes / features) (if applicable) - [ ] Validated PR `Screenshots Compare Test Run` results. - [ ] Contains **NO** breaking changes - [ ] Associated with an issue (GitHub or internal) and uses the [automatic close keywords](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue). - [ ] Commits must be following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification. <!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. Please note that breaking changes are likely to be rejected --> ## Other information <!-- Please provide any additional information if necessary --> Internal Issue (If applicable): <!-- Link to relevant internal issue if applicable. All PRs should be associated with an issue (GitHub issue or internal) -->
BREAKING CHANGE: The property is read-only in UWP/WinUI GitHub Issue (If applicable): Part of #8339 <!-- Link to relevant GitHub issue if applicable. All PRs should be associated with an issue (GitHub issue or internal), unless the change is documentation related. --> ## PR Type What kind of change does this PR introduce? <!-- Please uncomment one or more that apply to this PR - Bugfix - Feature - Code style update (formatting) - Refactoring (no functional changes, no api changes) - Build or CI related changes - Documentation content changes - Project automation - Other... Please describe: --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying, or link to a relevant issue. --> ## What is the new behavior? <!-- Please describe the new behavior after your modifications. --> ## PR Checklist Please check if your PR fulfills the following requirements: - [ ] Docs have been added/updated which fit [documentation template](https://github.com/unoplatform/uno/blob/master/doc/.feature-template.md) (for bug fixes / features) - [ ] [Unit Tests and/or UI Tests](https://github.com/unoplatform/uno/blob/master/doc/articles/uno-development/working-with-the-samples-apps.md) for the changes have been added (for bug fixes / features) (if applicable) - [ ] Validated PR `Screenshots Compare Test Run` results. - [ ] Contains **NO** breaking changes - [ ] Associated with an issue (GitHub or internal) and uses the [automatic close keywords](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue). - [ ] Commits must be following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification. <!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. Please note that breaking changes are likely to be rejected --> ## Other information <!-- Please provide any additional information if necessary --> Internal Issue (If applicable): <!-- Link to relevant internal issue if applicable. All PRs should be associated with an issue (GitHub issue or internal) -->
BREAKING CHANGE: `GridExtensions` is made internal GitHub Issue (If applicable): Part of #8339. **NOTE:** #8339 states that this type should be moved to legacy namespace. I took a stronger step here and made this type internal as I don't think it's something that should be public. <!-- Link to relevant GitHub issue if applicable. All PRs should be associated with an issue (GitHub issue or internal), unless the change is documentation related. --> ## PR Type What kind of change does this PR introduce? <!-- Please uncomment one or more that apply to this PR - Bugfix - Feature - Code style update (formatting) - Refactoring (no functional changes, no api changes) - Build or CI related changes - Documentation content changes - Project automation - Other... Please describe: --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying, or link to a relevant issue. --> ## What is the new behavior? <!-- Please describe the new behavior after your modifications. --> ## PR Checklist Please check if your PR fulfills the following requirements: - [ ] Docs have been added/updated which fit [documentation template](https://github.com/unoplatform/uno/blob/master/doc/.feature-template.md) (for bug fixes / features) - [ ] [Unit Tests and/or UI Tests](https://github.com/unoplatform/uno/blob/master/doc/articles/uno-development/working-with-the-samples-apps.md) for the changes have been added (for bug fixes / features) (if applicable) - [ ] Validated PR `Screenshots Compare Test Run` results. - [ ] Contains **NO** breaking changes - [ ] Associated with an issue (GitHub or internal) and uses the [automatic close keywords](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue). - [ ] Commits must be following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification. <!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. Please note that breaking changes are likely to be rejected --> ## Other information <!-- Please provide any additional information if necessary --> Internal Issue (If applicable): <!-- Link to relevant internal issue if applicable. All PRs should be associated with an issue (GitHub issue or internal) -->
…12203) BREAKING CHANGE: `SimpleOrientationSensor` should not schedule on `Dispatcher` GitHub Issue (If applicable): closes #10905, Part of #8339 <!-- Link to relevant GitHub issue if applicable. All PRs should be associated with an issue (GitHub issue or internal), unless the change is documentation related. --> ## PR Type What kind of change does this PR introduce? <!-- Please uncomment one or more that apply to this PR - Bugfix - Feature - Code style update (formatting) - Refactoring (no functional changes, no api changes) - Build or CI related changes - Documentation content changes - Project automation - Other... Please describe: --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying, or link to a relevant issue. --> ## What is the new behavior? <!-- Please describe the new behavior after your modifications. --> ## PR Checklist Please check if your PR fulfills the following requirements: - [ ] Docs have been added/updated which fit [documentation template](https://github.com/unoplatform/uno/blob/master/doc/.feature-template.md) (for bug fixes / features) - [ ] [Unit Tests and/or UI Tests](https://github.com/unoplatform/uno/blob/master/doc/articles/uno-development/working-with-the-samples-apps.md) for the changes have been added (for bug fixes / features) (if applicable) - [ ] Validated PR `Screenshots Compare Test Run` results. - [ ] Contains **NO** breaking changes - [ ] Associated with an issue (GitHub or internal) and uses the [automatic close keywords](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue). - [ ] Commits must be following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification. <!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. Please note that breaking changes are likely to be rejected --> ## Other information <!-- Please provide any additional information if necessary --> Internal Issue (If applicable): <!-- Link to relevant internal issue if applicable. All PRs should be associated with an issue (GitHub issue or internal) -->
High priority vNext
Low priority
EventsBubblingInManagedCode
DPRethrowNativeExceptions
feature configurationDefaultsStartingValueFromAnimatedValue
NavigatingCancelEventArgs
ctor should not be publicComboBox.OnIsDropDownOpenChanged
should probably beprivate protected
(verify)ItemsControl.OnItemsChanged
should have aIVectorChangedEventArgs
parameter (and maybe not be protected, but rather private protected [verify this])PageStackEntry.SourcePageType
setter should not be publicFrame.BackStack
setter should not be publicWindowActivatedEventArgs.WindowActivationState
has wrong type in Uno.WinUIPropertyPath
sealed (expected by the VS designer)UseLegacyHitTest
FlyoutBase.Close()
should be removed. Users should use the publicHide()
instead.FrameworkPropertyMetadata.DefaultUpdateSourceTrigger
should be internal (or, better the whole FrameworkPropertyMetadata)uno/src/Uno.UI/UI/Xaml/Automation/AutomationProperties.cs
Line 44 in c347914
IMenu
,IMenuPresenter
, andISubMenuOwner
should not be publicAdaptNative
code-path for native element hosting in Android and iOS - causing weird edge cases, and we don't support it officially AFAIK (only explicitly viaContentControl
)Border.ChildProperty
is not public in WinUIDependencyObject
a class #17099DoubleCollection
shouldn't inheritList<T>
. We should use composition instead of inheritance.CompositionSpriteShape.StrokeDashArray
shouldn't have setter (probably not even internal, and its default value should be non-null, and return type shouldn't be annotated as nullable)BypassCheckToCloseKeyboard
and its logic fromWindow.iOS.cs
(we should likely default totrue
behavior to align with other targets)ItemsControlAutomationPeer
andSelectorAutomationPeer
(keep only WinUI ones)CoreWebView2.DocumentTitle
setter should be internal or privateWindowView.ios.cs
Uno.UI.DataBinding.BinderDetails
(perf: Improve startup performance by trimming unused UITest exports #16757)Microsoft.UI.Composition.DelegatedInkTrailVisual
TextBox.OnVerticalContentAlignmentChanged
override. Maybe make the baseOnVerticalContentAlignmentChanged
private protected instead of protected.UseSystemFocusVisuals
should be on UIElement. But on UWP tree, it should be onControl
.IgnoreINPCSameReferences
ContentPresenter.ContentTemplateRoot
should not be public #16148AsReadOnly<T>
conflicts withSystem.Collections.Generic.CollectionExtensions
uno.extensions#2225uno/src/Uno.UI.Composition/Composition/VisualInteractionSource.cs
Lines 83 to 89 in 2544755
clr-namespace:
can work in WinUI under any scenario. If not, we should remove support for it.PointerPoint.op_Explicit
in Uno 6 #15508Setter<T>
TemplatedParent
with WinUI #15749UseLegacyContentAlignment
as a breaking change in Uno 6 #14858ShowClippingBounds
#14777NSObjectExtensions.ValidateDispose
MaterializableList<T>
should be internal?RestoreBindings
andClearBindings
#13046UseLegacyPrimaryLanguageOverride
tofalse
in Uno 5 #13704ms-resource:///
conversion of XAML relative Uris parsing for non-framework types (RewriteUri in XamlFileGenerator)RadioMenuFlyoutItem
(and undo workaround in UWP SyncGenerator)Uno.UI.Toolkit
#12322Window
on Uno.WinUI (part of Cannot derive from sealed type Window #5286)Flyout.DataContext
should not be publicly available #12491Android.Preferences.PreferenceManager
is deprecated in API level 29 #1833EnableExperimentalKeyboardFocus
flag on Android (after Android TV PR is merged)ElevatedView
defaults should show a shadow by default #7114IFrameworkTemplatePoolAware
should be implement explicitly #13083DataContext
should only be available on FrameworkElement #13201Window
types with WinAppSDK #12577LauchedStart
andLauchedStop
to be correct (Launched
) #13709SetterBase.set_Property
should be removed in Uno 6 #13050Duration.TimeSpan
should be a field or property. #13096IsStatusBarTranslucent
inWindow.Android.cs
can be removeduno/src/Uno.UI/UI/Xaml/Media/Animation/ColorKeyFrameCollection.cs
Lines 27 to 37 in 3e74597
ApplySettersBeforeTransition
feature flag #13326AdjustArrange
as a breaking change in Uno 6 #14478Uno.Foundation
VectorExtensions.cs
TimePickerFlyoutPresenter
should derive fromControl
not fromFlyoutPresenter
Microsoft.Windows.ApplicationModel.Resources
should not be in Uno.UI - either Uno.UWP or in a separate assembly altogether (MRT Core is now a isolated component of WinAppSDK)Windows.UI.Input.*
from the public API #18875In Progress (has open PR against the
feature/breaking-changes
branch)BorderLayerRenderer
#12593 (supersedes feat:FauxGradientBorderPresenter
control #7649)Brush
change subscription #12595 (supersedes [WIP] perf:Brush
change subscription #12234)ApplicationData
on Skia #12596 (supersedes [WIP] feat: App-specificApplicationData
on Skia #12314)Merged to
feature/breaking-changes
(these are in Uno 5)ElevatedView
'sCornerRadius
property is already declared in baseControl
- it should be enough to observe its changes (fix!:ElevatedView
shouldn't have CornerRadius as it exists in the base Control class. #11162)ApplicationData.Current.LocalFolder
redirects to %appdata% #8910UIElementExtensions.Elevation
breaks VS designer #5513CreationCollisionOptions
values are not aligned with WinRT (Uno Platform CreationCollisionOptions enum values do not match #10630) (fix!: Correct values ofCreationCollisionOption
enum #11169)HResult
type should not be available in C# (fix!: RemoveWindows.Foundation.HResult
#11167)Control.GetImplementedRoutedEvents
method should be removed (fix!: RemoveControl.GetImplementedRoutedEvents
#11165)Windows.Storage.Streams.InMemoryBuffer
#11170SuspendingDeferral
constructor that takes anAction
#11171Deferral.Close
should not be available in C# (according to docs) (fix!: RemoveWindows.Foundation.IClosable
andDeferral.Close
#11163)IClosable
should not be available in C# (fix!: RemoveWindows.Foundation.IClosable
andDeferral.Close
#11163)Uno.Client.ICommandExtensions
should most likely not be public (fix!: MakeICommandExtensions
internal #11194)JavaObjectExtensions
should most likely not be public (fix!: MakeJavaObjectExtensions
internal #11196)Uno.Extensions.UriExtensions
should most likely not be public (fix!:Uno.Extensions.UriExtensions
shouldn't be public #11193)SetNeedsKeyboard
public method inWindow.macOS.cs
does nothing #10972 (fix!: RemoveSetNeedsKeyboard
from macOS #11197)CalendarDatePicker._dateChanged
shouldn't be public #11136 (fix!: Remove CalendarDatePicker._dateChanged #11192)GetGeopositionHistoryAsync
overloads fromGeolocator
#11198)ContentPropertyAttribute.Name
should be a field, not a property, to match Windows #10841 (fix!: MakeContentPropertyAttribute.Name
field instead of a property. #11164)FontFamilyHelper.RemoveUri
andRemoveHashFamilyName
should not be public (fix!: Adjust FontFamilyHelper #11195)SolidColorBrushHelper
internal #11127 (fix!: MakeSolidColorBrushHelper
internal #11168)uno/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlCodeGeneration.cs
Lines 871 to 873 in 4666c66
PersonPicture
to MUX namespace MovePersonPicture
to MUX namespace #10701 (fix!: Move PersonPicture to MUX namespace #11343)ICoreWindowEvents
should not bepublic
(fix!:ICoreWindowEvents
is made internal. #11339)RegisterDefaultStyleXYZ
methods inStyle
internal (fix!: Remove unneededStyle.RegisterDefaultStyleForType
#11345)args
parameter (it is ignored anyway) (uno/src/Uno.UI.Runtime.Skia.Linux.FrameBuffer/FramebufferHost.cs
Lines 38 to 41 in 45c85c0
uno/src/Uno.UI.Runtime.Skia.Gtk/GtkHost.cs
Lines 76 to 79 in 45c85c0
args
parameter #11351)PanelExtensions.cs
#11315 (fix!: Remove PanelExtensions #11342)OnVerticalOffsetChanged
andOnHorizontalOffsetChanged
should not be public inPopup
(fix!:OnVerticalOffsetChanged
andOnHorizontalOffsetChanged
are no longer protected. #11355)WebView.NavigateWithHttpRequestMessage
has wrong parameter type #11099 (fix!: Align WebView.NavigateWithHttpRequestMessage signature with UWP #11344)ViewHelper.MainScreenScale
andViewHelper.IsRetinaDisplay
#11352)FrameworkElement
constructor should beprotected
(fix!: MakeFrameworkElement
constructors protected. #11354)GetScreenSize
method inViewHelper.iOSmacOS.cs
- rename toGetMainWindowSize
and make internal (or remove altogether, as we will have multi-window support) (fix!: MakeViewHelper.GetScreenSize
internal #11353)VisiblityExtensions
#11372 (fix!: Remove obsolete members #11432)IsDualScreen
#11373 (fix!: Remove obsolete members #11432)MustUseWebKitWebView
#11374 (fix!: Remove obsolete members #11432)CanvasSize
#11375 (fix!: Remove obsolete members #11432)Canvas.Get/Set{Direction}
methods withDependencyObject
parameters should not bepublic
(or should be removed completely) (fix!: Remove[Get|Set][Left|Top|ZIndex]
methods that take DependencyObject fromCanvas
#11340)WpfTextViewTextBox
internal and move it toWpf
instead ofWPF
namespace (was taken for 4.8 - OverlayTextBox
improvements #10935)ShouldWriteErrorOnInvalidXaml
default to true or remove completely #11476 (fix!: DefaultShouldWriteErrorOnInvalidXaml
to true. #11583)Uno.UI.Web.WebErrorStatus
should not exist and all references should useWindows.Web.WebErrorStatus
instead. ([Breaking] fix!: Change WebErrorStatus namespace #12130)WebView
Task<string> InvokeScriptAsync
method should be removed,IAsyncOperation<string>
version should be kept. [Breaking] fix!: Remove Task-basedWebView.InvokeScriptAsync
#12132RadialGradientBrush
(and undo workaround in UWP SyncGenerator) (Adjust RadialGradientBrush base type to match UWP #7170) (fix!: Adjust RadialGradientBrush base type #12142)SetContentOffset
andSetZoomScale
inIUIScrollView
can be removed and their implementations as well (fix!: RemoveSetContentOffset
andSetZoomScale
fromIUIScrollView
#12134)Uno.UI.IndexPath
should most likely not be public (fix!: Remove some types from public API #12133)Uno.UI.IResourcesService
should most likely not be public (fix!: Remove some types from public API #12133)Uno.UI.Common.DelegateCommand
should most likely not be public (fix!: Remove some types from public API #12133)Windows.Foundation.SizeConverter
might not need to be public? (fix!: Remove some types from public API #12133)ContentProperty
attributes #10840ControlsResourcesVersion
enum to Uno.UI (fix!: Move ControlsResourcesVersion to Uno.UI assembly #12175)Window.Visible
setter should not be public #12177SimpleOrientationSensor
should not schedule onDispatcher
#10905 (fix!:SimpleOrientationSensor
should not schedule onDispatcher
#12203)Timeline
should be exposeIDisposable
( [Feature] Marquee Text Control CommunityToolkit/Labs-Windows#275) (fix!: Timeline shouldn't implementIDisposable
#12201)SimpleOrientationSensor
shouldn't directly implementISensorEventListener
#12206 (fix!: Avoid directly implementingISensorEventListener
onSimpleOrientationSensor
on Android #12224)IsEnabled
property fromFrameworkElement
toControl
#12153)AnimatedVisualPlayer
andIAnimatedVisualSource
and related classes should live in the MUX namespaces, not WUX (see 8742fb9 - these had to be removed from theGenerated
sources, because otherwise they would be used instead of the actual current implementations in the WUX namespace) (fix!: Lottie breaking changes #12111)CreateTheamableFromLottieAsset
name is incorrect (fix!: Lottie breaking changes #12111)Control
on WinUI-flavored builds #12268ToggleButton.OnIsCheckedChanged
#12266IDisposable
from MediaPlayerElement.cs (fix!:MediaPlayerElement
shouldn't beIDisposable
#12274)Windows.UI.Xaml.ResourceHelper
internal (fix!: RemoveResourcesService
andResourceHelper
#12197)Name
property should not be onUIElement
for Skia and WASM (move toFrameworkElement
remove duplicatedNameProperty
) (fix!: MoveName
andNameProperty
fromUIElement
toFrameworkElement
#12248)PowerEase.Power
must be double #11662 (fix!: AlignEasingFunctionBase
with WinUI #12214)EasingFunctionBase
should implement the correctEase
overload #12213 (fix!: AlignEasingFunctionBase
with WinUI #12214)MUX
version ofPersonPicture
andAnimatedVisualPlayer
(Unskip some types in UWPSyncGenerator #12293)Measure
/Arrange
to not be virtual #12294)MenuBar
andMenuBarItem
andMenuBarFlyoutItem
implementation from WUX namespace to MUX namespace and add warning for unsupported WUX version (fix!: Move MenuBar to MUX namespace #12113)private
instead ofprotected virtual
#12436SwipeControl
andSwipeItem
andSwipeItemInvokedEventArgs
andSwipeMode
andSwipeItems
andSwipeBehaviorOnInvoked
implementation from WUX namespace to MUX namespace and add warning for unsupported WUX version (fix!: Move SwipeControl to MUX #12112)ApplyCompiledBindings
method fromDependencyObjectGenerator
#11241 (fix!: Remove ApplyCompiledBindings from code generated byDependencyObjectGenerator
#11338)OnWindowCreated
from WinUI tree #12594 (supersedes fix!: RemoveOnWindowCreated
from WinUI tree #12196)NET7_0_OR_GREATER
(as we will be targeting only .NET7+ going forward) #13708ArbritaryShapeBase
on WASM #2983For which Platform:
All
The text was updated successfully, but these errors were encountered: