diff --git a/.azure-pipelines/release.yml b/.azure-pipelines/release.yml index 797a42d73..68808aa67 100644 --- a/.azure-pipelines/release.yml +++ b/.azure-pipelines/release.yml @@ -136,10 +136,10 @@ extends: $version = (Get-Content .\VERSION) -replace '\.\d+$', '' Write-Host "##vso[task.setvariable variable=version;isReadOnly=true]$version" - task: UseDotNet@2 - displayName: 'Use .NET 8 SDK' + displayName: 'Use .NET 10 SDK' inputs: packageType: sdk - version: '8.x' + version: '10.x' - task: PowerShell@2 displayName: 'Build payload' inputs: @@ -296,10 +296,10 @@ extends: script: | echo "##vso[task.setvariable variable=version;isReadOnly=true]$(cat ./VERSION | sed -E 's/.[0-9]+$//')" - task: UseDotNet@2 - displayName: 'Use .NET 8 SDK' + displayName: 'Use .NET 10 SDK' inputs: packageType: sdk - version: '8.x' + version: '10.x' - task: Bash@3 displayName: 'Build payload' inputs: @@ -565,10 +565,10 @@ extends: script: | echo "##vso[task.setvariable variable=version;isReadOnly=true]$(cat ./VERSION | sed -E 's/.[0-9]+$//')" - task: UseDotNet@2 - displayName: 'Use .NET 8 SDK' + displayName: 'Use .NET 10 SDK' inputs: packageType: sdk - version: '8.x' + version: '10.x' - task: Bash@3 displayName: 'Build payload' inputs: @@ -664,10 +664,10 @@ extends: $version = (Get-Content .\VERSION) -replace '\.\d+$', '' Write-Host "##vso[task.setvariable variable=version;isReadOnly=true]$version" - task: UseDotNet@2 - displayName: 'Use .NET 8 SDK' + displayName: 'Use .NET 10 SDK' inputs: packageType: sdk - version: '8.x' + version: '10.x' - task: NuGetToolInstaller@1 displayName: 'Install NuGet CLI' inputs: diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 2fd38db60..d2b88817b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -27,7 +27,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5.1.0 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index c59f623f7..a77a8d66d 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -30,7 +30,16 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5.1.0 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x + + # The x86 test host requires an x86 .NET runtime, which isn't pre-installed + # on the runner, nor can the actions/setup-dotnet action install it. + # Install it manually so tests can run. + - name: Setup .NET (x86) + if: matrix.runtime == 'win-x86' + run: | + Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile dotnet-install.ps1 + ./dotnet-install.ps1 -Channel 10.0 -Architecture x86 -InstallDir 'C:\Program Files (x86)\dotnet' - name: Install dependencies run: dotnet restore @@ -78,7 +87,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5.1.0 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Install dependencies run: dotnet restore @@ -122,7 +131,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v5.1.0 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Install dependencies run: dotnet restore diff --git a/.vscode/launch.json b/.vscode/launch.json index d9b004b86..152dd35b3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net8.0/git-credential-manager.dll", + "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net10.0/git-credential-manager.dll", "args": ["get"], "cwd": "${workspaceFolder}/out/shared/Git-Credential-Manager", "console": "integratedTerminal", @@ -22,7 +22,7 @@ "request": "launch", "preLaunchTask": "build", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net8.0/git-credential-manager.dll", + "program": "${workspaceFolder}/out/shared/Git-Credential-Manager/bin/Debug/net10.0/git-credential-manager.dll", "args": ["store"], "cwd": "${workspaceFolder}/out/shared/Git-Credential-Manager", "console": "integratedTerminal", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index c559b17b8..8dd1d3737 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -56,7 +56,7 @@ "type": "shell", "group": "test", "args": [ - "~/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll", + "~/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll", "-reports:${workspaceFolder}/**/TestResults/**/coverage.cobertura.xml", "-targetdir:${workspaceFolder}/out/code-coverage" ], @@ -71,7 +71,7 @@ "type": "shell", "group": "test", "args": [ - "${env:USERROFILE}/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll", + "${env:USERROFILE}/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll", "-reports:${workspaceFolder}/**/TestResults/**/coverage.cobertura.xml", "-targetdir:${workspaceFolder}/out/code-coverage" ], diff --git a/Directory.Build.props b/Directory.Build.props index e7ed76eb9..58e8f8770 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -27,9 +27,7 @@ - - 8.0.5 - + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 000000000..a836e1bca --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,40 @@ + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/GCM.MSBuild.csproj b/build/GCM.MSBuild.csproj index 3df4909e6..bd25f8345 100644 --- a/build/GCM.MSBuild.csproj +++ b/build/GCM.MSBuild.csproj @@ -1,13 +1,13 @@ - net8.0 + net10.0 false - - + + diff --git a/docs/development.md b/docs/development.md index 0242d68b8..9eedda44a 100644 --- a/docs/development.md +++ b/docs/development.md @@ -215,13 +215,13 @@ HTML reports can be generated using ReportGenerator, this should be installed during the build process, from the command line: ```shell -dotnet ~/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage +dotnet ~/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage ``` or ```shell -dotnet {$env:USERPROFILE}/.nuget/packages/reportgenerator/*/*/net8.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage +dotnet {$env:USERPROFILE}/.nuget/packages/reportgenerator/*/*/net10.0/ReportGenerator.dll -reports:./**/TestResults/**/coverage.cobertura.xml -targetdir:./out/code-coverage ``` Or via VSCode Terminal/Run Task: diff --git a/src/linux/Packaging.Linux/Packaging.Linux.csproj b/src/linux/Packaging.Linux/Packaging.Linux.csproj index ddfb31500..b1ec25a99 100644 --- a/src/linux/Packaging.Linux/Packaging.Linux.csproj +++ b/src/linux/Packaging.Linux/Packaging.Linux.csproj @@ -3,7 +3,7 @@ - net8.0 + net10.0 false diff --git a/src/linux/Packaging.Linux/install-from-source.sh b/src/linux/Packaging.Linux/install-from-source.sh index d323ac9e1..888a23597 100755 --- a/src/linux/Packaging.Linux/install-from-source.sh +++ b/src/linux/Packaging.Linux/install-from-source.sh @@ -169,7 +169,7 @@ case "$distribution" in # Install dotnet packages and dependencies if needed. if [ -z "$(verify_existing_dotnet_installation)" ]; then # First try to use native feeds (Ubuntu 22.04 and later). - if ! apt_install dotnet8; then + if ! apt_install dotnet10; then # If the native feeds fail, we fall back to # packages.microsoft.com. We begin by adding the dotnet package # repository/signing key. diff --git a/src/linux/Packaging.Linux/layout.sh b/src/linux/Packaging.Linux/layout.sh index fe3a0f2b8..7d21a9dff 100755 --- a/src/linux/Packaging.Linux/layout.sh +++ b/src/linux/Packaging.Linux/layout.sh @@ -49,7 +49,7 @@ GCM_SRC="$SRC/shared/Git-Credential-Manager" PROJ_OUT="$OUT/linux/Packaging.Linux" # Build parameters -FRAMEWORK=net8.0 +FRAMEWORK=net10.0 # Perform pre-execution checks CONFIGURATION="${CONFIGURATION:=Debug}" diff --git a/src/osx/Installer.Mac/Installer.Mac.csproj b/src/osx/Installer.Mac/Installer.Mac.csproj index daabd20d4..ca872f911 100644 --- a/src/osx/Installer.Mac/Installer.Mac.csproj +++ b/src/osx/Installer.Mac/Installer.Mac.csproj @@ -3,7 +3,7 @@ - net8.0 + net10.0 false diff --git a/src/osx/Installer.Mac/layout.sh b/src/osx/Installer.Mac/layout.sh index ad8e2cfc2..9af3555b8 100755 --- a/src/osx/Installer.Mac/layout.sh +++ b/src/osx/Installer.Mac/layout.sh @@ -24,7 +24,7 @@ GCM_SRC="$SRC/shared/Git-Credential-Manager" GCM_UI_SRC="$SRC/shared/Git-Credential-Manager.UI.Avalonia" # Build parameters -FRAMEWORK=net8.0 +FRAMEWORK=net10.0 # Parse script arguments for i in "$@" diff --git a/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj b/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj index 9e768b91c..b3072b96d 100644 --- a/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj +++ b/src/shared/Atlassian.Bitbucket.Tests/Atlassian.Bitbucket.Tests.csproj @@ -1,20 +1,20 @@  - net8.0 + net10.0 false true latest - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj b/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj index 6aab348f8..a2d5c69bb 100644 --- a/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj +++ b/src/shared/Atlassian.Bitbucket/Atlassian.Bitbucket.csproj @@ -1,8 +1,8 @@  - net8.0 - net8.0;net472 + net10.0 + net10.0;net472 Atlassian.Bitbucket Atlassian.Bitbucket false diff --git a/src/shared/Core.Tests/Core.Tests.csproj b/src/shared/Core.Tests/Core.Tests.csproj index e3ae7e6b0..64a1e2437 100644 --- a/src/shared/Core.Tests/Core.Tests.csproj +++ b/src/shared/Core.Tests/Core.Tests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 false true latest @@ -9,13 +9,13 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/shared/Core/Core.csproj b/src/shared/Core/Core.csproj index f2804177b..cdfd08deb 100644 --- a/src/shared/Core/Core.csproj +++ b/src/shared/Core/Core.csproj @@ -1,8 +1,8 @@  - net8.0 - net8.0;net472 + net10.0 + net10.0;net472 gcmcore GitCredentialManager false @@ -13,25 +13,25 @@ - - + + - + - - - - - - + + + + + + - + diff --git a/src/shared/DotnetTool/DotnetTool.csproj b/src/shared/DotnetTool/DotnetTool.csproj index a1107a4b6..720f75693 100644 --- a/src/shared/DotnetTool/DotnetTool.csproj +++ b/src/shared/DotnetTool/DotnetTool.csproj @@ -1,6 +1,6 @@ - net8.0 + net10.0 true dotnet-tool.nuspec diff --git a/src/shared/DotnetTool/dotnet-tool.nuspec b/src/shared/DotnetTool/dotnet-tool.nuspec index 35f81ebc9..9eb9a7020 100644 --- a/src/shared/DotnetTool/dotnet-tool.nuspec +++ b/src/shared/DotnetTool/dotnet-tool.nuspec @@ -11,7 +11,7 @@ - + diff --git a/src/shared/DotnetTool/layout.ps1 b/src/shared/DotnetTool/layout.ps1 index ca9b13011..f2bd87285 100644 --- a/src/shared/DotnetTool/layout.ps1 +++ b/src/shared/DotnetTool/layout.ps1 @@ -44,7 +44,7 @@ $DotnetToolRel = "shared/DotnetTool" $GcmSrc = Join-Path $Src "shared\Git-Credential-Manager" $ProjOut = Join-Path $Out $DotnetToolRel -$Framework = "net8.0" +$Framework = "net10.0" if (-not $Output -or $Output.Trim() -eq "") { $Output = Join-Path $ProjOut "nupkg\$Configuration" diff --git a/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj b/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj index 8c469897e..b367bb48a 100644 --- a/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj +++ b/src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj @@ -2,8 +2,8 @@ Exe - net8.0 - net472;net8.0 + net10.0 + net472;net10.0 win-x86;win-x64;win-arm64;osx-x64;linux-x64;osx-arm64;linux-arm64;linux-arm git-credential-manager GitCredentialManager diff --git a/src/shared/GitHub.Tests/GitHub.Tests.csproj b/src/shared/GitHub.Tests/GitHub.Tests.csproj index 0574e00d1..cf7f8be69 100644 --- a/src/shared/GitHub.Tests/GitHub.Tests.csproj +++ b/src/shared/GitHub.Tests/GitHub.Tests.csproj @@ -1,20 +1,20 @@  - net8.0 + net10.0 false true latest - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/shared/GitHub/GitHub.csproj b/src/shared/GitHub/GitHub.csproj index 66a4afd79..53ac5cf94 100644 --- a/src/shared/GitHub/GitHub.csproj +++ b/src/shared/GitHub/GitHub.csproj @@ -1,8 +1,8 @@  - net8.0 - net8.0;net472 + net10.0 + net10.0;net472 GitHub GitHub false diff --git a/src/shared/GitLab.Tests/GitLab.Tests.csproj b/src/shared/GitLab.Tests/GitLab.Tests.csproj index 098878aec..aef8483a1 100644 --- a/src/shared/GitLab.Tests/GitLab.Tests.csproj +++ b/src/shared/GitLab.Tests/GitLab.Tests.csproj @@ -1,20 +1,20 @@  - net8.0 + net10.0 false true latest - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/shared/GitLab/GitLab.csproj b/src/shared/GitLab/GitLab.csproj index 25c37f2fe..19aa356f2 100644 --- a/src/shared/GitLab/GitLab.csproj +++ b/src/shared/GitLab/GitLab.csproj @@ -1,8 +1,8 @@  - net8.0 - net8.0;net472 + net10.0 + net10.0;net472 GitLab GitLab false diff --git a/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj b/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj index 1c673bcc9..e9cb3f16d 100644 --- a/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj +++ b/src/shared/Microsoft.AzureRepos.Tests/Microsoft.AzureRepos.Tests.csproj @@ -1,20 +1,20 @@  - net8.0 + net10.0 false true latest - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj b/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj index eaf866bfa..73b7dedff 100644 --- a/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj +++ b/src/shared/Microsoft.AzureRepos/Microsoft.AzureRepos.csproj @@ -1,8 +1,8 @@  - net8.0 - net8.0;net472 + net10.0 + net10.0;net472 Microsoft.AzureRepos Microsoft.AzureRepos false diff --git a/src/shared/TestInfrastructure/TestInfrastructure.csproj b/src/shared/TestInfrastructure/TestInfrastructure.csproj index 63f6fee89..9c3e96e5e 100644 --- a/src/shared/TestInfrastructure/TestInfrastructure.csproj +++ b/src/shared/TestInfrastructure/TestInfrastructure.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 GitCredentialManager.Tests false false @@ -9,10 +9,10 @@ - - - - + + + + diff --git a/src/windows/Installer.Windows/Installer.Windows.csproj b/src/windows/Installer.Windows/Installer.Windows.csproj index ec678fe5f..ace93b63e 100644 --- a/src/windows/Installer.Windows/Installer.Windows.csproj +++ b/src/windows/Installer.Windows/Installer.Windows.csproj @@ -14,7 +14,6 @@ false false $(PlatformOutPath)Installer.Windows\bin\$(Configuration)\net472\$(RuntimeIdentifier)\ - 6.3.1 false @@ -29,7 +28,7 @@ - + @@ -37,8 +36,8 @@ - "$(NuGetPackageRoot)Tools.InnoSetup\$(InnoSetupVersion)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=system /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)" - "$(NuGetPackageRoot)Tools.InnoSetup\$(InnoSetupVersion)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=user /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)" + "$(PkgTools_InnoSetup)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=system /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)" + "$(PkgTools_InnoSetup)\tools\ISCC.exe" /DPayloadDir="$(PayloadPath)" /DInstallTarget=user /DGcmRuntimeIdentifier="$(RuntimeIdentifier)" "$(RepoSrcPath)\windows\Installer.Windows\Setup.iss" /O"$(OutputPath)"