Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@mthalman
Copy link
Member

@mthalman mthalman commented Dec 15, 2025

Contributes to dotnet/source-build#3242

This supports these workload manifests by adding them as text-only packages to SBRP. Then it was just a matter of enabling them in a source-only configuration by removing the condition that excluded them.

While there is cost associated with maintaining these packages in SBRP, that is limited to just the preview part of the release cycle. After GA, the versions will be static.

The alternative to using SBRP is adding the maui, android, and macios repos to the VMR and building the workload manifest packages as part of the build. But this is particularly costly, particularly for the android and macios repos, as they don't follow standard arcade build processes. Instead they have custom logic in Makefiles which dynamically generate the content files that get included in the packages. This dynamic behavior has a number of dependency that are not source-build compatible and would require a fair amount of effort and coordination.

Copilot AI review requested due to automatic review settings December 15, 2025 20:50
@dotnet-policy-service dotnet-policy-service bot requested review from a team December 15, 2025 20:50
@mthalman mthalman changed the title Support maui/android/ios workloads for source build Support maui/android/ios workload manifests for source build Dec 15, 2025
@mthalman
Copy link
Member Author

[root@382e365ea858 extracted-dotnet-sdk]# ./dotnet workload search

Workload ID                 Description
---------------------------------------------------------------------------------------
android                     .NET SDK Workload for building Android applications.
android-net8                .NET SDK Workload for building .NET 8 Android applications.
macos                       .NET SDK Workload for building macOS applications.
maui-android                .NET MAUI SDK for Android
maui-tizen                  .NET MAUI SDK for Tizen
maui-windows                .NET MAUI SDK for Windows
wasi-experimental           .NET WASI experimental tooing for net10.0
wasi-experimental-net8      .NET WASI experimental
wasi-experimental-net9      .NET WASI experimental tooing for net9.0
wasm-experimental           .NET WebAssembly experimental tooling for net10.0
wasm-experimental-net7      .NET WebAssembly experimental tooling for net7.0
wasm-experimental-net8      .NET WebAssembly experimental tooling for net8.0
wasm-experimental-net9      .NET WebAssembly experimental tooling for net9.0
wasm-tools                  .NET WebAssembly build tools for net10.0
wasm-tools-net6             .NET WebAssembly build tools for net6.0
wasm-tools-net7             .NET WebAssembly build tools for net7.0
wasm-tools-net8             .NET WebAssembly build tools for net8.0
wasm-tools-net9             .NET WebAssembly build tools for net9.0

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables MAUI, Android, and iOS workload support for source-build by adding text-only manifest packages to the source-build-reference-packages (SBRP) repository. The changes bypass the need to add the full maui, android, and macios repositories to the Virtual Monolithic Repository (VMR), which would be costly due to their non-standard build processes and dependencies.

Key changes:

  • Added text-only packages for 6 workload manifests (Android, iOS, MacCatalyst, macOS, MAUI, tvOS) with version preview.6
  • Removed Condition="'$(DotNetBuildSourceOnly)' != 'true'" from BundledManifests.targets to enable these workloads in source-only builds
  • Added documentation comment in Versions.props noting that version updates require corresponding SBRP package updates

Reviewed changes

Copilot reviewed 40 out of 47 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
BundledManifests.targets Removed source-only build exclusion condition for all 6 workload manifests
Versions.props Added comment documenting SBRP update requirements for workload manifest versions
microsoft.net.sdk.android.manifest-* Added Android workload text-only package with manifest files, license, and metadata
microsoft.net.sdk.ios.manifest-* Added iOS workload text-only package with manifest files, license, and metadata
microsoft.net.sdk.maccatalyst.manifest-* Added MacCatalyst workload text-only package with manifest files, license, and metadata
microsoft.net.sdk.macos.manifest-* Added macOS workload text-only package with manifest files, license, and metadata
microsoft.net.sdk.maui.manifest-* Added MAUI workload text-only package with manifest files, license, and metadata
microsoft.net.sdk.tvos.manifest-* Added tvOS workload text-only package with manifest files, license, and metadata

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@MichaelSimons MichaelSimons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before closing the related issue, I would like to discuss the possibility of backporting this given the simplicity of the approach.

@mthalman
Copy link
Member Author

@jonathanpeppers - Since you've been updating the maui versions, these changes are relevant to you. The recommendation is to now apply these changes in dotnet/dotnet repo instead of dotnet/sdk. This is because corresponding changes are also going to be need to the dotnet/source-build-reference-packages repo. So you can do it all in one PR with the VMR.

Let me know if more clarity is needed in comments as far as what needs to be done.

@mthalman mthalman enabled auto-merge (squash) December 18, 2025 22:14
@dotnet-policy-service dotnet-policy-service bot requested review from a team December 18, 2025 22:15
@mthalman mthalman merged commit e95364c into dotnet:main Dec 19, 2025
11 checks passed
@mthalman mthalman deleted the dev/mthalman/sb3242-maui-workload-2 branch December 19, 2025 14:39
MichaelSimons pushed a commit to MichaelSimons/dotnet that referenced this pull request Dec 19, 2025
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.

3 participants