dotnet / dotnet/maui

Switch away from the root WASDK package to the smaller WinUI package

Open
#32,232 3 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

platform/windows s/triaged t/desktop
Dominant language
C#
Stars
23.3k
Forks
2k
Avg merge
1d 14h
Merged PRs (30d)
296

Description

As part of the Windows App SDK 1.8 changes, the team split up the package into several smaller ones. For example, there are:

[!NOTE]
One observation is that the root WASDK has an = dependency, but the sub packages do not. This means that if a project references WASDK, the dependencies can't have different versions anywhere else.

This is a working issue and I will update as we find/discuss.

Pros (so far)

  • Apps should be smaller as not everything is included
  • Apps could use a different version of different parts of WASDK

Cons (so far)

  • It is different to what we know works
  • The ecosystem may not be ready
    • Win2D is using an older 1.6 version of WASDK, so if we use WinUI, we will end up with WASDK 1.6 AND WinUI 1.8+
    • Third Party libraries are similar in that they may be targeting MAUI and WASDK 1.7 but MAUI now would be WinUI 1.8 - making BOTH packages reach the app
  • It may need evaluation to see what we should include by default to make most things work out the box
  • The API will be reduced, so we may have customers expecting the AI/ML/Widgets APIs available.
  • Are the components meant to work with a pick-and-choose versions?

Summary (so far)

This is a good change, but needs more discussion to fully ensure it is a non-breaking change.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the current Windows App SDK package references and the compatibility questions listed in the issue, then compare them with the smaller WinUI package and related version constraints. Done means the project has a decided, non-breaking package strategy; this issue names no files or tests, so implementation entry points are not specified.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.