fix(testing): restore .NET Framework targets for the testing packages - #4427
Merged
Merged
Conversation
- ReactiveUI.Testing and ReactiveUI.Testing.Reactive built only $(ReactiveUIModernTargets), so net462/net472/net481 stopped shipping at v23 while the ReactiveUI package they test kept targeting them. - Add $(ReactiveUIFrameworkTargets) to both, and the PublicAPI baselines the new frameworks require. - The net4x public surface is identical to net8.0; no API is reduced. Closes #4420
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4427 +/- ##
=======================================
Coverage 93.35% 93.35%
=======================================
Files 347 347
Lines 14921 14921
Branches 1553 1553
=======================================
Hits 13929 13929
Misses 731 731
Partials 261 261 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What kind of change does this PR introduce?
Fix.
What is the new behavior?
ReactiveUI.TestingandReactiveUI.Testing.Reactiveshipnet462,net472andnet481again, alongside the modernnet8.0-net11.0targets. Verified by packing both projects and listing the package contents:The .NET Framework public surface is byte-identical to the
net8.0baseline, so nothing is reduced on the older frameworks.What is the current behavior?
Closes #4420
Since v23 both packages set
<TargetFrameworks>$(ReactiveUIModernTargets)</TargetFrameworks>, which isnet8.0;net9.0;net10.0;net11.0. TheReactiveUIpackage they exist to test targets$(ReactiveUIFinalTargetFrameworks), which does include$(ReactiveUIFrameworkTargets)(net462;net472;net481). So a project on .NET Framework could reference ReactiveUI but not its testing helpers.Note for anyone reading the issue: it points at
ReactiveUITestingTargetsinDirectory.Build.props. That property is a red herring here - it is consumed only by test projects undersrc/tests, never by the shipped packages. The actual driver wasReactiveUIModernTargetsin the two csproj files.What might this PR break?
ReactiveUI.Testing.ReactivepullsMicrosoft.Reactive.Testingon the new frameworks; it resolves and compiles clean on all three.Checklist
mainbranchAdditional information
The PublicAPI baselines for the six new (project, TFM) pairs were produced with the repo's own
tools/generate-publicapi.sh, which the tooling README already names as the step for "after adding a new target framework to a tracked library". Running it over both projects regenerated all 14 pairs; the eight pre-existing ones came back unchanged, which is the check that the generator is deterministic here and that no existing surface moved.Verified on Linux:
dotnet build reactiveui.slnx -c Release -t:Rebuild- 0 warnings, 0 errors.