From 9b4fbff1a2498ea4051c468fe325cf08579ec285 Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Fri, 24 Mar 2023 08:31:17 -0500 Subject: [PATCH] Consolidate our MSIX distribution back down to one package (#15031) We ship a separate package to Windows 10, which contains a copy of XAML embedded in it, because of a bug in activating classes from framework packages while we're elevated. We did this to avoid wasting disk space on Windows 11 installs (which is critical given that we're preinstalled in the Windows image.) The fix for this issue was released in a servicing update in April 2022. Thanks to KB5011831, we no longer need this workaround! And finally, this means that we no longer need to depend on a copy of "pre-release" XAML. We only did that because it would copy all of its assets into our package. Introduced in #12560 Closes #14106 Closes (discussion) #14981 Reverts #14660 (cherry picked from commit f5e9e8ea77a09f63043a0d0f4eb515adc5728702) Service-Card-Id: 88600517 Service-Version: 1.17 --- build/packages.config | 2 - build/pipelines/release.yml | 66 ++++++------------- .../Patch-ManifestsToWindowsVersion.ps1 | 14 ---- common.openconsole.props | 18 ----- custom.props | 12 ---- dep/nuget/packages.config | 2 +- .../SettingsModel.LocalTests.vcxproj | 12 +--- .../TerminalApp.LocalTests.vcxproj | 12 +--- .../TestHostApp/TestHostApp.vcxproj | 4 +- .../TerminalApp/TerminalAppLib.vcxproj | 1 - src/cascadia/TerminalApp/packages.config | 4 -- ...Microsoft.Terminal.Settings.Editor.vcxproj | 1 - .../TerminalSettingsEditor/packages.config | 4 -- .../CascadiaSettings.cpp | 7 +- .../WindowsTerminal/WindowsTerminal.vcxproj | 3 - src/cascadia/WindowsTerminal/packages.config | 4 -- .../ut_app/TerminalApp.UnitTests.vcxproj | 7 -- src/common.nugetversions.targets | 4 +- 18 files changed, 29 insertions(+), 148 deletions(-) delete mode 100644 build/scripts/Patch-ManifestsToWindowsVersion.ps1 delete mode 100644 src/cascadia/TerminalApp/packages.config delete mode 100644 src/cascadia/TerminalSettingsEditor/packages.config delete mode 100644 src/cascadia/WindowsTerminal/packages.config diff --git a/build/packages.config b/build/packages.config index 96481841311..ceadd04ac2c 100644 --- a/build/packages.config +++ b/build/packages.config @@ -3,8 +3,6 @@ - - diff --git a/build/pipelines/release.yml b/build/pipelines/release.yml index 2fd0f8757db..3f8684c70fe 100644 --- a/build/pipelines/release.yml +++ b/build/pipelines/release.yml @@ -56,11 +56,6 @@ parameters: - x64 - x86 - arm64 - - name: buildWindowsVersions - type: object - default: - - Win10 - - Win11 variables: MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\MakeAppx.exe' @@ -87,13 +82,6 @@ variables: NuGetPackBetaVersion: preview ${{ elseif eq(variables['Build.SourceBranchName'], 'main') }}: NuGetPackBetaVersion: experimental - # The NuGet packages have to use *somebody's* DLLs. We used to force them to - # use the Win10 build outputs, but if there isn't a Win10 build we should use - # the Win11 one. - ${{ if containsValue(parameters.buildWindowsVersions, 'Win10') }}: - TerminalBestVersionForNuGetPackages: Win10 - ${{ else }}: - TerminalBestVersionForNuGetPackages: Win11 name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr) resources: @@ -107,11 +95,9 @@ jobs: matrix: ${{ each config in parameters.buildConfigurations }}: ${{ each platform in parameters.buildPlatforms }}: - ${{ each windowsVersion in parameters.buildWindowsVersions }}: - ${{ config }}_${{ platform }}_${{ windowsVersion }}: - BuildConfiguration: ${{ config }} - BuildPlatform: ${{ platform }} - TerminalTargetWindowsVersion: ${{ windowsVersion }} + ${{ config }}_${{ platform }}: + BuildConfiguration: ${{ config }} + BuildPlatform: ${{ platform }} displayName: Build timeoutInMinutes: 240 cancelTimeoutInMinutes: 1 @@ -185,10 +171,6 @@ jobs: arguments: -MarkdownNoticePath .\NOTICE.md -OutputPath .\src\cascadia\CascadiaPackage\NOTICE.html pwsh: true - ${{ if eq(parameters.buildTerminal, true) }}: - - pwsh: |- - ./build/scripts/Patch-ManifestsToWindowsVersion.ps1 -NewWindowsVersion "10.0.22000.0" - displayName: Update manifest target version to Win11 (if necessary) - condition: and(succeeded(), eq(variables['TerminalTargetWindowsVersion'], 'Win11')) - task: VSBuild@1 displayName: Build solution **\OpenConsole.sln condition: true @@ -205,7 +187,7 @@ jobs: continueOnError: True inputs: PathtoPublish: $(Build.SourcesDirectory)\msbuild.binlog - ArtifactName: binlog-$(BuildPlatform)-$(TerminalTargetWindowsVersion) + ArtifactName: binlog-$(BuildPlatform) - task: PowerShell@2 displayName: Check MSIX for common regressions inputs: @@ -297,7 +279,7 @@ jobs: displayName: Publish Artifact (appx) inputs: PathtoPublish: $(Build.ArtifactStagingDirectory)/appx - ArtifactName: appx-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion) + ArtifactName: appx-$(BuildPlatform)-$(BuildConfiguration) - ${{ if eq(parameters.buildConPTY, true) }}: - task: CopyFiles@2 displayName: Copy ConPTY to Artifacts @@ -315,7 +297,7 @@ jobs: displayName: Publish Artifact (ConPTY) inputs: PathtoPublish: $(Build.ArtifactStagingDirectory)/conpty - ArtifactName: conpty-dll-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion) + ArtifactName: conpty-dll-$(BuildPlatform)-$(BuildConfiguration) - ${{ if eq(parameters.buildWPF, true) }}: - task: CopyFiles@2 displayName: Copy PublicTerminalCore.dll to Artifacts @@ -329,7 +311,7 @@ jobs: displayName: Publish Artifact (PublicTerminalCore) inputs: PathtoPublish: $(Build.ArtifactStagingDirectory)/wpf - ArtifactName: wpf-dll-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion) + ArtifactName: wpf-dll-$(BuildPlatform)-$(BuildConfiguration) - task: PublishSymbols@2 displayName: Publish symbols path @@ -347,11 +329,6 @@ jobs: - ${{ if eq(parameters.buildTerminal, true) }}: - job: BundleAndSign - strategy: - matrix: - ${{ each windowsVersion in parameters.buildWindowsVersions }}: - ${{ windowsVersion }}: - TerminalTargetWindowsVersion: ${{ windowsVersion }} displayName: Create and sign AppX/MSIX bundles variables: ${{ if eq(parameters.branding, 'Release') }}: @@ -373,9 +350,9 @@ jobs: disableOutputRedirect: true - ${{ each platform in parameters.buildPlatforms }}: - task: DownloadBuildArtifacts@0 - displayName: Download Artifacts ${{ platform }} $(TerminalTargetWindowsVersion) + displayName: Download Artifacts ${{ platform }} inputs: - artifactName: appx-${{ platform }}-Release-$(TerminalTargetWindowsVersion) + artifactName: appx-${{ platform }}-Release # Add 3000 to the major version component, but only for the bundle. # This is to ensure that it is newer than "2022.xx.yy.zz" or whatever the original bundle versions were before # we switched to uniform naming. @@ -385,7 +362,7 @@ jobs: $Components[0] = ([int]$Components[0] + $VersionEpoch) $BundleVersion = $Components -Join "." New-Item -Type Directory "$(System.ArtifactsDirectory)\bundle" - .\build\scripts\Create-AppxBundle.ps1 -InputPath "$(System.ArtifactsDirectory)" -ProjectName CascadiaPackage -BundleVersion $BundleVersion -OutputPath "$(System.ArtifactsDirectory)\bundle\$(BundleStemName)_$(TerminalTargetWindowsVersion)_$(XES_APPXMANIFESTVERSION)_8wekyb3d8bbwe.msixbundle" + .\build\scripts\Create-AppxBundle.ps1 -InputPath "$(System.ArtifactsDirectory)" -ProjectName CascadiaPackage -BundleVersion $BundleVersion -OutputPath "$(System.ArtifactsDirectory)\bundle\$(BundleStemName)_$(XES_APPXMANIFESTVERSION)_8wekyb3d8bbwe.msixbundle" displayName: Create WindowsTerminal*.msixbundle - task: EsrpCodeSigning@1 displayName: Submit *.msixbundle to ESRP for code signing @@ -426,7 +403,7 @@ jobs: displayName: 'Publish Artifact: appxbundle-signed' inputs: PathtoPublish: $(System.ArtifactsDirectory)\bundle - ArtifactName: appxbundle-signed-$(TerminalTargetWindowsVersion) + ArtifactName: appxbundle-signed - ${{ if eq(parameters.buildConPTY, true) }}: - job: PackageAndSignConPTY @@ -451,7 +428,7 @@ jobs: - task: DownloadBuildArtifacts@0 displayName: Download ${{ platform }} ConPTY binaries inputs: - artifactName: conpty-dll-${{ platform }}-$(BuildConfiguration)-$(TerminalBestVersionForNuGetPackages) + artifactName: conpty-dll-${{ platform }}-$(BuildConfiguration) downloadPath: bin\${{ platform }}\$(BuildConfiguration)\ extractTars: false - task: PowerShell@2 @@ -542,7 +519,7 @@ jobs: - task: DownloadBuildArtifacts@0 displayName: Download ${{ platform }} PublicTerminalCore inputs: - artifactName: wpf-dll-${{ platform }}-$(BuildConfiguration)-$(TerminalBestVersionForNuGetPackages) + artifactName: wpf-dll-${{ platform }}-$(BuildConfiguration) itemPattern: '**/*.dll' downloadPath: bin\${{ platform }}\$(BuildConfiguration)\ extractTars: false @@ -640,11 +617,10 @@ jobs: # Download the appx-PLATFORM-CONFIG-VERSION artifact for every platform/version combo - ${{ each platform in parameters.buildPlatforms }}: - - ${{ each windowsVersion in parameters.buildWindowsVersions }}: - - task: DownloadBuildArtifacts@0 - displayName: Download Symbols ${{ platform }} ${{ windowsVersion }} - inputs: - artifactName: appx-${{ platform }}-Release-${{ windowsVersion }} + - task: DownloadBuildArtifacts@0 + displayName: Download Symbols ${{ platform }} + inputs: + artifactName: appx-${{ platform }}-Release # It seems easier to do this -- download every appxsym -- then enumerate all the PDBs in the build directory for the # public symbol push. Otherwise, we would have to list all of the PDB files one by one. @@ -704,7 +680,7 @@ jobs: - task: DownloadBuildArtifacts@0 displayName: Download Build Artifacts inputs: - artifactName: appxbundle-signed-Win11 + artifactName: appxbundle-signed extractTars: false - task: PowerShell@2 displayName: Rename and stage packages for vpack @@ -713,7 +689,7 @@ jobs: script: >- # Rename to known/fixed name for Windows build system - Get-ChildItem Microsoft.WindowsTerminal_Win11_*.msixbundle | Rename-Item -NewName { 'Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle' } + Get-ChildItem Microsoft.WindowsTerminal_*.msixbundle | Rename-Item -NewName { 'Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle' } # Create vpack directory and place item inside @@ -721,13 +697,13 @@ jobs: mkdir WindowsTerminal.app mv Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle .\WindowsTerminal.app\ - workingDirectory: $(System.ArtifactsDirectory)\appxbundle-signed-Win11 + workingDirectory: $(System.ArtifactsDirectory)\appxbundle-signed - task: PkgESVPack@12 displayName: 'Package ES - VPack' env: SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: - sourceDirectory: $(System.ArtifactsDirectory)\appxbundle-signed-Win11\WindowsTerminal.app + sourceDirectory: $(System.ArtifactsDirectory)\appxbundle-signed\WindowsTerminal.app description: VPack for the Windows Terminal Application pushPkgName: WindowsTerminal.app owner: conhost diff --git a/build/scripts/Patch-ManifestsToWindowsVersion.ps1 b/build/scripts/Patch-ManifestsToWindowsVersion.ps1 deleted file mode 100644 index fe86f24fd8c..00000000000 --- a/build/scripts/Patch-ManifestsToWindowsVersion.ps1 +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT license. - -Param( - [string]$NewWindowsVersion = "10.0.22000.0" -) - -Get-ChildItem src/cascadia/CascadiaPackage -Recurse -Filter *.appxmanifest | ForEach-Object { - $xml = [xml](Get-Content $_.FullName) - $xml.Package.Dependencies.TargetDeviceFamily | Where-Object Name -Like "Windows*" | ForEach-Object { - $_.MinVersion = $NewWindowsVersion - } - $xml.Save($_.FullName) -} diff --git a/common.openconsole.props b/common.openconsole.props index f6eb4c7c94d..c8f43e3602f 100644 --- a/common.openconsole.props +++ b/common.openconsole.props @@ -10,22 +10,4 @@ $(MSBuildThisFileDirectory) - - - 2.7.3-prerelease.220816001 - - 2.7.3 - - diff --git a/custom.props b/custom.props index 16a9b729103..046ad593919 100644 --- a/custom.props +++ b/custom.props @@ -2,18 +2,6 @@ - - $([MSBuild]::Add($(VersionBuildRevision), 1)) - true 2022 1 diff --git a/dep/nuget/packages.config b/dep/nuget/packages.config index 935d004a72d..c9049f96e1a 100644 --- a/dep/nuget/packages.config +++ b/dep/nuget/packages.config @@ -8,7 +8,7 @@ - + diff --git a/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj b/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj index 771e5e33d52..6497d70cf96 100644 --- a/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj +++ b/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj @@ -20,6 +20,7 @@ DynamicLibrary true + true @@ -99,15 +100,4 @@ - - - - x86 - $(Platform) - <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.$(TerminalMUXVersion)\runtimes\win10-$(Native-Platform)\native\" - - - - - diff --git a/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj b/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj index f60d2a4f679..e5a00d2d892 100644 --- a/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj +++ b/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj @@ -23,6 +23,7 @@ + true @@ -85,15 +86,4 @@ - - - - x86 - $(Platform) - <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.$(TerminalMUXVersion)\runtimes\win10-$(Native-Platform)\native\" - - - - - diff --git a/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj b/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj index d51a96986af..9e2029c9bcc 100644 --- a/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj +++ b/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj @@ -16,6 +16,8 @@ true false + true + diff --git a/src/cascadia/TerminalApp/packages.config b/src/cascadia/TerminalApp/packages.config deleted file mode 100644 index e151e41548d..00000000000 --- a/src/cascadia/TerminalApp/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj index 754c492bc6e..93db4ca918e 100644 --- a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj +++ b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj @@ -353,7 +353,6 @@ - diff --git a/src/cascadia/TerminalSettingsEditor/packages.config b/src/cascadia/TerminalSettingsEditor/packages.config deleted file mode 100644 index 0661e593971..00000000000 --- a/src/cascadia/TerminalSettingsEditor/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp b/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp index 42ec1d28725..a88f06915e9 100644 --- a/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp +++ b/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp @@ -1015,12 +1015,7 @@ winrt::hstring CascadiaSettings::ApplicationVersion() { const auto package{ winrt::Windows::ApplicationModel::Package::Current() }; const auto version{ package.Id().Version() }; - // As of about 2022, the ones digit of the Build of our version is a - // placeholder value to differentiate the Windows 10 build from the - // Windows 11 build. Let's trim that out. For additional clarity, - // let's omit the Revision, which _must_ be .0, and doesn't provide any - // value to report. - winrt::hstring formatted{ wil::str_printf(L"%u.%u.%u", version.Major, version.Minor, version.Build / 10) }; + winrt::hstring formatted{ wil::str_printf(L"%u.%u.%u.%u", version.Major, version.Minor, version.Build, version.Revision) }; return formatted; } CATCH_LOG(); diff --git a/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj b/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj index cd555c70499..3c42c7e3980 100644 --- a/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj +++ b/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj @@ -75,9 +75,6 @@ - - - - x86 - $(Platform) - <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.$(TerminalMUXVersion)\runtimes\win10-$(Native-Platform)\native\" - - - + @@ -86,7 +86,7 @@ - +