Skip to content

FI: main to release/dev/monobuild#6549

Merged
kythant merged 17 commits into
release/dev/monobuildfrom
user/kythant/FIMonobuild060826
Jun 9, 2026
Merged

FI: main to release/dev/monobuild#6549
kythant merged 17 commits into
release/dev/monobuildfrom
user/kythant/FIMonobuild060826

Conversation

@kythant

@kythant kythant commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

A microsoft employee must use /azp run to validate using the pipelines below.

WARNING:
Comments made by azure-pipelines bot maybe inaccurate.
Please see pipeline link to verify that the build is being ran.

For status checks on the main branch, please use TransportPackage-Foundation-PR
(https://microsoft.visualstudio.com/ProjectReunion/_build?definitionId=81063&_a=summary)
and run the build against your PR branch with the default parameters.

v-arlysenko and others added 16 commits May 14, 2026 16:50
…try package removal (#6474)

* Fix flaky InstallerFunctionalTests: retry package removal and block on setup failure

- Add retry logic (3 attempts, 1s delay) to RemovePackage() for transient
  'package in use' errors
- Add VerifyAllPackagesRemoved() to detect when removal silently fails
- MethodInit now blocks the test with a clear setup error message instead
  of letting it proceed and fail misleadingly
- MethodUninit logs a warning on incomplete cleanup

Fixes AB#61461238

* Address review: increase retry to 5 attempts x 5s (25s total)
…ary (#6462)

* Automate Patch and Revision versions using Azure DevOps Variable Library

Add version automation to the Open (Foundation) repo, mirroring the pattern
from the Aggregator repo. Uses a separate '{MajorVersion}-Foundation-Versions'
Library to track PatchVersion and Revision across builds.

- Add WindowsAppSDK-VersionVariables.yml to load version vars from Library
- Add WindowsAppSDK-UpdateLibrary-Job.yml to bump versions after official builds
- Update Official/PR/Nightly pipelines to include version templates
- Update PackTransportPackage to use Library-based versioning for official builds
- Patch only bumps on official builds (not PR or Nightly)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove the system.debug, since parameters.debug is empty

* Change name of pipeline run

* Respond to Agne 1

* Revert the change to depending on Publish

---------

Co-authored-by: Chris Wall (WIN SDE) <chriwall@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This PR adds/updates the WinUI App templates:
1. Add WinUI templates for `dotnet new`
2. Add 3 new templates for Visual Studio: 
    - WinUI Navigation App
    - WinUI TabView App
    - WinUI MVVM App
3. Add guidelines and scripts for local build
…ediate paths (#6496)

Fix pipeline build error VSSDK1300 in CreateVsix: shorten Dev17 VSIX intermediate paths

Long project names plus deep VSSDK extraction paths exceed MAX_PATH on CI.

Alias Cpp17/Cs17 saves ~27 chars per path; restores headroom for new assets.
#6378)

* ApplicationData: Refactor to dual-type pattern for packaged/unpackaged

Replace runtime branching (if m_unpackagedApplicationData) with separate
WinRT implementation types. Both ApplicationData and UnpackagedApplicationData
now derive directly from ApplicationDataT, and the factory constructs the
appropriate type. Same pattern applied to ApplicationDataContainer.

This eliminates 17+ repeated if-checks, removes the shared_ptr indirection
for containers, and makes each type self-contained with no branching.

* Add [[maybe_unused]] to parameters in UnpackagedApplicationData

Updated function signatures to use [[maybe_unused]] for unused parameters.

---------

Co-authored-by: agniuks <41223743+agniuks@users.noreply.github.com>
Replace inferring packaged state from GetDefaultPriFileForCurrentPackage's
HRESULT with AppModel::Identity::IsPackagedProcess() which properly
handles GetCurrentPackageFullName errors.
…KAggregator (#6436)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/WindowsAppSDKAggregator build 2.0.4-dev.experimental1
On relative base path root
Microsoft.WindowsAppSDK.Base From Version 2.0.3-dev.experimental1 -> To Version 2.0.4-dev.experimental1

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/WindowsAppSDKAggregator build 2.0.6-dev.experimental1
On relative base path root
Microsoft.WindowsAppSDK.Base From Version 2.0.3-dev.experimental1 -> To Version 2.0.6-dev.experimental1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: agniuks <41223743+agniuks@users.noreply.github.com>
* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260424.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1867.260423-1637.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260424.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260426.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1868.260426-1435.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260426.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260429.2
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1869.260429-1555.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260429.2

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260503.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1870.260503-1615.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260503.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260507.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1871.260506-1640.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260507.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260508.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1872.260508-1632.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260508.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260510.3
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1873.260510-1146.2
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260510.3

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260513.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1874.260513-0830.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260513.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260518.2
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1876.260518-0915.1
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260518.2

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260522.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1877.260521-1650.1
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260522.1

* Update dependencies from https://dev.azure.com/microsoft/LiftedIXP/_git/DCPP build 20260525.1
On relative base path root
Microsoft.FrameworkUdk , Microsoft.ProjectReunion.InteractiveExperiences.TransportPackage From Version 3.0.0-experimental-27300.1866.260419-1600.1 -> To Version 3.0.0-experimental-27300.1878.260525-0800.0
Microsoft.WindowsAppSDK.InteractiveExperiences From Version 3.0.0-experimental-Rolling.20260419.2 -> To Version 3.0.0-experimental-Rolling.20260525.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: agniuks <41223743+agniuks@users.noreply.github.com>
…roj vstemplates (#6501)

* Add missing AppIcon.ico entry to SingleProjectPackagedApp vstemplate

The .vstemplate was missing the AppIcon.ico ProjectItem in its Assets
folder, so Visual Studio never copied the icon into new projects created
from this template, causing APPX0702 build errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add missing AppIcon.ico entry to BlankApp (wapproj) vstemplate

Same issue as SingleProjectPackagedApp: the .vstemplate was missing the
AppIcon.ico ProjectItem, so Visual Studio never copied the icon into new
projects created from this template, causing APPX0702 build errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…x CS0017 when building the template project in VS (#6520)
…ly pre-prune + cpp-local release enum) (#6534)

Implements the foundation half of the Containment v2 design proposal
(specs/design/RuntimeCompatibilityContainmentV2.md, merged via the ADO
mirror): a WASDK-owned per-release catalog whose disabled-list pruning
runs in RuntimeCompatibilityOptions::Apply, decoupling servicing
engineers from naming a target release version at the callsite.

This PR is intentionally scoped to the WASDK side. The FrameworkUdk
worker keeps doing its existing scan over the disabled-changes list
that SetConfiguration receives - the only thing it sees that's new is
that the list is now sorted ascending. FrUdk-side changes (worker
binary_search + the WinAppSDKPatchVersion enum deprecation) ship in
companion PR microsoft.visualstudio.com/OS/_git/os.2020/pullrequest/15764977.

Centralizing the patch-version enum
-----------------------------------
The WinAppSDK release-version enum (and its constexpr helper) is now
**file-local** to RuntimeCompatibilityOptions.cpp - a private
WinAppSDKReleaseVersion in the .cpp's anonymous namespace, named to
sidestep the visible-name collision with the still-unscoped legacy
WinAppSDKPatchVersion type that FrUdk's header exports. Goals:

  * Servicing engineers using IsChangeEnabled<id>() (1-arg form) never
    name a release version anywhere in their code.
  * Release engineers add new enumerators only inside Apply's .cpp -
    no public header changes, no API review.
  * The dependency from WindowsAppSDK release engineering onto the
    FrameworkUdk header's enum is broken. FrUdk's
    WinAppSDKPatchVersionDeprecated (the renamed legacy enum) carries
    only a frozen sentinel set and is no longer maintained per WASDK
    release.

On `main` the enum carries only the two sentinel values
(WinAppSDK_Latest = 999999999 and WinAppSDK_Security = 0) and the
production catalog is empty. Release engineering populates per-release
enumerators and groups at branch cut.

What changed
------------
* dev/RuntimeCompatibilityOptions/RuntimeCompatibilityOptions.cpp
  - New file-local WinAppSDKReleaseVersionFromValues + scoped enum
    WinAppSDKReleaseVersion in the anonymous namespace. Mirrors the
    selected patch level into config.patchVersion via decltype so the
    cast remains portable across FrUdk's pre- and post-deprecation enum
    shapes (the second cast keeps Containment_SetConfiguration's
    identity-divergence check working).
  - CatalogGroup + MakeGroup helpers, two catalog arrays
    (s_catalogGroupsProd, empty on main; s_catalogGroupsTest with
    two synthetic groups straddling WinAppSDK_Latest).
  - ContainmentTestInitialize(bool) swaps the active catalog at
    test setup time.
  - Apply() now builds a single sorted disabledChanges vector from
    the union of the apps explicit DisabledChanges list and every
    catalog group whose releaseVersion > effective patchVersion.
  - Apply() guards both PatchLevel branches against the {0,0,0}
    default sentinel that would otherwise collapse config.patchVersion
    to 0 in dev builds where WINDOWSAPPSDK_RELEASE_MAJOR/MINOR=0/0.

* dev/WindowsAppRuntime_DLL/WindowsAppRuntime.def
  - Exports ContainmentTestInitialize from
    Microsoft.WindowsAppRuntime.dll for the test catalog swap.

* test/Compatibility/CompatibilityTests/CompatibilityTests.cpp
  - New helper resolves ContainmentTestInitialize via
    GetModuleHandleW/GetProcAddress on the bootstrap-loaded
    framework copy of Microsoft.WindowsAppRuntime.dll (a static
    import would resolve to a test-folder copy with the production
    catalog and the swap would have no effect).
  - Calls ContainmentTestInitialize(true) at TEST_METHOD_SETUP and
    (false) at TEST_METHOD_CLEANUP.
  - Adds VerifyCatalogPrePrunesByPatchLevel and
    VerifyCatalogAndExplicitDisabledChangesCombine to exercise both
    branches of Applys pre-prune walk and the union with explicit
    DisabledChanges.

* test/Compatibility/CompatibilityTests/CompatibilityTests.vcxproj
  - Adds delayimp.lib + <DelayLoadDLLs>Microsoft.WindowsAppRuntime.dll
    so the (defensive) static import on ContainmentTestInitialize does
    not force the loader to find a copy at TE.exe startup. Currently
    emits LNK4199 ... no imports found which is the desired state.

* specs/Compatibility/RuntimeCompatibilityOptions.md
  - Adds a banner pointing at the new authoring model and rollout plan.

* specs/Compatibility/WASDK-ContainmentV2-Plan.md (new)
  - Rollout plan: goals recap, role boundaries, four-PR sequence,
    end-to-end validation status, test-catalog explanation, and the
    notable engineering details (Apply guard, GetModuleHandle approach,
    delay-load rationale, enum localization rationale).

Validation
----------
End-to-end CompatibilityTests pass against locally-built and -installed
framework MSIXes in both worktrees:
  * main worktree (catalog empty): 6/6 pass.
  * release/2.0-stable worktree (catalog populated with 8 production
    IDs across WinAppSDK_2_1_0 and WinAppSDK_2_1_5 groups): 6/6 pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… WindowsAppSDKSelfContained (#6490)

* cmake modifications

* change

* move appxmanifest generation to base and add property validation

---------

Co-authored-by: Scott Jones <sjones@microsoft.com>
Adds `WindowsAppSDK-Templates-PR` to validate changes under `dev/Templates/`.
For developers to check if their changes would break the build of WinUI templates.

**What it runs**
- Build a dotnet new templates NuGet of the changed code for local tests (no signing, no publish)
- Builds 4 VSIXes (Cs/Cpp x Standalone/Component) of the changed code against the latest nightly nupkg from `main`.
@kythant

kythant commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines failed to run 2 pipeline(s).

@kythant

kythant commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s), but failed to run 1 pipeline(s).

@kythant

kythant commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s), but failed to run 1 pipeline(s).

@kythant

kythant commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s), but failed to run 1 pipeline(s).

@kythant

kythant commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s), but failed to run 1 pipeline(s).

@kythant

kythant commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s), but failed to run 1 pipeline(s).

@kythant
kythant force-pushed the user/kythant/FIMonobuild060826 branch from baf3e99 to 44902a6 Compare June 9, 2026 01:06
Combines 4 fixup commits applied on top of the FI merge:
  - 78c7b68 Merge Conflict Fix: Duplicate Name in Foundation-PR
  - cd7d429 Merge Conflict Fix: /WindowsAppSDK-BuildVSIX-Steps.yml
  - c7dc6b3 Use Latest Nightly for Installer and VSIX artifacts
  - baf3e99 Update ArtifactName to WindowsAppSDK-NuGet-And-MSIX

Files:
  build/WindowsAppSDK-Foundation-PR.yml: remove duplicate name: directive
    introduced by auto-merge.
  build/AzurePipelinesTemplates/WindowsAppSDK-BuildVSIX-Steps.yml: revert
    artifactName to ${{ parameters.artifactName }}; restore Latest Nightly
    download configuration (project/runVersion/runBranch).
  build/AzurePipelinesTemplates/WindowsAppSDK-BuildInstaller-Steps.yml:
    align Installer download with VSIX Latest Nightly behavior.
@kythant
kythant force-pushed the user/kythant/FIMonobuild060826 branch from 44902a6 to 4c16568 Compare June 9, 2026 01:07
@kythant

kythant commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s), but failed to run 1 pipeline(s).

@kythant
kythant enabled auto-merge June 9, 2026 02:02
@kythant
kythant merged commit d7a32c5 into release/dev/monobuild Jun 9, 2026
49 checks passed
@kythant
kythant deleted the user/kythant/FIMonobuild060826 branch June 9, 2026 03:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants