Skip to content

Reduce bundled package size for Avalonia and pinget#4753

Merged
Gabriel Dufresne (GabrielDuf) merged 5 commits into
mainfrom
mamoreau-devolutions/package-size-analysis
May 12, 2026
Merged

Reduce bundled package size for Avalonia and pinget#4753
Gabriel Dufresne (GabrielDuf) merged 5 commits into
mainfrom
mamoreau-devolutions/package-size-analysis

Conversation

@mamoreau-devolutions
Copy link
Copy Markdown
Contributor

Summary

  • Publish the Avalonia app self-contained and trimmed with TrimMode=partial, isolated under Avalonia\ and without single-file/PDB output.
  • Keep shared trim-safety improvements for JSON serialization, IPC, settings, icon data, Cargo manifests, and Avalonia view lookup/bindings.
  • Preserve Avalonia Windows notification support by using partial trimming.
  • Resolve bundled Avalonia launches back to the install root so root-level pinget.exe, elevator/assets, integrity data, and contributor assets are found from Avalonia\UniGetUI.Avalonia.exe.
  • Replace the nested C# UniGetUI.Pinget.Cli publish with the prebuilt Devolutions.Pinget.Cli.Rust package and remove the obsolete project from the solution.

Validation

  • dotnet test src\UniGetUI.Core.Data.Tests\UniGetUI.Core.Data.Tests.csproj --verbosity q --nologo -m:1
  • dotnet test src\UniGetUI.PackageEngine.Tests\UniGetUI.PackageEngine.Tests.csproj --verbosity q --nologo -m:1
  • dotnet restore src\UniGetUI.Windows.slnx --nologo -v:q
  • Focused PublishBundledPingetCli MSBuild target check copied prebuilt pinget.exe to build and publish roots.

Publish the Avalonia app as an isolated self-contained trimmed multi-file artifact and remove publish PDBs from that output.

Replace reflection-heavy Avalonia, IPC, settings, icon, integrity, and Cargo JSON paths with static mappings or source-generated metadata so the trimmed publish remains usable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore the Windows notification bridge and switch the Avalonia publish path back to TrimMode=partial while keeping the isolated multi-file trimmed artifact and PDB removal.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve bundled Avalonia launches back to the installation root so root-level tools and assets are found when UniGetUI.Avalonia.exe runs from the Avalonia subfolder.

Replace the nested UniGetUI.Pinget.Cli publish step with the Devolutions.Pinget.Cli.Rust package and remove the obsolete C# pinget project from the solution.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sort using directives alphabetically in IpcServer.cs and
WindowsPackageManagerStandardFactory.cs so `dotnet format style` no
longer reports IMPORTS errors.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@GabrielDuf Gabriel Dufresne (GabrielDuf) merged commit a8f05f5 into main May 12, 2026
3 checks passed
@GabrielDuf Gabriel Dufresne (GabrielDuf) deleted the mamoreau-devolutions/package-size-analysis branch May 12, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants