Skip to content

Commit c6915ac

Browse files
breaking: Add .NET 10 Support and Upgrade to ReactiveUI 22.0 (#834)
* Initial plan * Complete Directory.Build.props migration and project updates - Unshallowed git repository - Installed .NET 10 SDK - Renamed Directory.build.props to Directory.Build.props (case-sensitive) - Renamed Directory.build.targets to Directory.Build.targets - Updated Directory.Build.props with new target framework definitions - Updated global.json to allow SDK 10.0 - Updated ReactiveUI.Validation.csproj to use $(LibraryTargetFrameworks) - Updated ReactiveUI.Validation.Tests.csproj to use $(TestTargetFrameworks) - Added net10.0 API approval test verification file - Suppressed pre-existing StyleCop warnings in test project - All builds and tests passing for net8.0, net9.0, and net10.0 Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Fix StyleCop errors and update NuGet packages - Removed SA1600, SA1513, SA1028, RCS1037 from NoWarn suppressions - Added documentation for SetUp and TearDown methods - Fixed trailing whitespace in PropertyValidationTests.cs - Added blank lines after closing braces per SA1513 - Updated NuGet packages: - Nerdbank.GitVersioning: 3.7.115 → 3.8.118 - Roslynator.Analyzers: 4.14.0 → 4.14.1 - System.Collections.Immutable: 9.0.8 → 9.0.9 - Microsoft.NET.Test.Sdk: 17.14.1 → 18.0.0 - Microsoft.Reactive.Testing: 6.0.2 → 6.1.0 - Kept ReactiveUI at 21.0.1 (22.0.1 introduces breaking changes) - All tests passing Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Update AndroidX project to use MauiAndroidTargets variable and remove net8.0-android - Updated ReactiveUI.Validation.AndroidX.csproj to use $(MauiAndroidTargets) variable - Removed deprecated net8.0-android target (Microsoft deprecated) - Now targets net9.0-android and net10.0-android only - Kept ReactiveUI packages at 21.0.1 (22.0.1 has breaking changes) - AndroidX project builds successfully - All tests passing Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Update ReactiveUI to 22.0.1 with System.Reactive.Disposables.Fluent namespace - Upgraded ReactiveUI from 21.0.1 to 22.0.1 - Upgraded ReactiveUI.AndroidX from 21.0.1 to 22.0.1 - Added using System.Reactive.Disposables.Fluent directive to files using DisposeWith - DisposeWith extension method moved from ReactiveUI to System.Reactive.Disposables.Fluent namespace - All tests passing (68 tests across net8.0, net9.0, net10.0) Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Add .NET 10 Support and Upgrade to ReactiveUI 22.0 Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Remove NoWarn from test project and fix non-nullable field initializations - Removed NoWarn line completely from test project csproj - Fixed all CS8618 errors (non-nullable field must contain non-null value) by adding = null! to 156 fields/properties in Model classes - Test project now has nullable reference types enabled - Remaining: CS8602, CS8600, CS8625, CS8604 errors in test methods (114 errors total) - All Model classes now properly initialize non-nullable members with null! Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Remove redundant global.json file - Removed global.json as it's no longer needed - SDK version management handled by build environment - Simplifies repository configuration Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com> * Further fixes * Fixes * Fix warnings * Fix api warnings --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: glennawatson <5834289+glennawatson@users.noreply.github.com>
1 parent 35ffddb commit c6915ac

File tree

64 files changed

+1128
-485
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1128
-485
lines changed

global.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/Directory.build.props renamed to src/Directory.Build.props

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
<Project>
1+
<Project>
22
<PropertyGroup>
3-
<Copyright>Copyright (c) .NET Foundation and Contributors</Copyright>
3+
<EnableWindowsTargeting>true</EnableWindowsTargeting>
4+
<WarningsAsErrors>$(WarningsAsErrors);nullable</WarningsAsErrors>
5+
<LangVersion>preview</LangVersion>
6+
<Nullable>enable</Nullable>
7+
<Copyright>Copyright © 2019-$(CompanyName) $([System.DateTime]::Now.ToString(`yyyy`)) ReactiveUI and Contributors</Copyright>
48
<Product>ReactiveUI.Validations ($(TargetFramework))</Product>
59
<PackageLicenseExpression>MIT</PackageLicenseExpression>
610
<PackageProjectUrl>https://github.com/reactiveui/ReactiveUI.Validation/</PackageProjectUrl>
711
<PackageIconUrl>https://github.com/reactiveui/ReactiveUI.Validation/blob/master/media/logo.png?raw=true</PackageIconUrl>
8-
<Authors>.NET Foundation and Contributors</Authors>
12+
<Authors>ReactiveUI and Contributors</Authors>
913
<Description>Validations library for ReactiveUI.</Description>
1014
<Owners>xanaisbettsx;ghuntley</Owners>
1115
<PackageTags>reactiveui;validation library;reactive programming;netcore;netstandard;netframework</PackageTags>
@@ -24,12 +28,28 @@
2428
<!-- Optional: Include PDB in the built .nupkg -->
2529
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
2630
<WarningsAsErrors>CS8600;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8623;CS8624;CS8625</WarningsAsErrors>
27-
<LangVersion>preview</LangVersion>
2831
<EnableNETAnalyzers>True</EnableNETAnalyzers>
2932
<AnalysisLevel>latest</AnalysisLevel>
30-
<NoWarn>$(NoWarn);IDE1006;IDE0130</NoWarn>
33+
<NoWarn>$(NoWarn);IDE1006;IDE0130</NoWarn>
34+
</PropertyGroup>
35+
36+
<PropertyGroup>
37+
<NetCorePlatforms>net8.0;net9.0;net10.0;netstandard2.0</NetCorePlatforms>
38+
<NetWindowsPlatforms>net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</NetWindowsPlatforms>
39+
<MauiAndroidTargets>net9.0-android;net10.0-android</MauiAndroidTargets>
40+
<MauiAppleTargets>net9.0-ios;net9.0-tvos;net9.0-macos;net9.0-maccatalyst;net10.0-ios;net10.0-tvos;net10.0-macos;net10.0-maccatalyst</MauiAppleTargets>
41+
<NetFrameworkPlatforms Condition="$([MSBuild]::IsOSPlatform('Windows'))">net462;net472</NetFrameworkPlatforms>
42+
<TestTargetFrameworks>net8.0;net9.0;net10.0</TestTargetFrameworks>
3143
</PropertyGroup>
3244

45+
<PropertyGroup>
46+
<CreatableMauiTargets Condition="$([MSBuild]::IsOSPlatform('Windows'))">$(MauiAndroidTargets);$(MauiAppleTargets)</CreatableMauiTargets>
47+
<CreatableMauiTargets Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(MauiAndroidTargets);$(MauiAppleTargets)</CreatableMauiTargets>
48+
<CreatableMauiTargets Condition="$([MSBuild]::IsOSPlatform('Linux'))">$(MauiAndroidTargets)</CreatableMauiTargets>
49+
50+
<LibraryTargetFrameworks>$(NetCorePlatforms);$(NetWindowsPlatforms);$(CreatableMauiTargets);$(NetFrameworkPlatforms)</LibraryTargetFrameworks>
51+
</PropertyGroup>
52+
3353
<ItemGroup>
3454
<None Include="$(MSBuildThisFileDirectory)..\media\logo.png" Pack="true" PackagePath="\" />
3555
<None Include="$(MSBuildThisFileDirectory)..\LICENSE" Pack="true" PackagePath="LICENSE" />
@@ -40,9 +60,9 @@
4060
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
4161
</ItemGroup>
4262
<ItemGroup>
43-
<PackageReference Include="Nerdbank.GitVersioning" Version="3.7.115" PrivateAssets="all" />
63+
<PackageReference Include="Nerdbank.GitVersioning" Version="3.8.118" PrivateAssets="all" />
4464
<PackageReference Include="stylecop.analyzers" Version="1.2.0-beta.556" PrivateAssets="all" />
45-
<PackageReference Include="Roslynator.Analyzers" Version="4.14.0" PrivateAssets="All" />
65+
<PackageReference Include="Roslynator.Analyzers" Version="4.14.1" PrivateAssets="All" />
4666
</ItemGroup>
4767
<ItemGroup>
4868
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json" />
File renamed without changes.

src/ReactiveUI.Validation.AndroidX/Extensions/ViewForExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// Copyright (c) 2025 .NET Foundation and Contributors. All rights reserved.
2-
// Licensed to the .NET Foundation under one or more agreements.
3-
// The .NET Foundation licenses this file to you under the MIT license.
1+
// Copyright (c) 2025 ReactiveUI and Contributors. All rights reserved.
2+
// Licensed to the ReactiveUI and Contributors under one or more agreements.
3+
// The ReactiveUI and Contributors licenses this file to you under the MIT license.
44
// See the LICENSE file in the project root for full license information.
55

66
using System;

src/ReactiveUI.Validation.AndroidX/ReactiveUI.Validation.AndroidX.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net8.0-android;net9.0-android</TargetFrameworks>
4+
<TargetFrameworks>$(MauiAndroidTargets)</TargetFrameworks>
55
<PackageDescription>Provides ReactiveUI.Validation extensions for the AndroidX Library</PackageDescription>
66
<PackageId>ReactiveUI.Validation.AndroidX</PackageId>
77
<NoWarn>$(NoWarn);CS1591</NoWarn>
88
<Nullable>enable</Nullable>
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="ReactiveUI.AndroidX" Version="21.0.1" />
12+
<PackageReference Include="ReactiveUI.AndroidX" Version="22.0.1" />
13+
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.12.0.5" />
1314
</ItemGroup>
1415

1516
<ItemGroup>

0 commit comments

Comments
 (0)