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

[net9.0] Merge main to net9.0 #24523

Merged
merged 23 commits into from
Sep 4, 2024
Merged

[net9.0] Merge main to net9.0 #24523

merged 23 commits into from
Sep 4, 2024

Conversation

PureWeen
Copy link
Member

No description provided.

artemvalieiev and others added 12 commits August 27, 2024 15:40
* Add UI test

* Update RecalculateSpanPositions

* Update UI test to make it crash regardless of testing iOS device

* Always use original textContainer

* Revert "Always use original textContainer"

This reverts commit f0bf613.

* Always use original text container

* change the test to the correct issue and delete extra files that may have happened in the rebase

* remove local uitest changes

* remove linq and change back to correct issue number

---------

Co-authored-by: tj-devel709 <[email protected]>
* Initial Commit

* Solved issue of automation id not picking up

* Renamed files, set correct issue text

* Removed unnecessary variables, comments

* Disabled test for Catalyst as well

* Fixed previous

* Added MovedToAppium tag for original test
I was testing a .NET MAUI project template in Visual Studio on a
Windows DevBox, and I noticed a target taking *a lot* of time:

    ResizetizeImages 1.302s
    Skipping target "ResizetizeImages" because all output files are up-to-date with respect to the input files.

This is happening on incremental builds with no changes. This is even
worse for Android, because it runs twice: one for build and one for
deploy.

The `ResizetizeImages` MSBuild target is *skipped*, why is it slow?!?

To "debug" this, I added this ugly, one-liner between every
`<ItemGroup>` in the target:

    <ItemGroup>
      </ItemGroup><PropertyGroup><_Time>$([System.DateTime]::Now.ToString('THH:mm:ss.fffffffZ'))</_Time></PropertyGroup><ItemGroup>
      <_MauiImageToProcess Include="@(MauiImage)" Exclude="$(DefaultItemExcludes)" />
      </ItemGroup><PropertyGroup><_Time>$([System.DateTime]::Now.ToString('THH:mm:ss.fffffffZ'))</_Time></PropertyGroup><ItemGroup>
      <!-- more item groups -->
      </ItemGroup><PropertyGroup><_Time>$([System.DateTime]::Now.ToString('THH:mm:ss.fffffffZ'))</_Time></PropertyGroup><ItemGroup>
    </ItemGroup>

(I found the `/profileevaluation` switch didn't help me here)

This led me to find the problematic line, is this one:

    <_MauiImageToProcess Include="@(MauiImage)" Exclude="$(DefaultItemExcludes)" />

Where `$(DefaultItemExcludes)` is:

    DefaultItemExcludes = ;bin\Debug\/**;obj\Debug\/**;bin\/**;obj\/**;**/*.user;**/*.*proj;**/*.sln;**/*.vssscc;**/.DS_Store

This was introduced in a92fd1d to fix `.DS_Store` files in the folder:

    <MauiImage Include="Resources\Images\*" />

(This is in the .NET MAUI project template).

What is happening is:

* MSBuild expands these 9 wildcards to a lot of files

* MSBuild now has to filter out the files that are in `@(MauiImage)`

If I simply reduce this to:

    <_MauiImageToProcess Include="@(MauiImage)" Exclude="**/.DS_Store" />

It still takes 177ms after this change, because MSBuild has to
do a recursive file listing of the current project.

So, we can do better. We can use `Condition` instead:

    <_MauiImageToProcess Include="@(MauiImage)" Condition=" '%(FileName)%(Extension)' != '.DS_Store' " />

After these changes, the target now takes:

    ResizetizeImages 6ms

I can't think of what this would break, as I don't think any of these
files are in `Resources\Images`:

    DefaultItemExcludes = ;bin\Debug\/**;obj\Debug\/**;bin\/**;obj\/**;**/*.user;**/*.*proj;**/*.sln;**/*.vssscc;**/.DS_Store

The only problem I can think of would be if someone sets
`$(DefaultItemExcludes)` to a custom value, and I think saving the
build time is worth it.
…sults in the temporary fading out of two items instead of one on Android (#24461)
* Make `MeasureInvalidated` event work correctly
Fixes #15177
Fixes #20181

* Remove legacy/not-needed size allocation on Page during measure invalidation
…on after changing the ItemSource with Loop enabled. (#24431)

* Added the fix for the Carousel position issue

* Optimized the fix.

* Removed the unwanted codes.

* Modified the test script.

* Added the Windows failure tag.

---------

Co-authored-by: AhamedAliNishad <[email protected]>
* Remove code from iOS that short circuits propagation

* - fix
# Conflicts:
#	src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
@PureWeen PureWeen requested a review from a team as a code owner August 29, 2024 21:15
@samhouts samhouts added the area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions label Aug 29, 2024
tj-devel709 and others added 4 commits August 30, 2024 11:53
* Fix-15991- Fixed the padding issue on FlexLayout by add the padding calculation in the Measure and ArrangeChildren method().

* added UITest - 15991

* Fix-15991- Output images added for android and iOS.

* Fix-15991-Updated test method name.

* Fix-15991-Updated the test image based on the Test method name.

* Fix-15991-Updated test method with scrollView automationID.

* Fix-15991-Output image added for windows.

* Fix-15991-Added Unit test case and removed UI testcase.

* Fix-15991-Modified Unit TestCase FlexLayout.

* Fix-15991-Modified Unit TestCase for FlexLayout.
… is corrupt (#23850)

* Rework logic to delete shared prefs when key is corrupt

Sometimes encrypted shared preferences can become unusable on android when backed up data gets migrated between different devices (and possibly in other scenarios).

We tried to work around this by catching one particular exception and calling PlatformRemoveAll() to try and delete the shared prefs so we could create a new set, however this logic was flawed since the error occurs when getting an instance of the encrypted shared preferences, which the PlatformRemoveAll attempts to do itself (so it would fail to get the thing to remove the thing).

This changes up the logic a bit and directly clears the shared preference that the encrypted one is stored in, without first trying to get an instance of the corrupt shared prefs.

It then also tries to directly create a new instance afterwards, and return that, in an attempt to make this failsafe / reset operation transparent to the original call to get or set a secure storage key/value.

* Reuse Alias property that already exists
@rmarinho
Copy link
Member

We have 2 tests failing now

SuthiYuvaraj and others added 3 commits August 31, 2024 13:21
…24161)

* 894511 : Shell Tab is still visible after set Tab.IsVisible to false

* Commit for test cases changes

* 894511 : Review changes

* Commit for testcase changes

* Commit for proper flyout width

* Review changes

* Image added

* 894511 : Commit for windows

* 894511 : Fix for iOS included

* Fix: 894511 : Review changes

* Fix:894511 : Images Added
@mattleibow
Copy link
Member

The changes in the 2 tests images seem to be related to safe areas and modals. @PureWeen do you recall anything changing in net9.0 around this? I feel like I saw some sort of PR that did something...

image

FaithfulDev and others added 4 commits September 3, 2024 10:37
…23909)

* Always return Granted for Read-Write Storage

* Add test

* Apply suggestions from code review

* Update test

* Make test specific to Android
# Conflicts:
#	src/Essentials/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
@rmarinho rmarinho merged commit 304278b into net9.0 Sep 4, 2024
121 checks passed
@rmarinho rmarinho deleted the merge_main_net0 branch September 4, 2024 13:22
@samhouts samhouts added the fixed-in-net9.0-nightly This may be available in a nightly release! label Sep 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions fixed-in-net9.0-nightly This may be available in a nightly release!
Projects
None yet
Development

Successfully merging this pull request may close these issues.