Skip to content

Reduce Tool package size and update .NET target to net10.0#33

Merged
Malcolmnixon merged 2 commits into
mainfrom
feature/reduce-tool-package-size
Jul 13, 2026
Merged

Reduce Tool package size and update .NET target to net10.0#33
Malcolmnixon merged 2 commits into
mainfrom
feature/reduce-tool-package-size

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member

This pull request removes .NET 8 and .NET 9 support from the DemaConsulting.SysML2Tools.Tool CLI tool, making .NET 10 the sole target framework. The library packages remain multi-targeted. The PR also implements a curated native asset trimming system for SkiaSharp, significantly reducing the tool package size to meet NuGet.org limits. Documentation, requirements, and test configurations have been updated to reflect these changes.

Tool packaging and native asset trimming:

  • The Tool project now targets only net10.0 instead of net8.0;net9.0;net10.0, reducing duplication and aligning with supported LTS versions.
  • Introduced a curated list of supported RIDs and a new MSBuild target (TrimPublishedNativeAssets) that removes unnecessary native SkiaSharp debug symbols and unsupported runtime assets, dramatically reducing the .nupkg size. [1] [2]

CI/CD and test matrix updates:

  • The GitHub Actions workflow (build.yaml) and test project now only build and test against .NET 10, removing .NET 8 and .NET 9 from the matrix. [1] [2]

Documentation and requirements alignment:

  • Updated all documentation, requirements, and verification files to state that the tool targets .NET 10 only, and tests run solely on this framework. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Roadmap and rationale:

  • Added a detailed explanation in ROADMAP.md describing the package size issue, the causes, and the implemented solutions, including the rationale for dropping .NET 8 and 9 for the tool.

Malcolm Nixon added 2 commits July 12, 2026 22:05
- Target net10.0 only for the Tool project (Core/Language/Stdlib remain
  net8.0;net9.0;net10.0); .NET 9 is STS and already out of support, and
  triple-targeting tripled every native SkiaSharp asset in the package.
- Add TrimPublishedNativeAssets MSBuild target (AfterTargets=
  ComputeResolvedFilesToPublishList) that strips transitive native
  SkiaSharp .pdb debug symbols and non-curated RID directories from the
  published/packed output.
- Remove the now-dead-weight OS-conditioned SkiaSharp.NativeAssets.*
  PackageReferences (the full RID matrix already arrives unconditionally
  via DemaConsulting.Rendering.Skia's own SkiaSharp dependency) and pin
  to a curated RID allowlist: win-x64/x86/arm64, linux-x64/arm64,
  linux-musl-x64/arm64, osx.
- Update Tool.Tests.csproj to net10.0-only to match the ProjectReference.
- Narrow build.yaml's integration-test job matrix to 10.x only.
- Update requirements/design/verification docs and README to reflect the
  net10.0-only Tool platform.
@Malcolmnixon
Malcolmnixon merged commit 8213325 into main Jul 13, 2026
17 of 18 checks passed
@Malcolmnixon
Malcolmnixon deleted the feature/reduce-tool-package-size branch July 13, 2026 03:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant