-
Notifications
You must be signed in to change notification settings - Fork 228
Support maui/android/ios workload manifests for source build #3897
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support maui/android/ios workload manifests for source build #3897
Conversation
|
There was a problem hiding this 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.
...oft.net.sdk.macos.manifest-10.0.100-preview.6/15.5.10415-net10-p6/data/WorkloadManifest.json
Outdated
Show resolved
Hide resolved
...osoft.net.sdk.ios.manifest-10.0.100-preview.6/18.5.10415-net10-p6/data/WorkloadManifest.json
Outdated
Show resolved
Hide resolved
...soft.net.sdk.tvos.manifest-10.0.100-preview.6/18.5.10415-net10-p6/data/WorkloadManifest.json
Outdated
Show resolved
Hide resolved
...t.sdk.maccatalyst.manifest-10.0.100-preview.6/18.5.10415-net10-p6/data/WorkloadManifest.json
Outdated
Show resolved
Hide resolved
MichaelSimons
left a comment
There was a problem hiding this 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.
|
@jonathanpeppers - Since you've been updating the maui versions, these changes are relevant to you. The recommendation is to now apply these changes in Let me know if more clarity is needed in comments as far as what needs to be done. |
....sdk.android.manifest-10.0.100-preview.6/36.0.0-preview.6.169/data/WorkloadDependencies.json
Outdated
Show resolved
Hide resolved
Updates SBRP to reflect new manifest versions
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.