Fix MAUI NuGet config pinning when workload feeds fall back - #5302
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
Fallback feed selection in _resolve_manifest_package is tied to the repo-root NuGet.config and can diverge from the NuGet.config discovered/used in CorrelationStaging scenarios, risking incorrect fallback behavior.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR centralizes MAUI workload manifest package resolution (including feed fallback) so commit discovery and workload installation use the same resolved manifest packages and their corresponding feed metadata, preventing NuGet.config pinning mismatches when the latest workload feed lacks mobile manifests.
Changes:
- Introduced
_resolve_manifest_packageto resolve the latest manifest package with a fallback feed and return the feed used. - Updated
_discover_repo_commitsto reuse_resolve_manifest_packageand cache per-feed NuGet flat container bases. - Updated
install_latest_mauito reuse_resolve_manifest_package(and cached results from commit discovery) instead of duplicating fallback logic.
File summaries
| File | Description |
|---|---|
| src/scenarios/shared/mauisharedpython.py | Unifies manifest/feed resolution between commit discovery and workload install to keep workload package selection and NuGet.config pinning consistent across feed fallback. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟢 Approval recommended
The change aligns feed fallback and manifest resolution across discovery/install as intended, with only a minor logging clarity nit noted.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
Summary
Share manifest resolution and feed fallback between commit discovery and workload installation. Read package metadata from the selected feed and reuse the resolved manifests during installation.
After
dotnet12was added, commit discovery found no mobile manifests there and used branch-HEAD NuGet configs. Installation separately fell back todotnet11, so the configs were no longer pinned to the selected package versions.Use the working-directory
NuGet.configfor both initial and fallback feed selection, including staged payloads. Pass this path through commit discovery and use the same config finder for uncached installation.Validation
Internal build 3068838 passed with one Android CoreCLR Release configuration on Pixel8 and one iOS CoreCLR Release configuration on iPhone17 (
onlySanityCheck=true).Internal build 3068905 passed after the config-path correction, with the same two configurations. Both preparation and Helix passed. Logs confirm staged config selection,
dotnet11fallback, three pinned source commits, cached manifest reuse, and successful workload installation.Temporary local regression checks also passed with different repository and staged config feed lists. No test files or temporary pipeline changes remain in the PR diff.