From 5b87dd14b00fe488e10259d9730a42b2a094982b Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 24 Oct 2024 10:03:36 -0400 Subject: [PATCH 01/49] chore: Update to net9 --- Directory.Build.props | 4 ++ Directory.Packages.props | 63 +++++++++--------- .../Uno.Gallery.UITests.csproj | 2 +- .../Platforms/WebAssembly/wwwroot/favicon.ico | Bin 4055 -> 0 bytes Uno.Gallery/Properties/launchSettings.json | 2 +- Uno.Gallery/Uno.Gallery.csproj | 37 +++++----- azure-pipelines.yml | 6 +- build/scripts/android-uitest-run.sh | 4 +- build/scripts/ios-uitest-run.sh | 4 +- build/scripts/wasm-uitest-run.sh | 4 +- build/stage-build-android-mobile.yml | 6 +- build/stage-build-skia-desktop.yml | 4 +- build/stage-build-wasm.yml | 4 +- build/stage-build-windows.yml | 2 +- build/stage-uitests-ios.yml | 2 +- build/stage-uitests-wasm.yml | 2 +- build/templates/dotnet-install-mac.yml | 4 +- build/templates/dotnet-install-windows.yml | 4 +- global.json | 14 ++-- 19 files changed, 88 insertions(+), 80 deletions(-) delete mode 100644 Uno.Gallery/Platforms/WebAssembly/wwwroot/favicon.ico diff --git a/Directory.Build.props b/Directory.Build.props index 8daf56929..95ca52c3a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -11,5 +11,9 @@ PRI257: Ignore default language (en) not being one of the included resources (eg en-us, en-uk) --> $(NoWarn);NU1507;NETSDK1201;PRI257 + + 2.88.9-preview.2.2 + 9.0.1 + diff --git a/Directory.Packages.props b/Directory.Packages.props index 5d8f2537e..8f64e2f4c 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,39 +1,42 @@ - - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + + + + diff --git a/Uno.Gallery.UITests/Uno.Gallery.UITests.csproj b/Uno.Gallery.UITests/Uno.Gallery.UITests.csproj index 19ed83888..0539978d0 100644 --- a/Uno.Gallery.UITests/Uno.Gallery.UITests.csproj +++ b/Uno.Gallery.UITests/Uno.Gallery.UITests.csproj @@ -1,6 +1,6 @@ - net8.0 + net9.0 true diff --git a/Uno.Gallery/Platforms/WebAssembly/wwwroot/favicon.ico b/Uno.Gallery/Platforms/WebAssembly/wwwroot/favicon.ico deleted file mode 100644 index c7db125fea98a17b16a84871ac329c184b15cf21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4055 zcmai$S2WxWx5octFuKvA1kpRujWI-v-l7H3B8X1(-ZB_9S`g7&q7$7cc@2{2y^S6% z(MAnXPQLfMITvTGbF-hd%i34Z`t1z>AOH+Np}=2d0qSr7KoS4|7MB0!I(PuE^|vN0 z{NKD70s!I!01&IEqe@D|K=gN%R9#J3|F8bt06+=w|HcO=ch3O;$4^~Z!4RhFlcu0X z{hWGWt+m7yDT* zC#j;3vSozGDlPVw0+S0h?C5~_Pg)GydL$!{CMx@wL35qECE7!VdXmcaKee5k(L~A) zc$NwGV_5G%4%PyVUl*n1B$3rEv^8{(!GnscF$g&+Nl{o5C%HF(dRG$KTqrM!v<(*p z>w#Fi>{jC-^X$!tpmpZ!)J5(FF$vyR2RMlOIVs+PT6zhb#@!yOFneR|3krBXzoHv?n;KVwWrNW z;B|Rl4B|Ej!)5(RD>kD2;WOr+O6HyA+l=5g_%q{H#(~Qx7wSrW7usz4*dc@ObCfwN zpA+3;{`ejH7g}k!}ZaPdnxUrv~?8rS*7as8H?NE|R>2l35lhy2h#lPhHz3DDG`r3WF_Ol5i8M zeFj(|eCQ8s5?Di`L5L&~D)9IMJ$=AwRFhU@kl6mm7^GkIo#q36Jr9&Ug z?T|)!l$=~e#->*J;PYlXO)at1AJDG6`@{4sR*fm@W?NMyz=pdP9>P;VQbEmOVaO&x zQ}Z>|R;y`O`VRK=<{bh>MdvBck2a~w{{5Be+ICi-y8#`bmQu2A``!`}{IKf|G;87hjjd7N#Kv%BRDam%k$JLh6*~k9%xZlu13tE189bj6 zW-+;^5OA#21yio|XQuwLT58YA;A#CHwjF!e9&8gyw85^VK(i}~R}B5Sy7AAcNyQUx z1{@ydQ0JMP^6=juEqcgyPLuBIS%gmzA9B=HB#i-0IE$>mmn_Ru)~g76DncH&^@$3_ z6$@tSa5#ZdIpG9f25NLoVEunoHZzxLR>*EhSc`^{*e%KPC_BEgODYj4@Cfxk z%##wed?>JguGXm98$EQku`$4dN(nggBM(37(!VCdcA^ z0((J(`5<9~k2F~+B6FZv={4-@uZ1eYHD{W@6=u~-BKhKVL-EU}3wQe!?gv{Ks)+8x zn!H zMlp!{*7Z5!vc~tCt^^L5aHAZ#laR@`XCrcqe2YV+Du-NMZYtO3 zk?{C01QWiPMM3YP9y~@fu=QhB52%$~+?=FyD1L_hge`XWg+%YG@$w{(?~TdJL3aCK zhgo7D*AHS+eY>#Q%*>tRq4u7INEUf-i8%e!+sc;75S4Fg&-(TQFj4VGm@T8t@t$0r zmYl^t$Fn!ugj%mbNZY-;Ct#c58ON8zMWR9aURtcwC!os9BG%^ZXo1C zlXV&`c9wMIHSn@$fe9boKXMe3=>DR&!H7T6g z_?uq1iWPWY0q zsm^jMiRHm$LLb=MpVyI=F{7QM-er|#>gu044K(5J1vpXvL!@D!0dMJEIh(V068{l? z`DrQEm@H;M=AVG8VC!8c%DV6H!Y9}=MvrI~8$>?mD2~Z2csTBmAe^iy%2ZiR^079o zy|}Bp`_WpuVoQ*AX%92!xxkheJa=z$1)r(coCfbajI>EHhV5dN2@ zPjN0|0083jADTKSO~12pG5D9J%ePE8)xy@1rraWx$*T;^rx80>^1>n-_iff$A|wk~ zQtRYEREo472@uCjmZY#|XcS$MAXXv7jOu~EFtYF?6h$4C0QwX+Khtr(ydmAv;n&h~ z(cBW|f5d?p3p$Wq8NIxb?p|Svyt|Z7oO;ts0r5L|1t2kIpK9W-HN{9uQkH!CgZXlt zeppVJk%D_Hf`S8#QCI}5F{&utXAQ#=cc3msS;7jm)mTt47j&cwXGA5aTX*i5uXvQU zspQX+3O7CX(}H@)FC@oN)13e>L`tyU*X5aP z1Y+xjF1W}ZXj(+ATbciOyr!ozcukEX7OWgc;l#^P$2!^8)%wJ5Jo_nC_?0q$Y^G%Y zuORp_$)geyZz`MDXYz)m1^1pC21^t0+sHQI`%VM%HA_nRdU2+9UA+dbPKFN@W#`NJ z!Z8^h+>hkc0YFIFD%|Sj!z5;(ZfOr$RK>_Xb!6}LTl#L5UCnCe&iM$Sff!q=hV zuWY{Ytwd$KeT-Gs5gumW387Oq!YhGixMg9ErmJci`;a3;7EZCzifUr4JW^65W1b9t z+jyw-VLAf+6B7dC7Zh$A%fcg@=bFFra%qs_zi{r&k!1Z|2InsnZJvwc)~$*sJqP_5 z)G$vjQ(&H;D=400Oa|dv+K~3P>`z5oJjE@n8!_^Nm^c2R(JZoUSfre4P%#Z3q4T}Y zh$&=CQHD{_rDFP+dTT^%=-GO>5BawI3FPJ?Q&l_>)x|I30 zecqvDP!o$cs1cp^t#?psRU1z;q(NHcdo1E>OEnJ$SAqRiL-dl>q2$EEie%oJ z4NkPqu9Pf+HlU3qL1&6UCnz7fep;nIe;zH*!>dx&G=&%mAj1%+CqlMPVcJx@^%r^OYyCv^9j^1H&v zLlBb1QP$7oUE~k2p3>ZYm7mpAPAVu{*Cu;ov#i7t8PebcJ@SsIe)e zP_;I@RP5YskW4*dI9XBJ}Bu#Ac%FLI%oE} z>KoKzno|w!1`ZRpAyppS+QdI-_7$a`3S+w!YrEW>qT1x2Sz76Kjx{wlQU+ z(z#YV;{jUrLU6q#0!wW}-cZU#@J|UveX-988#!sfK4qiBZEG!tLh_N2pRVlX{u!g> z-_9tcZ?=3ZV`fx16|^dc0yt1-8teNnV#z{rQnXlTp1G(H&8gwaFk6hKth?jeOe&L@ zojB4rEikt#BTUuX!9;n=_|-gj{Tzupv%;Hk&D9sF=!EN2-ceL0bp@*njQBnwn(bCj zToF-MX1yX}V7}nK#b#iXW(IZYep!`p*Km1D`DiB6B&8$cxX(BskpuE=J07EQI%R|X zgje!-Ix(KXX7T2S>(EKfF73wa_}Sfi{$>XyBzvALW^TotUAW=51<_dtemAmRwpUk3 zVJ_D_+pOl>dv^(5&O8-(MGV+%zziy0mnn3~e|dbIkCQsG5kE`c{!pA%E#@p?a&KkQ z>RRH(O3b{QTzTsm8oVD_dOjxZ{@pQLe~`bkk~0%QO{%dOtts(5G6J2j0*`w#za87mg^c-d z#t3cFl(K!VjEa1|F`2X#=^@7pGo!w{YAoR%?}ge;3JudTru77E0Y_MO9Zrs|z zZZDJ3n+_!7O%cECh)r~>$Z6SFo?T-MzkXhsJy$^(-ep*RD@8ORo4S)jjoYSBetznV z?|_S3NJZIA?i=qBO5f0Q$MBJV^&oM`b*j$b@lm4G*49#|vPGx*fTnB+|3ZTbF|+>W zK1EfYfmAp%GWW}^L;RysOx@}U>XbrkMRp#Jo}~eE&Z}c()dE!>%G~eGDZCpc`iE=6 zACi7J&EHiBEM$!N#i^j&Vc`S{aLEWI!ty;KtZAw%9shY{x7pPCoi3g{C7V5uKoy?W oEr#s?{lOG%UL|322HdAaH|1HfFaIGI3v - + - + - + $(TargetFrameworkOverride) - net8.0-android; - net8.0-ios; - net8.0-maccatalyst; - net8.0-windows10.0.19041; - net8.0-desktop; - net8.0-browserwasm; + net9.0-ios; + net9.0-maccatalyst; + net9.0-windows10.0.19041; + net9.0-desktop; + net9.0-browserwasm; Exe true @@ -68,25 +67,25 @@ - + - + - + iPhone Distribution ios-arm64 - + - + true Apple Distribution: Uno Platform Inc. (PD74CHS9Z5) 3rd Party Mac Developer Installer @@ -99,16 +98,16 @@ Uno Gallery Canary (Catalyst) - + true - + - + @@ -119,7 +118,9 @@ - + + + all runtime; build; native; contentfiles; analyzers diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d07444e53..9aaec180a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -74,7 +74,7 @@ jobs: - name: ApplicationPlatform value: x86 # switch back to x64 once CommunityToolkit.WinUI.UI supports x64 (https://github.com/CommunityToolkit/Lottie-Windows/issues/515#issuecomment-1662305826) - name: BuildTargetFramework - value: net8.0-windows10.0.19041 + value: net9.0-windows10.0.19041 - name: ArtifactName value: Windows - name: VersionCodeOffset @@ -100,12 +100,12 @@ jobs: maxParallel: 2 matrix: iOS: - BuildTargetFramework: net8.0-ios + BuildTargetFramework: net9.0-ios ArtifactName: iOS-mobile ApplicationBuildNumberOffset: 50 BuildCommand: publish Catalyst: - BuildTargetFramework: net8.0-maccatalyst + BuildTargetFramework: net9.0-maccatalyst ArtifactName: Catalyst ApplicationBuildNumberOffset: 50 BuildCommand: build diff --git a/build/scripts/android-uitest-run.sh b/build/scripts/android-uitest-run.sh index 2f80c3dfd..0361d8799 100644 --- a/build/scripts/android-uitest-run.sh +++ b/build/scripts/android-uitest-run.sh @@ -7,7 +7,7 @@ set -x export UNO_UITEST_SCREENSHOT_PATH=$BUILD_ARTIFACTSTAGINGDIRECTORY/screenshots/android export UNO_UITEST_PLATFORM=Android -export UNO_UITEST_ANDROIDAPK_PATH=$BUILD_SOURCESDIRECTORY/Uno.Gallery/bin/Release/net8.0-android/android-x64/com.nventive.uno.ui.demo-Signed.apk +export UNO_UITEST_ANDROIDAPK_PATH=$BUILD_SOURCESDIRECTORY/Uno.Gallery/bin/Release/net9.0-android/android-x64/com.nventive.uno.ui.demo-Signed.apk export UNO_UITEST_PROJECT=$BUILD_SOURCESDIRECTORY/Uno.Gallery.UITests export UNO_UITEST_ANDROID_PROJECT=$BUILD_SOURCESDIRECTORY/Uno.Gallery export UNO_UITEST_BINARY=$BUILD_SOURCESDIRECTORY/Uno.Gallery.UITests/bin/Release/net47/Uno.Gallery.UITests.dll @@ -58,7 +58,7 @@ fi # Build the sample, while the emulator is starting cd $UNO_UITEST_ANDROID_PROJECT -dotnet publish -f net8.0-android -p:TargetFrameworkOverride=net8.0-android -c Release -p:RuntimeIdentifier=android-x64 /p:IsUiAutomationMappingEnabled=True /p:AndroidUseSharedRuntime=false /p:AotAssemblies=false -bl:$BUILD_ARTIFACTSTAGINGDIRECTORY/android-app.binlog +dotnet publish -f net9.0-android -p:TargetFrameworkOverride=net9.0-android -c Release -p:RuntimeIdentifier=android-x64 /p:IsUiAutomationMappingEnabled=True /p:AndroidUseSharedRuntime=false /p:AotAssemblies=false -bl:$BUILD_ARTIFACTSTAGINGDIRECTORY/android-app.binlog mkdir -p $UNO_UITEST_SCREENSHOT_PATH diff --git a/build/scripts/ios-uitest-run.sh b/build/scripts/ios-uitest-run.sh index 84fc6fec2..5344757a2 100644 --- a/build/scripts/ios-uitest-run.sh +++ b/build/scripts/ios-uitest-run.sh @@ -3,7 +3,7 @@ set -euo pipefail IFS=$'\n\t' export UNO_UITEST_PLATFORM=iOS -export UNO_UITEST_IOSBUNDLE_PATH=$BUILD_SOURCESDIRECTORY/Uno.Gallery/bin/Release/net8.0-ios/iossimulator-x64/Uno.Gallery.app +export UNO_UITEST_IOSBUNDLE_PATH=$BUILD_SOURCESDIRECTORY/Uno.Gallery/bin/Release/net9.0-ios/iossimulator-x64/Uno.Gallery.app export UNO_UITEST_SCREENSHOT_PATH=$BUILD_ARTIFACTSTAGINGDIRECTORY/screenshots/ios export UNO_UITEST_PROJECT=$BUILD_SOURCESDIRECTORY/Uno.Gallery.UITests export UNO_UITEST_LOGFILE=$BUILD_ARTIFACTSTAGINGDIRECTORY/screenshots/ios/nunit-log.txt @@ -22,7 +22,7 @@ xcrun simctl list devices --json mkdir -p $UNO_UITEST_SCREENSHOT_PATH/_logs cd $UNO_UITEST_IOS_PROJECT -dotnet build -p:TargetFrameworkOverride=net8.0-ios -r iossimulator-x64 -c Release -p:IsUiAutomationMappingEnabled=True -bl:$BUILD_ARTIFACTSTAGINGDIRECTORY/ios-app.binlog +dotnet build -p:TargetFrameworkOverride=net9.0-ios -r iossimulator-x64 -c Release -p:IsUiAutomationMappingEnabled=True -bl:$BUILD_ARTIFACTSTAGINGDIRECTORY/ios-app.binlog ## ## Pre-install the application to avoid https://github.com/microsoft/appcenter/issues/2389 diff --git a/build/scripts/wasm-uitest-run.sh b/build/scripts/wasm-uitest-run.sh index c25623acb..2e4deaae2 100644 --- a/build/scripts/wasm-uitest-run.sh +++ b/build/scripts/wasm-uitest-run.sh @@ -11,12 +11,12 @@ export UNO_UITEST_PLATFORM=Browser export UNO_UITEST_PROJECT=$BUILD_SOURCESDIRECTORY/Uno.Gallery.UITests export UNO_UITEST_LOGFILE=$BUILD_ARTIFACTSTAGINGDIRECTORY/screenshots/wasm/nunit-log.txt export UNO_UITEST_WASM_PROJECT=$BUILD_SOURCESDIRECTORY/Uno.Gallery/Uno.Gallery.csproj -export UNO_UITEST_WASM_OUTPUT_PATH=$BUILD_SOURCESDIRECTORY/Uno.Gallery/bin/Release/net8.0-browserwasm/dist/ +export UNO_UITEST_WASM_OUTPUT_PATH=$BUILD_SOURCESDIRECTORY/Uno.Gallery/bin/Release/net9.0-browserwasm/dist/ export UITEST_TEST_TIMEOUT=60m cd $BUILD_SOURCESDIRECTORY -dotnet build /r /p:Configuration=Release $UNO_UITEST_WASM_PROJECT -p:TargetFrameworkOverride=net8.0-browserwasm /p:IsUiAutomationMappingEnabled=True /bl:$UNO_UITEST_SCREENSHOT_PATH/msbuild.binlog +dotnet build /r /p:Configuration=Release $UNO_UITEST_WASM_PROJECT -p:TargetFrameworkOverride=net9.0-browserwasm /p:IsUiAutomationMappingEnabled=True /bl:$UNO_UITEST_SCREENSHOT_PATH/msbuild.binlog cd $BUILD_SOURCESDIRECTORY/build mkdir -p tools diff --git a/build/stage-build-android-mobile.yml b/build/stage-build-android-mobile.yml index cc45550d5..924b70993 100644 --- a/build/stage-build-android-mobile.yml +++ b/build/stage-build-android-mobile.yml @@ -12,13 +12,13 @@ steps: - script: | cd $(build.sourcesdirectory)/Uno.Gallery - dotnet publish -f:net8.0-android -c:Release "/p:InformationalVersion=$(GitVersion.InformationalVersion)" /p:AndroidSigningKeyStore=$(keyStore.secureFilePath) /p:AndroidSigningStorePass=$(AndroidSigningStorePass) /p:AndroidSigningKeyPass=$(AndroidSigningKeyPass) /p:AndroidSigningKeyAlias=$(AndroidSigningKeyAlias) /p:AndroidKeyStore=true /bl:$(build.artifactstagingdirectory)/build-$(BuildForPlayStore).binlog + dotnet publish -f:net9.0-android -c:Release "/p:InformationalVersion=$(GitVersion.InformationalVersion)" /p:AndroidSigningKeyStore=$(keyStore.secureFilePath) /p:AndroidSigningStorePass=$(AndroidSigningStorePass) /p:AndroidSigningKeyPass=$(AndroidSigningKeyPass) /p:AndroidSigningKeyAlias=$(AndroidSigningKeyAlias) /p:AndroidKeyStore=true /bl:$(build.artifactstagingdirectory)/build-$(BuildForPlayStore).binlog displayName: 'Build Android Package' condition: eq(variables['System.PullRequest.IsFork'],'False') - script: | cd $(build.sourcesdirectory)/Uno.Gallery - dotnet publish -f:net8.0-android -c:Release "/p:InformationalVersion=$(GitVersion.InformationalVersion)" /p:AndroidKeyStore=False /bl:$(build.artifactstagingdirectory)/build-$(BuildForPlayStore).binlog + dotnet publish -f:net9.0-android -c:Release "/p:InformationalVersion=$(GitVersion.InformationalVersion)" /p:AndroidKeyStore=False /bl:$(build.artifactstagingdirectory)/build-$(BuildForPlayStore).binlog displayName: 'Build Android Package (Fork)' condition: eq(variables['System.PullRequest.IsFork'],'True') @@ -26,7 +26,7 @@ steps: displayName: 'Publish Android netcore Binaries' retryCountOnTaskFailure: 3 inputs: - SourceFolder: $(build.sourcesdirectory)/Uno.Gallery/bin/Release/net8.0-android + SourceFolder: $(build.sourcesdirectory)/Uno.Gallery/bin/Release/net9.0-android Contents: | **/*.aab **/*.apk diff --git a/build/stage-build-skia-desktop.yml b/build/stage-build-skia-desktop.yml index 9dae36f94..ff4a8c29c 100644 --- a/build/stage-build-skia-desktop.yml +++ b/build/stage-build-skia-desktop.yml @@ -4,12 +4,12 @@ steps: - template: templates/canary-updater.yml - bash: | - dotnet build Uno.Gallery/Uno.Gallery.csproj -p:TargetFrameworkOverride=net8.0-desktop -c Release -p:InformationalVersion=$(GitVersion.InformationalVersion) -bl:$(build.artifactstagingdirectory)/build.binlog + dotnet build Uno.Gallery/Uno.Gallery.csproj -p:TargetFrameworkOverride=net9.0-desktop -c Release -p:InformationalVersion=$(GitVersion.InformationalVersion) -bl:$(build.artifactstagingdirectory)/build.binlog - task: CopyFiles@2 displayName: Copy Skia output inputs: - SourceFolder: Uno.Gallery/bin/Release/net8.0-desktop + SourceFolder: Uno.Gallery/bin/Release/net9.0-desktop Contents: '**/*.*' TargetFolder: $(Build.ArtifactStagingDirectory)/bin diff --git a/build/stage-build-wasm.yml b/build/stage-build-wasm.yml index 8aeda6bac..f9979d287 100644 --- a/build/stage-build-wasm.yml +++ b/build/stage-build-wasm.yml @@ -16,12 +16,12 @@ - template: templates/canary-updater.yml - bash: | - dotnet build Uno.Gallery/Uno.Gallery.csproj -c Release -p:TargetFrameworkOverride=net8.0-browserwasm -p:InformationalVersion=$(GitVersion.InformationalVersion) -bl:$(Build.ArtifactStagingDirectory)/wasm.binlog + dotnet build Uno.Gallery/Uno.Gallery.csproj -c Release -p:TargetFrameworkOverride=net9.0-browserwasm -p:InformationalVersion=$(GitVersion.InformationalVersion) -bl:$(Build.ArtifactStagingDirectory)/wasm.binlog - task: CopyFiles@2 displayName: Copy Wasm output inputs: - SourceFolder: Uno.Gallery/bin/Release/net8.0-browserwasm/dist + SourceFolder: Uno.Gallery/bin/Release/net9.0-browserwasm/dist Contents: '**/*.*' TargetFolder: $(Build.ArtifactStagingDirectory) diff --git a/build/stage-build-windows.yml b/build/stage-build-windows.yml index 23a2f8b3d..e87df0c4d 100644 --- a/build/stage-build-windows.yml +++ b/build/stage-build-windows.yml @@ -18,7 +18,7 @@ steps: - script: | cd $(build.sourcesdirectory)/Uno.Gallery - dotnet publish -c Release -f net8.0-windows10.0.19041 -p:TargetFrameworkOverride=net8.0-windows10.0.19041 /p:Platform=$(ApplicationPlatform) /p:AppxPackageDir="Packages/" /p:AppxBundle=Never /p:UapAppxPackageBuildMode=SideloadOnly /p:GenerateAppxPackageOnBuild=true /bl:$(build.artifactstagingdirectory)/build.binlog "/p:InformationalVersion=$(GitVersion.InformationalVersion)" + dotnet publish -c Release -f net9.0-windows10.0.19041 -p:TargetFrameworkOverride=net9.0-windows10.0.19041 /p:Platform=$(ApplicationPlatform) /p:AppxPackageDir="Packages/" /p:AppxBundle=Never /p:UapAppxPackageBuildMode=SideloadOnly /p:GenerateAppxPackageOnBuild=true /bl:$(build.artifactstagingdirectory)/build.binlog "/p:InformationalVersion=$(GitVersion.InformationalVersion)" displayName: Build project for Release - task: CopyFiles@2 diff --git a/build/stage-uitests-ios.yml b/build/stage-uitests-ios.yml index 7395ebacd..11e3f0eec 100644 --- a/build/stage-uitests-ios.yml +++ b/build/stage-uitests-ios.yml @@ -50,6 +50,6 @@ condition: always() retryCountOnTaskFailure: 3 inputs: - PathtoPublish: $(build.sourcesdirectory)/Uno.Gallery/bin/Release/net8.0-ios/iossimulator-x64/Uno.Gallery.app + PathtoPublish: $(build.sourcesdirectory)/Uno.Gallery/bin/Release/net9.0-ios/iossimulator-x64/Uno.Gallery.app ArtifactName: uno-uitest-ios-bin ArtifactType: Container diff --git a/build/stage-uitests-wasm.yml b/build/stage-uitests-wasm.yml index ca7946519..28d0f5ae3 100644 --- a/build/stage-uitests-wasm.yml +++ b/build/stage-uitests-wasm.yml @@ -34,7 +34,7 @@ - task: CopyFiles@2 displayName: Copy Wasm output inputs: - SourceFolder: Uno.Gallery/bin/Release/net8.0-browserwasm/dist + SourceFolder: Uno.Gallery/bin/Release/net9.0-browserwasm/dist Contents: '**/*.*' TargetFolder: $(Build.ArtifactStagingDirectory)/bin diff --git a/build/templates/dotnet-install-mac.yml b/build/templates/dotnet-install-mac.yml index dbff93a0f..2888f7e6b 100644 --- a/build/templates/dotnet-install-mac.yml +++ b/build/templates/dotnet-install-mac.yml @@ -1,6 +1,6 @@ parameters: - DotNetVersion: '8.0.301' - UnoCheck_Version: '1.23.0' + DotNetVersion: '9.0.100-rc.2.24474.11' + UnoCheck_Version: '1.26.0-dev.71' steps: # Required until .NET 6 installs properly using UseDotnet # using preview builds diff --git a/build/templates/dotnet-install-windows.yml b/build/templates/dotnet-install-windows.yml index c5b94a8e1..eda20d70f 100644 --- a/build/templates/dotnet-install-windows.yml +++ b/build/templates/dotnet-install-windows.yml @@ -1,6 +1,6 @@ parameters: - DotNetVersion: '8.0.301' - UnoCheck_Version: '1.23.0' + DotNetVersion: '9.0.100-rc.2.24474.11' + UnoCheck_Version: '1.26.0-dev.71' steps: # Required until .NET 6 installs properly on Windows using UseDotnet diff --git a/global.json b/global.json index 4f3f68429..c14fa4c8f 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { - "sdk": { - "allowPrerelease": false - }, - // To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information. - "msbuild-sdks": { - "Uno.Sdk": "5.3.96" - } + "sdk": { + "allowPrerelease": true + }, + // To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information. + "msbuild-sdks": { + "Uno.Sdk": "5.6.0-dev.40" + } } From a90152f9a731bc59da444fe0acd0bb9b3b74201f Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 24 Oct 2024 10:16:30 -0400 Subject: [PATCH 02/49] chore: Adjust gha --- .github/workflows/azure-static-webapp.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/azure-static-webapp.yml b/.github/workflows/azure-static-webapp.yml index 40fcc04cb..c0febf3a7 100644 --- a/.github/workflows/azure-static-webapp.yml +++ b/.github/workflows/azure-static-webapp.yml @@ -26,6 +26,17 @@ jobs: fetch-depth: 0 # Required for gitversion submodules: true + - name: Setup .NET + uses: actions/setup-dotnet@v1.7.2 + with: + dotnet-version: '9.0.100-rc.2.24474.11' + include-prerelease: true + + - run: | + cd src + dotnet workload install wasm-tools + name: Setup Workloads + - name: Install GitVersion uses: gittools/actions/gitversion/setup@v0.9.7 with: From 8df106b12bc86788e5407f9417cd2fe77b91db08 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 24 Oct 2024 10:18:25 -0400 Subject: [PATCH 03/49] chore: update wsm-tools --- .github/workflows/azure-static-webapp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/azure-static-webapp.yml b/.github/workflows/azure-static-webapp.yml index c0febf3a7..e2956ab5b 100644 --- a/.github/workflows/azure-static-webapp.yml +++ b/.github/workflows/azure-static-webapp.yml @@ -33,7 +33,7 @@ jobs: include-prerelease: true - run: | - cd src + cd Uno.Gallery dotnet workload install wasm-tools name: Setup Workloads From f60e37d9119bc5523c221f813a790579798a21ef Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 24 Oct 2024 10:19:53 -0400 Subject: [PATCH 04/49] chore: Adjust for more net9 --- .github/workflows/azure-static-webapp.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/azure-static-webapp.yml b/.github/workflows/azure-static-webapp.yml index e2956ab5b..454790e6e 100644 --- a/.github/workflows/azure-static-webapp.yml +++ b/.github/workflows/azure-static-webapp.yml @@ -14,7 +14,7 @@ on: jobs: build_and_deploy_job: env: - DIST_PATH: Uno.Gallery/bin/Release/net8.0-browserwasm/dist + DIST_PATH: Uno.Gallery/bin/Release/net9.0-browserwasm/dist if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: ubuntu-latest @@ -56,7 +56,7 @@ jobs: - run: | cd Uno.Gallery - dotnet build -c Release -p:TargetFrameworkOverride=net8.0-browserwasm "/p:PackageVersion=${{ steps.gitversion.outputs.fullSemVer }}" + dotnet build -c Release -p:TargetFrameworkOverride=net9.0-browserwasm "/p:PackageVersion=${{ steps.gitversion.outputs.fullSemVer }}" - uses: actions/upload-artifact@v4 with: name: wasm-site From 9a848036ba6c4aa1dfd5bf2aa4580cd71ac09599 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 24 Oct 2024 10:28:03 -0400 Subject: [PATCH 05/49] chore: adjust publish path --- .github/workflows/azure-static-webapp.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/azure-static-webapp.yml b/.github/workflows/azure-static-webapp.yml index 454790e6e..0252e4903 100644 --- a/.github/workflows/azure-static-webapp.yml +++ b/.github/workflows/azure-static-webapp.yml @@ -14,7 +14,7 @@ on: jobs: build_and_deploy_job: env: - DIST_PATH: Uno.Gallery/bin/Release/net9.0-browserwasm/dist + DIST_PATH: Uno.Gallery/bin/Release/net9.0-browserwasm/publish/wwwroot if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: ubuntu-latest @@ -56,7 +56,7 @@ jobs: - run: | cd Uno.Gallery - dotnet build -c Release -p:TargetFrameworkOverride=net9.0-browserwasm "/p:PackageVersion=${{ steps.gitversion.outputs.fullSemVer }}" + dotnet publish -c Release -f net9.0-browserwasm -p:TargetFrameworkOverride=net9.0-browserwasm "/p:PackageVersion=${{ steps.gitversion.outputs.fullSemVer }}" - uses: actions/upload-artifact@v4 with: name: wasm-site From 03eafec71b7fd32c8c62f41f495a2a90bfd22e24 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 24 Oct 2024 10:32:12 -0400 Subject: [PATCH 06/49] chore: Adjust build gallery --- .github/workflows/azure-static-webapp.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/azure-static-webapp.yml b/.github/workflows/azure-static-webapp.yml index 0252e4903..2ef833042 100644 --- a/.github/workflows/azure-static-webapp.yml +++ b/.github/workflows/azure-static-webapp.yml @@ -56,7 +56,9 @@ jobs: - run: | cd Uno.Gallery - dotnet publish -c Release -f net9.0-browserwasm -p:TargetFrameworkOverride=net9.0-browserwasm "/p:PackageVersion=${{ steps.gitversion.outputs.fullSemVer }}" + dotnet publish -c Release -f net9.0-browserwasm "/p:PackageVersion=${{ steps.gitversion.outputs.fullSemVer }}" + name: Build Gallery + - uses: actions/upload-artifact@v4 with: name: wasm-site From de87af5275e24ce0c118954f68e5138e9329c745 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 1 Nov 2024 07:49:44 -0400 Subject: [PATCH 07/49] chore: Adjust for skia issue --- .github/workflows/azure-static-webapp.yml | 2 +- .../Platforms/WebAssembly/aot-uitests.profile | Bin 1820767 -> 2163522 bytes Uno.Gallery/Platforms/WebAssembly/aot.profile | Bin 5455641 -> 5272175 bytes Uno.Gallery/Uno.Gallery.csproj | 53 ++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/.github/workflows/azure-static-webapp.yml b/.github/workflows/azure-static-webapp.yml index 2ef833042..87a69336f 100644 --- a/.github/workflows/azure-static-webapp.yml +++ b/.github/workflows/azure-static-webapp.yml @@ -81,7 +81,7 @@ jobs: close_pull_request_job: if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest + runs-on: ubuntu-latest name: Close Pull Request Job steps: - name: Close Pull Request diff --git a/Uno.Gallery/Platforms/WebAssembly/aot-uitests.profile b/Uno.Gallery/Platforms/WebAssembly/aot-uitests.profile index a0b71f79f18d0f16d381329d104fc0b845ce732a..76f585f1714195f429d1be9f8813f34b8004e037 100644 GIT binary patch literal 2163522 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