Skip to content
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

[release/8.0.1xx-rc2] Merge net8.0 to release rc2 branch #17704

Merged
merged 28 commits into from Sep 28, 2023

Conversation

rmarinho
Copy link
Member

Description of Change

Latest changes from main and net8

dependabot bot and others added 28 commits September 21, 2023 22:37
Bumps [powershell](https://github.com/PowerShell/PowerShell) from 7.3.6 to 7.3.7.
- [Release notes](https://github.com/PowerShell/PowerShell/releases)
- [Commits](PowerShell/PowerShell@v7.3.6...v7.3.7)

---
updated-dependencies:
- dependency-name: powershell
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Improve comments in templates

* Update maui-mobile template

* Apply suggestions from code review

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>

---------

Co-authored-by: Eilon Lipton <Eilon@users.noreply.github.com>
* Enable Controls Tests

* - fix focus test

* Run each category separately

* Make it work for unpackaged

* Fix build errors

* Make it also work for non-Control projects

* Detect test failures

* Undo some Windows test hacks

* Disable failing Core tests

* Disable failing Windows Essentials tests

* Update Preferences_Tests.cs

* Add Memory category and apply

* Add Mapper category and apply

* Add Xaml category and apply

* Added Lifecycle category and apply

* Disable failing unpackaged font test

* - fix deleted yields

* - update yields

* - ignore ToolbarUpdatesCorrectlyWhenSwappingMainPageWithAlreadyUsedPage

* Uncomment Windows Controls in pipeline

* Disable failing tests

* Add (UN)PACKAGED symbols & disable failing tests

* Skip failing tests

* Skip failing tests

* Disable failing tests

* Ensure test categories & result file count match

* Remove global exception handler

* - ignore test on android

* Disable failing iOS test

---------

Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Bumps Microsoft.Web.WebView2 from 1.0.1938.49 to 1.0.2045.28.

---
updated-dependencies:
- dependency-name: Microsoft.Web.WebView2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
not sure this ever worked and that's a resgression

- fixes #17478
Context: #13818 (review)
Context: jonathanpeppers/lols#4
Fixes: #17520

A customer noticed my LOLs per second sample was slower in .NET 8 than
.NET 7. I could reproduce their results.

Digging in, `dotnet-trace` showed one culprit was:

    .NET 7
     8.5% microsoft.maui.controls!Microsoft.Maui.Controls.BindableObject.GetValue
     1.2% microsoft.maui.controls!Microsoft.Maui.Controls.BindableObject.SetValue
    .NET 8
    11.0% microsoft.maui.controls!Microsoft.Maui.Controls.BindableObject.GetValue
     2.8% microsoft.maui.controls!Microsoft.Maui.Controls.BindableObject.SetValue

I knew that #13818 had some performance impact, as I noted when
reviewing the change.

Drilling in further, most of the time is spent calling
`SortedList.Last()`. Which makes sense, as `BindableObject.GetValue()`
is called *a lot* in a typical .NET MAUI application.

Adding some logging, I found my LOLs app most commonly had the following
specificity values when `BindableProperty`'s are set:

* 5,284 - a single specificity value
* 34,306 - two specificity values

No `BindableProperty`'s in this app had more than two specificity values.

So, an improvement here would be to:

* Avoid `SortedList` for the most common calls

* Make fields that store up to two specificity values

* If a *third* specificity value is required, fall back to using
`SortedList`.

I introduced a new, internal `SetterSpecificityList` class for this logic.

The results of running `BindingBenchmarker`:

    > .\bin\dotnet\dotnet.exe run --project .\src\Core\tests\Benchmarks\Core.Benchmarks.csproj -c Release -- --filter Microsoft.Maui.Benchmarks.BindingBenchmarker.*
    ...
    Before:
    |           Method |     Mean |    Error |   StdDev |   Gen0 |   Gen1 | Allocated |
    |----------------- |---------:|---------:|---------:|-------:|-------:|----------:|
    |         BindName | 31.67 us | 0.689 us | 2.009 us | 1.7395 | 1.7090 |  14.45 KB |
    |        BindChild | 42.18 us | 0.864 us | 2.548 us | 2.4414 | 2.3804 |  20.16 KB |
    | BindChildIndexer | 78.37 us | 1.564 us | 3.266 us | 3.5400 | 3.4180 |  29.69 KB |
    After:
    |           Method |     Mean |    Error |   StdDev |   Gen0 |   Gen1 | Allocated |
    |----------------- |---------:|---------:|---------:|-------:|-------:|----------:|
    |         BindName | 27.13 us | 0.521 us | 1.016 us | 1.3733 | 1.3428 |  11.33 KB |
    |        BindChild | 37.77 us | 0.845 us | 2.437 us | 2.0752 | 2.0142 |  17.03 KB |
    | BindChildIndexer | 69.45 us | 1.356 us | 2.859 us | 3.1738 | 3.0518 |  26.56 KB |

My original numbers (before specificity changes in #13818) were:

    |           Method |     Mean |    Error |   StdDev |   Gen0 |   Gen1 | Allocated |
    |----------------- |---------:|---------:|---------:|-------:|-------:|----------:|
    |         BindName | 24.46 us | 0.554 us | 1.624 us | 1.2512 | 1.2207 |  10.23 KB |
    |        BindChild | 33.21 us | 0.743 us | 2.192 us | 1.9226 | 1.8921 |  15.94 KB |
    | BindChildIndexer | 61.59 us | 1.209 us | 1.952 us | 3.1128 | 3.0518 |  25.47 KB |

This gets *some* of the performance back, but not all.

The LOLs per second app, testing these changes on a Pixel 5:

    Before:
    376.98 LOLs/s
    After:
    391.44 LOLs/s
* Recreate the Navigation Host If It's been Destroyed

* - add some destroy checks

* Update TabbedPageTests.cs

* - add additional checks
* [create-pull-request] automated change

* Update MauiScrollView.cs

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
When OnPlatform<T> is used as a StaticResource, cast it first to T
(extract the Onplatform value), then process as usual, and cast it again
to propertyType if needed

- fixes #16327
* Remove previous TitleView from Toolbar

* Update Issue16499.cs
* Recreate Details Fragment, if its been destroyed

* Update ToolbarTests.cs
* fix: remove reference to concrete native host app

* chore: fixing null dereference

* chore: update to avoid obsolete code

* chore: removing obsolete hard references

* chore: use private property on Tizen

* chore: fix null dereference

* chore: normalize Exception for null services

* chore: use current Android Application Context without strong type

* chore: make fields nullable

* chore: fixing nullable references

* chore: add null check for Maui Context

* chore: fixing obsolete message
* [Windows] Fixes border content clipping

Fixes clip path size to consider the border stroke thickness, so it only uses the inner space. For the space the border takes we consider both sides (top and bottom, or left and right) and not just the thickness.

On top of that, the clip should not be sentered with the content, so we need to offset it based on the contents position.

* [Windows] Fixes border content clipping

Fixes clip path size to consider the border stroke thickness, so it only uses the inner space. For the space the border takes we consider both sides (top and bottom, or left and right) and not just the thickness.

On top of that, the clip should not be sentered with the content, so we need to offset it based on the contents position.

* Fix BorderResizeContent sample

Add stroke thickness to polygon border

* Add border gallery for UI tests

* Minor fixups to the Border1 Controls.Sample.UITest

* Add border gallery ui tests

* Update border test

* Removed unnecessary .csproj changes

* Add WaitForStubControl, waiting for UI to appear

* Fix up border appium tests

* Make WaitForStubControl have label text - didn't seem to show up otherwise

* Disable test for now; will enable in a separate PR

---------

Co-authored-by: Bret Johnson <bret.johnson@microsoft.com>
Co-authored-by: Jeffrey Stedfast <jestedfa@microsoft.com>
Bumps the xunit group with 3 updates: [xunit](https://github.com/xunit/xunit), [xunit.runner.visualstudio](https://github.com/xunit/xunit) and [xunit.runner.utility](https://github.com/xunit/xunit).


Updates `xunit` from 2.5.0 to 2.5.1
- [Commits](xunit/xunit@2.5.0...2.5.1)

Updates `xunit.runner.visualstudio` from 2.5.0 to 2.5.1
- [Commits](xunit/xunit@2.5.0...2.5.1)

Updates `xunit.runner.utility` from 2.5.0 to 2.5.1
- [Commits](xunit/xunit@2.5.0...2.5.1)

---
updated-dependencies:
- dependency-name: xunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: xunit
- dependency-name: xunit.runner.visualstudio
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: xunit
- dependency-name: xunit.runner.utility
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: xunit
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
occured -> occurred
…30921.1 (#17620)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23431.1 -> To Version 8.0.0-prerelease.23471.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
# Conflicts:
#	eng/Versions.props
#	src/Templates/src/templates/maui-blazor/MauiApp.1.csproj
### Description of Change

Bring latest changes from main to net8.0 project
* Enable .NET 7 <MauiVersion> to work in .NET 8 SDK projects

* Add some tests
@rmarinho rmarinho requested review from a team as code owners September 28, 2023 01:05
@rmarinho rmarinho requested review from StephaneDelcroix and jfversluis and removed request for a team September 28, 2023 01:05
@rmarinho rmarinho changed the title Net8 merge rc2 [release/8.0.1xx-rc2] Merge net8.0 to release rc2 branch Sep 28, 2023
@rmarinho rmarinho merged commit 2d6aaa3 into release/8.0.1xx-rc2 Sep 28, 2023
5 of 6 checks passed
@rmarinho rmarinho deleted the net8-merge-rc2 branch September 28, 2023 02:40
mattleibow added a commit that referenced this pull request Oct 6, 2023
commit 19fc25a
Author: Matthew Leibowitz <mattleibow@live.com>
Date:   Thu Oct 5 11:42:32 2023 +0200

    Add the new feed (#17842)

commit 41490bc
Merge: f56f903 7ca7d27
Author: Rui Marinho <me@ruimarinho.net>
Date:   Thu Oct 5 01:08:37 2023 +0100

    [release/8.0.1xx-rc2] Update aspnet packages (#17837)

    ### Description of Change

    Updating package versions to coherent aspnet

commit 7ca7d27
Author: Rui Marinho <me@ruimarinho.net>
Date:   Wed Oct 4 23:12:44 2023 +0100

    Update aspnet packages

commit f56f903
Merge: 9d742c4 b0b7b7e
Author: Rui Marinho <me@ruimarinho.net>
Date:   Wed Oct 4 11:31:26 2023 +0100

    [release/8.0.1xx-rc2] Bump iOS version (#17807)

    ### Description of Change

    Bump to match iOS inserted version.

commit b0b7b7e
Author: Matthew Leibowitz <mattleibow@live.com>
Date:   Tue Oct 3 19:35:34 2023 +0200

    Fix iOS nullability warnings

commit 9d742c4
Author: Rui Marinho <me@ruimarinho.net>
Date:   Tue Oct 3 19:23:00 2023 +0100

    [release/8.0.1xx-rc2] Bump iOS version (#17797)

    * [ios] Bump to correct versions of iOS

    * Try fix null checks

commit 66dd442
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Tue Oct 3 16:56:53 2023 +0100

    Don't run hide on tapped code if window is null (#17800)

    Co-authored-by: Shane Neuville <shneuvil@microsoft.com>

commit 9ae1b9f
Author: Rui Marinho <me@ruimarinho.net>
Date:   Mon Oct 2 16:01:19 2023 +0100

    [release/8.0.1xx-rc2] Update dependecies for RC2  (#17743)

    * [tests]Fix script

    * Try fix catalyst tests

    * Try fix uitests

    * [maestro] Update versions for rc2

commit 193f5aa
Author: Rui Marinho <me@ruimarinho.net>
Date:   Thu Sep 28 19:45:01 2023 +0100

    [release/8.0.1xx-rc2] Bump android to latest (#17720)

    * [maestro] Bump android

    * Missing file

    * Try use dotnet for cake

commit fc7f9c4
Author: Rui Marinho <me@ruimarinho.net>
Date:   Thu Sep 28 03:42:16 2023 +0100

    [release/8.0.1xx-rc2] Update rc2 versions (#17703)

    * Update dependencies from https://github.com/xamarin/xamarin-android build 8.0.1xx-rc2-4c7b6455b7bbf60268520e8d55996133210d1a37-1

    Microsoft.Android.Sdk.Windows
     From Version 34.0.0-rc.2.464 -> To Version 34.0.0-rc.2.465

    Dependency coherency updates

    Microsoft.Dotnet.Sdk.Internal
     From Version 8.0.100-rc.2.23468.1 -> To Version 8.0.100-rc.2.23472.8 (parent: Microsoft.Android.Sdk.Windows

    * Add missing feeds

    * Update dependencies from https://github.com/xamarin/xamarin-android build 8.0.1xx-rc2-36bf7fbea070bd94155029a09aa079e52ca0e33e-1

    Microsoft.Android.Sdk.Windows
     From Version 34.0.0-rc.2.464 -> To Version 34.0.0-rc.2.467

    Dependency coherency updates

    Microsoft.Dotnet.Sdk.Internal
     From Version 8.0.100-rc.2.23468.1 -> To Version 8.0.100-rc.2.23472.8 (parent: Microsoft.Android.Sdk.Windows

    * [build]Update rc2

    * Enable internal

    * Update version

    * [dotnet] Try specify nuget config

    * Add feeds for 7.0.12

    * try use the .net dotnet to run cake scripts

    * don't add new .net to the path

    * Try fix build issue with restore

    ---------

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 2d6aaa3
Merge: 62aef48 569e92c
Author: Rui Marinho <me@ruimarinho.net>
Date:   Thu Sep 28 03:40:10 2023 +0100

    [release/8.0.1xx-rc2] Merge net8.0 to release rc2 branch (#17704)

    ### Description of Change

    Latest changes from main and net8

commit 569e92c
Merge: 62aef48 6aac924
Author: Rui Marinho <me@ruimarinho.net>
Date:   Thu Sep 28 02:03:24 2023 +0100

    Merge branch 'net8.0' into net8-merge-rc2

commit 62aef48
Author: Rui Marinho <me@ruimarinho.net>
Date:   Mon Sep 25 19:27:36 2023 +0100

    Bump GitInfo to rc2
@github-actions github-actions bot locked and limited conversation to collaborators Dec 6, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet