Conversation
Add net10.0-windows to all eight packable libraries and Gemini.Demo while retaining net462, net6.0-windows, and net7.0-windows. Keep Caliburn.Micro 4.0.210 and the existing dependency graph. Handle System.Drawing.Common deliberately across the target matrix: retain its 6.0.0 compile assets for net462/net6/net7, disable SDK 10 pruning for the retained net6/net7 Inspector lanes, and omit the direct package for net10 WPF where WindowsDesktop provides it. Extend package-contract.json with complete per-nuspec-TFM external dependency overrides. Refactor validate-artifacts.ps1 to reject override keys that do not match declared frameworks, construct a fresh expected dependency set for every nuspec group, combine coherent internal package versions with either shared external dependencies or the target-specific replacement set, and preserve exact missing, unexpected, and version assertions. An empty Inspector net10 override therefore asserts that Drawing.Common is absent without weakening validation for retained targets. The shared framework declaration continues to drive assembly, portable PDB, dependency-group, and demo shader validation for all four targets. Update the README target list accordingly. Validation: Release restore, build, pack, positive artifact validation, six negative contract cases, MahApps smoke, and focused Gemini.Demo net10 runtime checks. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
kornman00
marked this pull request as ready for review
September 25, 2026 18:17
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.
Summary
Add
net10.0-windowsas a fourth Gemini target while retainingnet462,net6.0-windows, andnet7.0-windows.This is an additive runtime/package-contract change, not the Caliburn 5 migration. Caliburn.Micro remains 4.0.210, and all existing application dependency versions remain fixed. The merged MahApps.Metro 2.4.11 compatibility work from #365 supplies the .NET 10 window-drag prerequisite and its focused host.
.NET 10 WPF supplies
System.Drawing.Commonthrough WindowsDesktop, while the retained net6/net7 WPF lanes still need the direct 6.0.0 compile package. This PR encodes that distinction in both MSBuild and the package contract rather than upgrading Drawing.Common or weakening dependency validation.Scope
net10.0-windowsto all eight packable library projects and the non-packable Gemini.Demo;HelixToolkit.Wpffor net462 andHelixToolkit.Core.Wpffor modern targets, now including net10;System.Drawing.Common6.0.0 reference out for net10 only;The target-specific override is a complete replacement external-dependency set, not a merge or subtraction list. Override keys must match a declared nuspec framework. An empty Inspector net10 override therefore asserts that no external Drawing.Common dependency is emitted, while retained targets continue to require exactly version 6.0.0. Internal Gemini dependencies remain coherent at the package version being validated, and missing, unexpected, duplicate, or wrong-version dependencies still fail validation.
Intentionally unchanged:
Evidence
GeminiWpfretainsSystem.ComponentModel.Composition6.0.0 in its net10 dependency group.Gemini.Modules.InspectorretainsSystem.Drawing.Common6.0.0 for net462/net6/net7 and emits no Drawing.Common dependency for net10.(300,60)-(1300,820)to(433,117)-(1433,877)without changing its1000x760size.HTLEFT,HTRIGHT,HTTOP, andHTBOTTOM) and mouse drags changed the corresponding bounds: right edge1000→1120width, bottom edge760→850height, left edge1120→1200width, and top edge850→910height.1936x1048zoomed window. Dragging its title restored it to the prior1200x910normal bounds and moved it to(473,154).MainWindowActiveBorder(#9B9FB9), an inactive capture usedMainWindowInactiveBorder(#CCCEDB), and the maximized capture suppressed that normal-window glow border.Validation
dotnet restore src\Gemini.sln --configfile src\NuGet.configdotnet build src\Gemini.sln --configuration Release --no-restoredotnet pack src\Gemini.sln --configuration Release --no-build --no-restore --output build\packagespwsh -NoProfile -File eng\validate-artifacts.ps1dotnet run --project eng\compatibility\MahApps.Net10DragHost\MahApps.Net10DragHost.csproj --configuration Release --no-build -- --smokeThe build retains the existing NETSDK1138 warnings for the intentionally preserved, out-of-support net6/net7 executable targets. It introduces no build errors or new dependency-version changes.
Base and rollback
Based on
tgjones/gemini:masterat0d775797239b3ba8b2dba2b6a84fe4a73c5322e1, the merge commit for #365. The fork's master branch is fast-forwarded to the same commit.The branch contains one net10-owned commit above that base. Reverting this PR removes the additive net10 target and its package-contract expectations, restores Inspector's original Drawing.Common declaration/pruning behavior, and restores the README target list. It requires no application-state migration and does not alter publication policy.