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.1xxx-preview6] Merge net8.0 to preview6 #15943

Merged
merged 25 commits into from
Jul 3, 2023

Conversation

rmarinho
Copy link
Member

Description of Change

Update release branch with latest changes from net8.0

make sure to not squash this

rdavisau and others added 25 commits June 15, 2023 13:08
…#15791)

* Update and rename dotnet-format-daily.yml to dotnet-format-daily-net7.yml

* Create dotnet-format-daily-main.yml

* Update dotnet-format-daily-main.yml

* Update dotnet-format-daily-net7.yml
…30621.2 (#15857)

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

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

* [uitests] Option to run Compatibility uitests

* Missing -

* [uitests] Set variable on the correct place

* Increase timeout for UITests

* Ignore a couple of more tests

* Ignore a couple of more tests

* [uitests] Skip TabbedPage tests

* Ignore more TabbedPageTests
Context: #14664
Context: https://github.com/nacompllo/MemoryLeakEverywhere/tree/bugfix/memoryLeakItemsSource

In reviewing our latest changes in main with the above customer sample,
I found that there appeared to be leaks related to MAUI's
`UITableViewCell` subclasses when using `CollectionView`.

I was able to reproduce the issue in a test, such as:

    // DataTemplate saves WeakReference to the View in a list
    collectionView.ItemTemplate = new DataTemplate(() =>
    {
        var label = new Label();
        labels.Add(new(label));
        return label;
    });

    // Create a cell and bind it to the template:
    cell = new VerticalCell(CGRect.Empty);
    cell.Bind(collectionView.ItemTemplate, bindingContext, collectionView);

    // Check we have no leaks
    foreach (var reference in labels)
    {
        Assert.False(reference.IsAlive, "View should not be alive!");
    }

After isolating the issue, I found the issue was the
`TemplatedCell.PlatformHandler` property:

    internal IPlatformViewHandler PlatformHandler { get; private set; }

This stores a copy of the `LabelHandler` in our test/example.

The problem with `UITableViewCell` is that UIKit holds onto these and
reuses them. This means that UIKit may keep the `LabelHandler` alive
longer than needed.

It also appears to be a somewhat complex circular reference:

* `CollectionView` -> handlers / etc. -> `TemplatedCell` -> `LabelHandler` -> `Label` -> `CollectionView`

I made the `PlatformHandler` use a `WeakReference` as its backing
field and the problem goes away!

I will retest #14664 to verify if it is fully solved.
* Optimize iOS selection synchronization not to use O(n^2) algorithm and to respect GetHashCode/Equals overrides instead of relying on reference equality.

* Fix few more places where reference equality was used instead of object equality.
* fix(shell): Fixed removing items from the shell causing a crash

* Auto-format source code

* Use null terminator

* Add device tests

* PR feedback, move test to run on all devices

---------

Co-authored-by: Mike Corsaro <mikecorsaro@microsoft.com>
Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
Co-authored-by: Rui Marinho <me@ruimarinho.net>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…eters (#15662)

### Description of Change

Makes `WebUtils.ParseQueryString` extract parameters from both
`Uri.Query` and `Uri.Fragment`, resolving a regression from net8p4 to
net8p5.

### Issues Fixed

Fixes #15661
* Fix crash swapping MainPage on Windows

* Updated tests

* Fix crash swapping MainPage on Windows

* Updated tests

* Updated Impl

* More changes

* Updated test

* Changes from feedback

---------

Co-authored-by: Javier Suárez <6755973+jsuarezruiz@users.noreply.github.com>
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.6.2 to 17.6.3.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](microsoft/vstest@v17.6.2...v17.6.3)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  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>
* Wait for switched item to load

* - fix edge case where a shell page is removed during load
* Use default StepFrequency and SmallChange values

* Only remove SmallChange
Bumps [powershell](https://github.com/PowerShell/PowerShell) from 7.3.4 to 7.3.5.
- [Release notes](https://github.com/PowerShell/PowerShell/releases)
- [Commits](PowerShell/PowerShell@v7.3.4...v7.3.5)

---
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>
* Fix PointerGesture CommandParameter properties

* Add tests
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* [net8.0] bump to xamarin/xamarin-android/main@efa14e26

Changes: dotnet/android@e08a44d...efa14e2

These are the same changes as:

#15926

Just using .NET 8 Preview 7 / main builds.

* Android API 34 changes

* Install `platform-34` for the Android SDK
* In `public override void Draw(Canvas canvas)`, `canvas` is no longer nullable
* `android.location.Criteria` is deprecated

* xamarrin-macios / tizen on preview.6 version band
### Description of Change

Update net8 branch with latest fixes
# Conflicts:
#	eng/Version.Details.xml
#	eng/Versions.props
@rmarinho rmarinho enabled auto-merge July 2, 2023 15:54
@rmarinho rmarinho merged commit 389dd22 into release/8.0.1xx-preview6 Jul 3, 2023
@rmarinho rmarinho deleted the merge-net8-preview6 branch July 3, 2023 06:12
@samhouts samhouts added the area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions label Jul 19, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Dec 8, 2023
@samhouts samhouts added the fixed-in-8.0.0-preview.6.8686 Look for this fix in 8.0.0-preview.6.8686! label Aug 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions fixed-in-8.0.0-preview.6.8686 Look for this fix in 8.0.0-preview.6.8686!
Projects
None yet
Development

Successfully merging this pull request may close these issues.