## Description
This PR upgrades the minimum version of `Microsoft.NETCore.UniversalWindowsPlatform` to 6.2.14 for UWP C# projects.
### Type of Change
- Bug fix (non-breaking change which fixes an issue)
### Why
This is long over-due as the latest (and probably last) version of this package hasn't changed in over two years. There's no reason for us to build against an older version. Just as importantly, this brings in a newer version of the .NetNative toolchain, which seems to resolve issues around C# builds hanging at the .NetNative step.
Resolves#14055Resolves#9194Resolves#4869
### What
Updated the minimum version of `Microsoft.NETCore.UniversalWindowsPlatform` to 6.2.14 for UWP C# projects. Added new entries to the props that enable C++ apps to consume C# modules to see the latest versions of .NetNative.
## Screenshots
N/A
## Testing
Verified E2Etests build and run.
## Changelog
Should this change be included in the release notes: _yes_
Update to Microsoft.NETCore.UniversalWindowsPlatform 6.2.14
* Update WinAppSDK from 1.5 to 1.6 (1.6.240923002)
* Change files
* Adding more build fixes due to the fact that WinAppSDK 1.6 has a dependency on Microsoft.Web.WebView2
* Prevent Microsoft.Web.WebView2.Core.dll from being copied to avoid errors on arm64ec
---------
Co-authored-by: winappsdkdata_bot <winappsdkdata_bot@microsoft.com>
* Increase the size to 8 parameters
* Introduce a unittest for codegen
* Change files
* Increase the params to 10
* Delete vnext/Microsoft.ReactNative.Managed.CodeGen.UnitTests/CodeGen/Lkg/Microsoft.ReactNative.Managed.CodeGen.UnitTests.CodeGen.CodeGenMethodTests--EightParamReturnInt--Sync.lkg
* Delete vnext/Microsoft.ReactNative.Managed.CodeGen.UnitTests/CodeGen/Lkg/Microsoft.ReactNative.Managed.CodeGen.UnitTests.CodeGen.CodeGenMethodTests--EightParamReturnInt--Async.lkg
## Description
Bumps and aligns the SDK version from `10.0.19041.0` to `10.0.22621.0`.
### Type of Change
- Bug fix (non-breaking change which fixes an issue)
### Why
- There is a requirement to build the Desktop DLL (`react-native-win32.dll`) for ARM64EC.\
This makes Windows SDK 10.0.22621.0 necessary due to the dependency on intrinsics-related headers not available in version 10.0.19041.0.
- There is the added benefit of using the default SDK version installed by Visual Studio 2022, reducing the number of development dependencies.
Replaces #10869
### What
- Bumps all Win SDK references to version 22621.
- Adds installation of version 22621 in both installation scripts and CI.
## Description
This PR adds configurations for Microsoft.ReactNative with Fabric enabled to PR, CI, and Publish builds. This change will enable the publishing of new versions of the Microsoft.ReactNative NuGet with the `-Fabric` suffix to differentiate it from the current Paper NuGet.
This replicates the setup that Desktop has, where we create and publish versions of React Native Win32 nugets with the `-Fabric` suffix to indicate those versions are using Fabric.
### Type of Change
- New feature (non-breaking change which adds functionality)
### Why
We want the default new arch, new app / lib experience to *not* build RNW, but instead consume it via NuGets, see #12639. In order to get that started, we'll need the
### What
Updated CI/PR/Publish configurations.
## Screenshots
N/A
## Testing
Verified new configurations fired off existing tests in PR.
## Changelog
Should this change be included in the release notes: yes
New Microsoft.ReactNative nugets with Fabric enabled
## Description
This PR updates the default versions of `Microsoft.WindowsAppSDK` used to 1.4.240211001 when `<UseWinUI3>true</UseWinUI3>` is specified, and 1.5.240124002-experimental2 when `<UseExperimentalWinUI3>true</UseExperimentalWinUI3>` is specified.
This PR also updates all of the `packages.lock json` files to the defaults.
### Type of Change
- Bug fix (non-breaking change which fixes an issue)
### Why
To keep up with the latest public versions of WinAppSDK.
### What
See above.
## Screenshots
N/A
## Testing
Ran both PR and new Secure PR checks to make sure that everything still builds and works.
## Changelog
Should this change be included in the release notes: yes
Updated WindowsAppSDK dependency to 1.4.240211001
## Description
This PR updates our usage of `@react-native/react-native-picker` to a newer version which uses the correct Windows SDK version specified by RNW.
### Type of Change
- Bug fix (non-breaking change which fixes an issue)
### Why
Without this change, devs will require an older (and unecessary) Windows SDK than we're currently targeting.
### What
See above.
## Screenshots
N/A
## Testing
Verified e2e-test builds and runs.
## Changelog
Should this change be included in the release notes: no
## Description
This PR specifies that all projects should set the msbuild property `RestorePackagesWithLockFile` to `true` by default, not just the C# ones.
This way we can ensure that PR/CI will build reliably because every locked version should be available in the react-native-public ADO feed. Changes to NuGet dependencies in PRs should now explicilty fail if the new package version is not in the ADO feed, and therefore require us to manually approve the addition to the feed (as required by compliance).
Closes#11998
### Type of Change
- Bug fix (non-breaking change which fixes an issue)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
### Why
This way we can ensure that PR/CI will build reliably because every locked version should be available in the react-native-public ADO feed. Changes to NuGet dependencies in PRs should now explicilty fail if the new package version is not in the ADO feed, and therefore require us to manually approve the addition to the feed (as required by compliance).
Closes#11998
### What
This PR specifies that all projects should set the msbuild property `RestorePackagesWithLockFile` to `true` by default, not just the C# ones.
## Screenshots
N/A
## Testing
N/A
## Changelog
Should this change be included in the release notes: no
## Description
Our existing implementation for `accessibilityState` does not support that the values of a state can be `null`. This means *every* View has *every* unset state with the default `false` value.
The problem stems from implementing the short-lived `accessibilityStates` prop at the same time as `accessibilityState`, but not removing the deprecated API right away.
This PR fixes our implementation to only include the states when explicitly set, and to otherwise clear them. This PR also removed the no longer required "opposite" states like `Collapsed` and `Unchecked`.
Resolves#11791
### Type of Change
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
### Why
Properly implement accessibility in preparation for doing the work correctly for Fabric.
Resolves#11791
### What
Removed the old unused states and updated FrameworkElementViewManager to allow for unset values rather than forcing the default false. Updated AccessbilityStateChecked to accept an enum of Unchecked, Mixed, or Checked. Updated the DynamicAutomationPeer to only express a View has the appropriate provider iff the matching state is present on the view.
## Screenshots
N/A
## Testing
Updated E2E test snapshots to include the AccessibilityRole and AccessibilityState properties in the XAML tree dumps.
* Update packages.lock
* Remove HttpModule.h from OInstance.cpp
* Remove runtime option Blob.EnableModule
* Call SetupHttpResource only once
* Attempt AddNetworkingHandler if HTTP module was not ready
* Change files
* ABI-safe Hermes API and new JSI for Node-API
* Change files
* Use Hermes version 0.1.13 that supports UAP
* Format code
* Merge node-api-jsi project into ReactCommon project
* Fix x86 issues
* Eliminate Linker warnings
* Copy Node-API JSI files to MS.RN.Cxx Nuget
* Remove unnecessary settings from shared projects
* Format code and fix Layout-MSRN-Headers.ps1
* Fix loading Node-API JSI zip
* Remove node-api-jsi project from the playground project
* Update Hermes package version
* Change files
* Fix playground project compilation
* Use node-api-jsi with fixes for C++20
* Fix building playground apps
* Format code
* Make sure that the Hermes inspector works
* Update packages.lock.json files
* Update Hermes version with fixes for prepared scripts
* Use Hermes package 0.1.15 to fix UWP .Net projects
* Use SafeLoadLibrary and remove thread Id check for Jsi::Runtime
## Description
This PR adds configuration files for `cspell`, which is available as a recommended VS Code plugin for this repo. This PR also fixes most "non-breaking" typos (comments, error messages, local names) for code files within the repo.
This PR **does not** add any kind of spell-checking enforcement on the repo.
### Type of Change
N/A
### Why
Clear up misunderstandings in comments / error messages.
### What
What changes were made to the codebase to solve the bug, add the functionality, etc. that you specified above.
## Screenshots
N/A
## Testing
N/A
* Adds BundleAppId to ReactInstanceSettings
For scenarios where you may want to run a single packager server
instance to serve multiple apps with different rules, and the relative
bundle path is not sufficient for determining which application the
bundle is being produced for, Metro provides an `app` query parameter to
the dev server.
This change wires up the option for apps to supply the `app` query
parameter to metro via ReactInstanceSettings::BundleAppId. This
functionality is already available to iOS and Android React Native apps.
* Change files
---------
Co-authored-by: Andrew Coates <30809111+acoates-ms@users.noreply.github.com>
## Description
This PR moves the `Microsoft.Windows.CppWinRT` and `Microsoft.NETCore.UniversalWindowsPlatform` PackageReferences out of their new project template and into the External Property Sheets.
This PR also parameterizes the version of `Microsoft.NETCore.UniversalWindowsPlatform` with the property `$(NETCoreUWPVersion)`.
### Type of Change
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
### Why
This consolidates how we consume NuGet dependencies and simplifies the new project templates.
Closes#10829
### What
See above.
## Screenshots
N/A
## Testing
N/A
* fix typescript pathing to react-native/types
* integration 9/26/22
* Change files
* try to fix snapshot test
* fix playground build
* update hermes package
* match ts-jest version to jest version
* update yarn file
* jest done callback not used on async jest tests
* minor fixes
* Change files
* Increase timeout for configToProjectInfo
* fix failure transpiling jest-runner
* another attempt at timeout fix
* more fixes
* defork virtualizedlist
* realign jest version with core - add sample test to rnw and rnwin32 to allow jest to run
* missing space in repo-config package.json
* suppress new c++ warning CI hits
* fix
* Unblock most E2E
* update snapshot
* update snapshot
Co-authored-by: Andrew Coates <30809111+acoates-ms@users.noreply.github.com>
*Description*
This PR updates RNW to build with (and require) Visual Studio 2022. This includes upgrading the `Microsoft.ReactNative.Managed.CodeGen` project to .NET 6.0
This PR does not change the minimum / target Windows SDK versions for RNW or RNW apps.
This PR does not change the language versions of C++ (17) and C# (8.0) used.
*Type of Change*
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
*Why*
Visual Studio 2022 is the currently supported version of Visual Studio and what is available to download without an MSDN subscription to access older versions. As Visual Studio 2019 support is reduced/deprecated, we need to migrate.
Closes#8750Closes#9499Closes#10130
*What*
What's changed:
* All VS project files have been updated to require a minimum of VS 2022 (aka version 17.0).
* NuGet-based dependencies that are tied to VS version have been upgraded.
* The `Microsoft.ReactNative.Managed.CodeGen` project has been updated to .NET 6.0
* The snapshots for the codegen tests have been updated to pass
* The E2E Test app has been updated to the latest version of `react-native-xaml` (needed to fix build issues)
* Snapshots for E2E tests have been updated to pass
*Testing*
Builds and tests All tests
* Fix C# modules with multi-parameter callback methods
* Change files
* Change sln file to have VS 2019 formatting
* Update vnext/Microsoft.ReactNative.Managed/ReactNotificationIdOf.cs
Co-authored-by: Danny van Velzen <dannyvv@microsoft.com>
* Address code review feedback
Co-authored-by: Vladimir Morozov <vmoroz@users.noreply.github.com>
Co-authored-by: Danny van Velzen <dannyvv@microsoft.com>
This PR fixes the `MSB4011` warning when `JSEngine.props` tries to import `ExperimentalFeatures.props` a second time. The expectation is that all RNW projects (app or module) import the `ExperimentalFeatures.props` file (located next to the VS solution) at the very top of each project file, so all RNW-related projects are in sync with respect to the state of any Experimental Features.
However, older RNW apps/module templates did not include this import, hence `JSEngine.props`'s workaround to import it. Unfortunately, MSBuild:
* Doesn't like project files to be imported twice, so it gives the `MSB4011` warning
* Doesn't provide any built-in way to detect if a project file has already been imported
* Doesn't allow you to suppress this particular warning completely
The best solution is to set a property in the imported file and check for that property before attempting to import the file.
This PR adds an `ReactExperimentalFeaturesSet` property to all in-repo and new template `ExperimentalFeatures.props` files, and changes `JSEngine.props` to both check for it before importing and throw a new warning so let existing projects know about the new property and how to resolve all of the warnings.
TLDR: After this PR has been merged, adding
```xml
<ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
```
to your `ExperimentalFeatures.props` file will get rid these annoying MSB4011 warnings.
* Add codegen-windows command to run windows codegen
* Do not error on codegenconfigs that do not specify windows
* Change files
* Add codegen to default build
* run codegen
* fix module
* format
* lint fix
## Description
The switch to PackageReference sprinkled required properties in each individual app/lib project file, instead of putting them in to the shared property sheets.
This means that customers upgrading from earlier versions of RNW must add these properties to every project they consume. So app customers must add the correct properties to their app projects when upgrading to 0.68+, and also to each native module project they depend on.
Moving the properties in to the shared props (that every project consumes) means that they all get their benefit.
Resolves#10538
### Type of Change
- Bug fix (non-breaking change which fixes an issue)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
### What
Set the NuGet properties such as `AssetTargetFallback`, `ResolveNuGetPackages`, `TargetFrameworkMoniker`, and `RestoreUseStaticGraphEvaluation` in the shared property sheets, and removed their hardcoded values in our projects and templates.
### Why
Projects built with older templates need these properties but might not otherwise get upgraded.
### Test
I created a brand new RN 0.67 project, added RNW 0.67, and added `react-native-camera` as a dependency. I confirmed that the project built and ran as expected with `yarn windows`.
Then I manually upgraded the `package.json` with `react@18.1.0`, and `react-native@0.0.0-20220714-2051-8af7870c6`. Then I ran `react-native-windows-init` pointing to my local repo (with these changes) to upgrade the windows files with the fixed template.
Finally I ran `yarn windows` and confirmed that all packages were restored, the app and native modules built, deployed, and ran.
* Update packages.lock.json
* Import WinUI package only if OverrideWinUIPackage is not true
* Change files
* Revert Microsoft.ReactNative.Managed.UnitTests.csproj
* CG: Update Newtonsoft.Json to 13.0.1
This PR updates our usage of Newtonsoft.Json to 13.0.1 to resolve two CG
alerts: WS-2022-0161 and GHSA-5crp-9r3c-p9vr
* Change files