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

Reapply "Delegate to OS RegFreeWinRT when available (>=24H1) (#4728)" (#4935) #4949

Merged
merged 42 commits into from
Feb 4, 2025

Conversation

DrusTheAxe
Copy link
Member

@DrusTheAxe DrusTheAxe commented Dec 10, 2024

Delegate to OS RegFreeWinRT when available (>=24H2)

Don't detour APIs to our Undocked Reg-Free WinRT implementation if the OS supports Reg-Free WinRT (>=24H2)

https://task.ms/47326505

  • WinAppSDK Dynamic Dependencies delegates to OS Dynamic Dependencies on Win11 (>=24H2)
  • Updated and expanded Dynamic Dependencies test suite
  • Undocked RegFree WinRT (URFW) disabled when WinAppSDK Dynamic Dependencies delegates to OS Dynamic Dependencies (in this case OS RegFree WinRT applies)
  • NOTE: This required changing some test package names e.g. foo-x.y => foo.x.y
  • Merge with latest in main
  • DevCheck -SyncDependencies to fixup dependencies
  • Updated Microsoft.Taef dependency to 10.95.240918004
  • Added Microsoft.Windows.SDK.BuildTools to master dependency list (eng\Version.*.xml)
  • Fixed bad project files (WindowsAppRuntime_UniversalBGTaskDLL.vcxproj, BackgroundTaskTests.vcxproj
    , OAuth2ManagerTests.vcxproj, OAuthTestApp.vcxproj e.g. <Import...Microsoft.Cpp.Default.props> at top of file (line 3), use $(NugetPackageDirectory) (not .. path'ing), use dependency $(...Version) macros (not hardcoded version numbers)
  • Fixed WindowsAppRuntime.sln wasn't building some test MSIX packages on ARM64
  • Fixed WindowsAppRuntime.sln some tests missing Build Dependencies on test package projects they depend on
  • DevCheck: minor bug fixes
  • Pipeline: WindowsAppSDK-RuntTests-Steps.yml adds 'Dump services' task for troubleshooting
  • Pipeline: Add -CheckVisualStudio to build and test phases (WindowsAppSDK-SetupBuildEnvironment-Steps.yml + WindowsAppSDK-RuntTests-Steps.yml)
  • GettingStarted docs: Updated Win11 24H2 SDK link

This reverts commit c088336.

Revert "Revert "Delegate to OS RegFreeWinRT when available (>=24H1) (#4728)""

REMINDER: Use WinAppSDK's tools\add-project to create new projects in the repo. DON'T use Visual Studio File/New Project... as the templates don't work right for WinAppSDK's implementation in this repo.

NOTE: ADO Pipeline reports lie showing TAEF test steps passing as long as TE.EXE exitcode=0 regardless of results. Verified by eyeballing all (!) test output.

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/az[ run

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe DrusTheAxe requested a review from kythant February 1, 2025 18:21
@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

Running a new build as the latest one had failed during 1 build task, then Rerun Failed Tasks 'fixed' it and then ran the tests but report failures in tests that passed before, and doesn't repro locally. Here's hoping it's a weird infra issue that doesn't repeat

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

…t getting built for ARM64. And some projects built not-ARM64 for ARM64. Mostly fixed. Some test projects lack ARM64 support but not touched as not blocking here and overdue already; they can (and will) be handled in a separate follow up effort
@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DrusTheAxe DrusTheAxe merged commit 3959f0d into main Feb 4, 2025
26 checks passed
@DrusTheAxe DrusTheAxe deleted the user/drustheaxe/DynDepAndURFW-DelegateToOS branch February 4, 2025 18:36
DrusTheAxe added a commit that referenced this pull request Feb 6, 2025
…#4935) (#4949)

* Reapply "Delegate to OS RegFreeWinRT when available (>=24H1) (#4728)" (#4935)

This reverts commit c088336.

* Added missing dependencies for OAuth2ManagerTests

* Expanded tests

* Modified IsSupported with temporary debugging hack to expedite testing. Added local hackery for Architectures=None (but is it needed?)

* Removed debug hackery

* Test fixes

* More test fiddling

* Microsoft.Windows.BadgeNotifications.Projection project is missing a build-order dependency on WindowsAppRuntime_DLL so depending on timing and beefy machine it can try to build before the dependency is built and boom :-(

* Removed redundant Import

* Fixed bad merge

* Fixed WinAppSDK framework package family name construction in GetFrameworkPackageFamilyName() [MddBootstrap.cpp]. This is used in production when delegating to OS DynDep but not when using WinAppSDK DynDep (and test support used different codepath). That's why test packages with blah-major.minor... package names worked in test and on Win10 but not when delegating to OS DynDep on Win11. Added additional test tools to aid verification and debugging (now and in any future changes).

* Fixed DevCheck -CheckDependencies if packages.config has no <package> elements. Ran DevCheck -SyncDependencies to update stale dependencies

* Fix test framework package Name from name-major.minor to name.major.minor

* Workaround Windows bug https://task.ms/54835001 where IsPackage*ReadyOrNewerAvailable() doesn't correctly handle ProcessorArchitectureFilter=None

* Ran devcheck -syncdependencies

* Fixed failing PackageManagementTests

* Updated dependnecies via DevCheck -SyncDependencies. Removed unused Microsoft.Windows.SDK.BuildTools and Microsoft.WindowsAppSDK references in WindowsAppRuntime_UniversalBGTaskDLL's packages.config. Removed dead readme.txt in WindowsAppRuntime_UniversalBGTaskDLL projectdir (artifact of VS File/NewProject...).

* Updated link to latest SDK rev

* Fixed dependencies (syntax and usage

* Put WindowsAppRuntime_UniversalBGTaskDLL back to what's in main. No idea why that works but changing it -- in what should be innocuous ways -- breaks local + pipeline builds. Deferring that problem to Will Thant in its own right (not relevant to my changes)

* Fixed hardcoded versions in OAuthTestApp.vcxproj (wasn't using version macro)

* Fixed more bad projects - Import Microsoft.Cpp.Default.props not at the top, .. pathing to nugets and hardwired nuget versions

* Fixed WindowsAppRuntime_UniversalBGTaskDLL - Import Microsoft.Cpp.Default.props not at top of file, not using $(NugetPackageDirectory) for pathing to nugets, hardwired versions for nugets, unnecessary Microsoft.WindowsAppSDK in packages.config

* Added -ShowSystemInfo (default=$true) to Testall so test run output includes basic system info

* Fixed up test Main+Singleton+DDLM naming/constants

* Fixed bug in package name constant

* Added missing project dependencies. Updated ConfigurationManager to build test packages on ARM64 too (some were only build for x64|x86)

* Fixed bad merge

* Fixed a bad merge

* Removed temporary debugging code

* Some test packages lacked ARM64 support, plus those and others weren't getting built for ARM64. And some projects built not-ARM64 for ARM64. Mostly fixed. Some test projects lack ARM64 support but not touched as not blocking here and overdue already; they can (and will) be handled in a separate follow up effort

* Fixed one more ARM configuration manager misconfiguration

---------

Co-authored-by: Kyaw Thant <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants