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

Merge main to net8 #13345

Merged
merged 63 commits into from
Feb 16, 2023
Merged

Merge main to net8 #13345

merged 63 commits into from
Feb 16, 2023

Conversation

rmarinho
Copy link
Member

Description of Change

Weekly merge of main to net8.0 branch

dependabot bot and others added 30 commits February 7, 2023 12:06
Bumps [Xamarin.Firebase.AppIndexing](https://github.com/xamarin/GooglePlayServicesComponents) from 120.0.0.10 to 120.0.0.11.
- [Release notes](https://github.com/xamarin/GooglePlayServicesComponents/releases)
- [Commits](https://github.com/xamarin/GooglePlayServicesComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.Firebase.AppIndexing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [Xamarin.GooglePlayServices.Maps](https://github.com/xamarin/GooglePlayServicesComponents) from 118.1.0 to 118.1.0.1.
- [Release notes](https://github.com/xamarin/GooglePlayServicesComponents/releases)
- [Commits](https://github.com/xamarin/GooglePlayServicesComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.GooglePlayServices.Maps
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps
[Xamarin.Firebase.AppIndexing](https://github.com/xamarin/GooglePlayServicesComponents)
from 120.0.0.10 to 120.0.0.11.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/xamarin/GooglePlayServicesComponents/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Xamarin.Firebase.AppIndexing&package-manager=nuget&previous-version=120.0.0.10&new-version=120.0.0.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
Bumps
[Xamarin.GooglePlayServices.Maps](https://github.com/xamarin/GooglePlayServicesComponents)
from 118.1.0 to 118.1.0.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/xamarin/GooglePlayServicesComponents/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Xamarin.GooglePlayServices.Maps&package-manager=nuget&previous-version=118.1.0&new-version=118.1.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
* Fix a couple life cycle scenarios on shell modals

* - cleanup code
After discussion with the VS tooling folks, we decided it can be harmful to auto-close these issues because we can end up losing issues entirely if they never get moved to VS feedback and/or Azure DevOps.

We'll look into how to automate these issues, but for now we want to stop losing data.
During the code reviews I have noticed several occurrences of the of the
following pattern:

```csharp
if (nativeSlider.GetFirstDescendant<Thumb>() is Thumb thumb)
{
  thumb.Height = defaultThumbSize.Value.Height;
  thumb.Width = defaultThumbSize.Value.Width;
}
```

The above works, but it is abussing the is operator and is making us
type more than is really needed (several ocurrences of the type). The
given method will be used as follows:

```csharp
if (nativeSlider.TryGetFirstDescendant<Thumb>(out var thumb))
{
  thumb.Height = defaultThumbSize.Value.Height;
  thumb.Width = defaultThumbSize.Value.Width;
}
```
or
```csharp
if (nativeSlider.TryGetFirstDescendant(out Thumb? thumb))
{
  thumb.Height = defaultThumbSize.Value.Height;
  thumb.Width = defaultThumbSize.Value.Width;
}
```
Nullability is not needed thansk to the NotNullWhenAttribute.
* Fix back button tap for older iOS APIs

* - fix ios14
…ixes #12904

* Fix crash setting SelectedTabColor on Android TabbedPage

* Update src/Controls/src/Core/Platform/Android/TabbedPageManager.cs

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>

* Refactoring code

* Small refactoring and included comments

* Changes based on feedback

---------

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.7

Microsoft.iOS.Sdk
 From Version 16.2.1024 -> To Version 16.2.1025

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.7

Microsoft.tvOS.Sdk
 From Version 16.1.1521 -> To Version 16.1.1522

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.7

Microsoft.macOS.Sdk
 From Version 13.1.1024 -> To Version 13.1.1025

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.7

Microsoft.MacCatalyst.Sdk
 From Version 16.2.1024 -> To Version 16.2.1025

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.12

Microsoft.iOS.Sdk
 From Version 16.2.1024 -> To Version 16.2.1026

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.12

Microsoft.tvOS.Sdk
 From Version 16.1.1521 -> To Version 16.1.1523

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.12

Microsoft.macOS.Sdk
 From Version 13.1.1024 -> To Version 13.1.1026

* Update dependencies from https://github.com/xamarin/xamarin-macios build 20230208.12

Microsoft.MacCatalyst.Sdk
 From Version 16.2.1024 -> To Version 16.2.1026

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Use the better algorithm

* prepare for nulls and index less

---------

Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
* Align dash effect between Border and Shapes on Android

* Update src/Core/src/Graphics/MauiDrawable.Android.cs

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>

---------

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
…e Tracker (#12539)

* Avoid to update Shell Toolbar colors if already disposed the Tracker

* Changes from PR feedback

* Update src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs

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

---------

Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
Context: #11805
Fixes: #12762

There are various NuGet feed issues caused by using nightly builds of
.NET SDK and workloads. #11805 also appears to be blocked by an
unknown problem -- meaning we are using older bits in `main`
currently.

To use stable bits:

* Hardcode the latest stable version numbers of everything.

* Pass `--version 7.0.101` to the `dotnet-install` script.

* Work around the weird, unknown build errors?

Other changes:

* Pass `--skip-sign-check` so that the `tizen` workload can be
  installed with a signed .NET SDK. We already do this on various
  release branches like `release/8.0.1xx-preview1`.

* Build `Microsoft.Maui-mac.slnf` in parallel, this apparently works
  around the unknown issue in #11805?

* Remove `$(DotNetFeedUrl)`, as it breaks the `dotnet-install` script
  on macOS. This URL changes from time to time.

* Build for a single maccatalyst RID in some projects. This attributed
  to other build errors once `Microsoft.Maui-mac.slnf` built in parallel.

Tracking this in: xamarin/xamarin-macios#17497
… the maui one. (#13228)

* [CI] Install the android and iOS dotnet version when they are diff to the maui one.

This extra conditional command execution allows to install the donet
versions needed by the android and iOS runtimes. This will allow us to
be able to work around a situation in which there is a mismatch between
the SDKs.

* Get the versions from the sdk props.

* Fix pwsh install, use MicrosoftNETCoreAppRefPackageVersion

---------

Co-authored-by: Peter Collins <pecolli@microsoft.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fix shadows clipping views

* Fix build errors

* Capture and cache Context usage

We've found Context can be a bit expensive to get in a large frequency of calls (#8001), so we can avoid this by capturing and caching the instance.

* Removed duplicated test

* Revert latest changes

---------

Co-authored-by: redth <jondick@gmail.com>
Co-authored-by: Rachel Kang <rachelkang@microsoft.com>
…Fixes #10128 Fixes #11309

* Fix the issue

* Added a sample in the Gallery

* Added Device Test

* Fix test

* Update src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellPageRendererTracker.cs

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>

---------

Co-authored-by: Rui Marinho <me@ruimarinho.net>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
* Remove TargetIdiom

* Update Device.cs

* Fix unshipped txt files

---------

Co-authored-by: Rui Marinho <me@ruimarinho.net>
Context: https://github.com/Vroomer/MAUI-master-detail-memory-leak
Context: #12039

Using the Visual Studio's `.NET Object Allocation Tracking` profiler
on the sample above I noticed after app launch:

    Microsoft.Maui.WeakEventManager+Subscription
    Allocations: 686,114
    Bytes: 21,955,648

After spitting out my coffee, I drilled in a bit to see where these
are being created:

    System.Collections.Generic.ObjectEqualityComparer<Microsoft.Maui.WeakEventManager+Subscription>.IndexOf

It turns out this `struct` doesn't implement `IEquatable<T>`:

https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1815

To solve this:

* `Subscription` is private, so we can make it a `readonly struct`.

* `dotnet_diagnostic.CA1815.severity = error` across the entire repo.

* Implement `IEquatable<T>` for all `struct` types.

After these changes, I can't find `Microsoft.Maui.WeakEventManager+Subscription`
in the memory report at all. Which assuming means, I saved ~21 MB of
allocations in this app.

Note that this doesn't actually solve #12039, as I'm still
investigating the leak. Maybe this partially closes the floodgate?

* Fix `struct`s in Controls.Core

Note that I did not update these, as they are some "internal" parts
from Xamarin.Forms:

* `Profile`
* `Datum`

We might actually just consider removing these in the future.

* Suppress warnings in Compatibility

I assume these structs aren't nearly as important, so ignoring a few.

They appear to be called once at startup in most cases.

* Disable `CA1815` in tests.
jfversluis and others added 6 commits February 14, 2023 16:52
* Obsolete some of the AutomationProperties

* Update SemanticProperties.cs
…3224)

* [Resizetizer] Do not update images if they have not been updated.

Rather than generating the images on every build we should
check to see if the source has changed before calling the
expensive generation processes. This seems to take about 150-200ms
off an incremental build when only one image file was changed.

* Added Unit Tests. Added support for iOS and Windows

* Updated based on feedback

* Rework

* Rework

* Thank you for your pull request. We are auto-formating your source code to follow our code guidelines.

---------

Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
…than once (#13222)

* Fix crash on Windows WebView updating the Html Source more than once

* Fixed build error

* Update src/Core/src/Platform/Windows/WebViewExtensions.cs

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>

---------

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
…ns (#13333)

* [core] WeakEventManager.RemoveEventHandler() should clear subscriptions

Context: #12039
Context: https://github.com/Vroomer/MAUI-master-detail-memory-leak
Context: https://github.com/symbiogenesis/Maui.DataGrid/tree/memory-leak

Reviewing memory snapshots in the above apps, sometimes I would see
new `WeakEventManager+Subscription` objects be created and never go
away.

I noticed the `WeakEventManager.RemoveEventHandler()` method did not
remove any `Subscription` entries that it encountered were no longer
alive.

I could reproduce this problem in a test, and improved an existing
test to check this collection is cleared appropriately:

    readonly Dictionary<string, List<Subscription>> _eventHandlers = new();

* Remove the `n - 1` business

This is closer to the standard `forr` snippet that has been around forever, just using `n` instead of `i`.
# Conflicts:
#	eng/Version.Details.xml
#	eng/Versions.props
#	src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.iOS.cs
@rmarinho rmarinho requested a review from a team as a code owner February 15, 2023 11:30
@github-actions
Copy link
Contributor

⚠️ Your code has been reformatted. ⚠️

github-actions bot and others added 7 commits February 15, 2023 12:30
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/dotnet/xharness build 20221128.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.22578.1

* Update default dotner version installed

* Update dependencies from https://github.com/dotnet/xharness build 20221207.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.22607.1

* Update versions to try again

* MicrosoftDotnetSdkInternalPackageVersion

* Try stable feed

* Extensions version back

* Don t bump version

* Update dependencies from https://github.com/dotnet/xharness build 20221215.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.22615.1

* Update dependencies from https://github.com/dotnet/xharness build 20221220.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.22620.1

* Update dependencies from https://github.com/dotnet/xharness build 20230102.2

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.23052.2

* Update dependencies from https://github.com/dotnet/xharness build 20230109.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.23059.1

* Update dependencies from https://github.com/dotnet/xharness build 20230118.2

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.23068.2

* Update dependencies from https://github.com/dotnet/xharness build 20230123.2

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.23073.2

* Update dependencies from https://github.com/dotnet/xharness build 20230202.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.23102.1

* Update dependencies from https://github.com/dotnet/xharness build 20230210.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22569.1 -> To Version 1.0.0-prerelease.23110.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rui Marinho <me@ruimarinho.net>
Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
…10999)

* avoid setting bindings twice

* add sample code for testing purposes
…#12224

* [Android] Don't lose the padding when background is set

* Auto-format source code

---------

Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
* Don't reset entire menu when icon/title changes

* Auto-format source code

---------

Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
# Conflicts:
#	eng/pipelines/common/variables.yml
@rmarinho
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@rmarinho rmarinho merged commit 03f3644 into net8.0 Feb 16, 2023
@rmarinho rmarinho deleted the merge-main-net8 branch February 16, 2023 17:09
@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 13, 2023
@samhouts samhouts added the fixed-in-8.0.0-preview.1.7762 Look for this fix in 8.0.0-preview.1.7762! 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.1.7762 Look for this fix in 8.0.0-preview.1.7762! t/housekeeping ♻︎
Projects
None yet
Development

Successfully merging this pull request may close these issues.