diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 16f26d096a4..fc3eaa594c0 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -3,13 +3,14 @@ description: build the project runs: using: "composite" steps: - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: node-version: 22 - - uses: actions/setup-dotnet@v4 + - uses: actions/setup-dotnet@v5 with: dotnet-version: | + 10.x 9.x 8.x diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47462c6cd30..a77be8b9034 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,17 +31,21 @@ jobs: shell: bash working-directory: templates - - run: dotnet test -c Release -f net8.0 --no-build --collect:"XPlat Code Coverage" --consoleLoggerParameters:"Summary;Verbosity=Minimal" - id: test-net80 + - run: dotnet test -c Release -f net10.0 --no-build --collect:"XPlat Code Coverage" --consoleLoggerParameters:"Summary;Verbosity=Minimal" + id: test-net100 - run: dotnet test -c Release -f net9.0 --no-build --collect:"XPlat Code Coverage" --consoleLoggerParameters:"Summary;Verbosity=Minimal" if: matrix.os == 'ubuntu-latest' id: test-net90 + - run: dotnet test -c Release -f net8.0 --no-build --collect:"XPlat Code Coverage" --consoleLoggerParameters:"Summary;Verbosity=Minimal" + if: matrix.os == 'ubuntu-latest' + id: test-net80 + - run: npm i -g @percy/cli if: matrix.os == 'ubuntu-latest' - - run: percy exec -- dotnet test -c Release -f net8.0 --filter Stage=Percy --no-build --collect:"XPlat Code Coverage" + - run: percy exec -- dotnet test -c Release -f net10.0 --filter Stage=Percy --no-build --collect:"XPlat Code Coverage" if: matrix.os == 'ubuntu-latest' env: PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} @@ -55,8 +59,8 @@ jobs: - run: echo "DOTNET_DbgEnableMiniDump=1" >> $GITHUB_ENV if: matrix.os == 'ubuntu-latest' - - run: dotnet run -c Release --no-build -f net8.0 --project src/docfx -- docs/docfx.json - - run: dotnet run -c Release --no-build -f net8.0 --project src/docfx -- samples/seed/docfx.json --output docs/_site/seed + - run: dotnet run -c Release --no-build -f net10.0 --project src/docfx -- docs/docfx.json + - run: dotnet run -c Release --no-build -f net10.0 --project src/docfx -- samples/seed/docfx.json --output docs/_site/seed - uses: actions/upload-pages-artifact@v4 if: matrix.os == 'ubuntu-latest' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3100653b971..54b31b5127a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,11 +19,9 @@ jobs: - name: Checkout uses: actions/checkout@v5 - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 + - uses: actions/setup-dotnet@v5 with: - dotnet-version: | - 9.x + dotnet-version: 10.x - name: Run `dotnet format` command run: | diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 54d974c01df..b1288b18acb 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -15,10 +15,6 @@ jobs: permissions: packages: write steps: - - uses: actions/setup-dotnet@v5 - with: - dotnet-version: | - 10.x - uses: actions/checkout@v5 with: @@ -34,6 +30,9 @@ jobs: - name: dotnet test run: dotnet test -c Release -f net8.0 --no-build + - name: dotnet test + run: dotnet test -c Release -f net9.0 --no-build + - name: dotnet test run: dotnet test -c Release -f net10.0 --no-build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c74a2db1175..0258c47465e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,9 +16,9 @@ jobs: - name: dotnet publish run: | - dotnet publish src/docfx -f net8.0 -c Release /p:Version=${GITHUB_REF_NAME#v} --self-contained -r win-x64 -o drop/publish/win-x64 - dotnet publish src/docfx -f net8.0 -c Release /p:Version=${GITHUB_REF_NAME#v} --self-contained -r linux-x64 -o drop/publish/linux-x64 - dotnet publish src/docfx -f net8.0 -c Release /p:Version=${GITHUB_REF_NAME#v} --self-contained -r osx-x64 -o drop/publish/osx-x64 + dotnet publish src/docfx -f net10.0 -c Release /p:Version=${GITHUB_REF_NAME#v} --self-contained -r win-x64 -o drop/publish/win-x64 + dotnet publish src/docfx -f net10.0 -c Release /p:Version=${GITHUB_REF_NAME#v} --self-contained -r linux-x64 -o drop/publish/linux-x64 + dotnet publish src/docfx -f net10.0 -c Release /p:Version=${GITHUB_REF_NAME#v} --self-contained -r osx-x64 -o drop/publish/osx-x64 mkdir -p drop/bin - run: zip -r ../../bin/docfx-win-x64-${GITHUB_REF_NAME}.zip . @@ -47,13 +47,14 @@ jobs: steps: - uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.x + dotnet-version: 10.x - uses: actions/download-artifact@v5 with: name: nuget path: drop/nuget + # Install `Sign CLI` to use Azure Key Vault (See: https://github.com/dotnet/sign/blob/main/docs/comparisons.md) - run: dotnet tool install --tool-path . --prerelease sign - uses: azure/login@v1 @@ -87,7 +88,7 @@ jobs: steps: - uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.x + dotnet-version: 10.x - uses: actions/download-artifact@v5 with: @@ -116,5 +117,3 @@ jobs: gh release upload --repo dotnet/docfx ${GITHUB_REF_NAME} drop/bin/docfx-osx-x64-${GITHUB_REF_NAME}.zip env: GH_TOKEN: ${{ github.token }} - - diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index b7e442c99f9..2e1567cdf52 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -34,7 +34,7 @@ jobs: - uses: ./.github/actions/build # Update snapshots & accept changes - - run: dotnet test -c Release -f net8.0 --no-build --filter Stage=Snapshot + - run: dotnet test -c Release -f net10.0 --no-build --filter Stage=Snapshot working-directory: test/docfx.Snapshot.Tests env: BUILD_SERVER: false # Need to accept file changes automatically. diff --git a/Directory.Build.props b/Directory.Build.props index 365e0cace63..e2ae7061d6b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,8 +1,8 @@ true - net8.0;net9.0 - net8.0;net10.0 + net8.0;net9.0;net10.0 + Preview enable true @@ -17,7 +17,7 @@ $(NoWarn);NU1507;NU5104;NU5111 diff --git a/Directory.Packages.props b/Directory.Packages.props index 1c29d9e073e..a4fa9dd0744 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -22,27 +22,20 @@ - - - + + - - - - - - - - - - - - - - + + + + + + + + diff --git a/samples/csharp/src/CSharp.csproj b/samples/csharp/src/CSharp.csproj index d7878789ae8..478b1e5133d 100644 --- a/samples/csharp/src/CSharp.csproj +++ b/samples/csharp/src/CSharp.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 preview enable enable diff --git a/samples/extensions/build/build.csproj b/samples/extensions/build/build.csproj index ff4751c5219..8fd6ddec111 100644 --- a/samples/extensions/build/build.csproj +++ b/samples/extensions/build/build.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable diff --git a/samples/seed/dotnet/assembly/BuildFromAssembly.csproj b/samples/seed/dotnet/assembly/BuildFromAssembly.csproj index 8dca6967d9f..4b4eb986a1e 100644 --- a/samples/seed/dotnet/assembly/BuildFromAssembly.csproj +++ b/samples/seed/dotnet/assembly/BuildFromAssembly.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 enable enable true diff --git a/samples/seed/dotnet/project/Project.Core/BuildFromProject.Core.csproj b/samples/seed/dotnet/project/Project.Core/BuildFromProject.Core.csproj index 639eaa34ad3..9568e674bf7 100644 --- a/samples/seed/dotnet/project/Project.Core/BuildFromProject.Core.csproj +++ b/samples/seed/dotnet/project/Project.Core/BuildFromProject.Core.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 latest enable enable diff --git a/samples/seed/dotnet/project/Project/BuildFromProject.csproj b/samples/seed/dotnet/project/Project/BuildFromProject.csproj index bfef038c926..8fe532d9928 100644 --- a/samples/seed/dotnet/project/Project/BuildFromProject.csproj +++ b/samples/seed/dotnet/project/Project/BuildFromProject.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 latest enable enable diff --git a/samples/seed/dotnet/solution/CatLibrary.Core/CatLibrary.Core.csproj b/samples/seed/dotnet/solution/CatLibrary.Core/CatLibrary.Core.csproj index 9d5a3ce7408..2808c4808d7 100644 --- a/samples/seed/dotnet/solution/CatLibrary.Core/CatLibrary.Core.csproj +++ b/samples/seed/dotnet/solution/CatLibrary.Core/CatLibrary.Core.csproj @@ -1,5 +1,5 @@  - net8.0 + net10.0 diff --git a/samples/seed/dotnet/solution/CatLibrary/CatLibrary.csproj b/samples/seed/dotnet/solution/CatLibrary/CatLibrary.csproj index f4377e8b0af..7444b9719f5 100644 --- a/samples/seed/dotnet/solution/CatLibrary/CatLibrary.csproj +++ b/samples/seed/dotnet/solution/CatLibrary/CatLibrary.csproj @@ -1,6 +1,6 @@  - net8.0 + net10.0 true diff --git a/src/Docfx.Dotnet/Docfx.Dotnet.csproj b/src/Docfx.Dotnet/Docfx.Dotnet.csproj index e2fa7faa3a0..7ff17fbca8d 100644 --- a/src/Docfx.Dotnet/Docfx.Dotnet.csproj +++ b/src/Docfx.Dotnet/Docfx.Dotnet.csproj @@ -39,9 +39,6 @@ - - - diff --git a/src/Docfx.Dotnet/DotnetApiCatalog.Compile.cs b/src/Docfx.Dotnet/DotnetApiCatalog.Compile.cs index 4177b3d9dbe..5df14235424 100644 --- a/src/Docfx.Dotnet/DotnetApiCatalog.Compile.cs +++ b/src/Docfx.Dotnet/DotnetApiCatalog.Compile.cs @@ -26,6 +26,7 @@ partial class DotnetApiCatalog var msbuildProperties = config.MSBuildProperties ?? []; msbuildProperties.TryAdd("Configuration", "Release"); + // TODO: Add BinaryLogger support and print log warnings/errors to console. (It requires Roslyn v5.0.0) // NOTE: // logger parameter is not works when using Roslyn 4.9.0 or later. // It'll be fixed in later releases. @@ -39,7 +40,10 @@ partial class DotnetApiCatalog }); using var workspace = MSBuildWorkspace.Create(msbuildProperties); - workspace.WorkspaceFailed += (sender, e) => Logger.LogWarning($"{e.Diagnostic}"); + workspace.RegisterWorkspaceFailedHandler(e => + { + Logger.LogWarning($"{e.Diagnostic}"); + }); if (files.TryGetValue(FileType.NotSupported, out var unsupportedFiles)) { diff --git a/src/Docfx.Dotnet/SymbolFormatter.Symbols.cs b/src/Docfx.Dotnet/SymbolFormatter.Symbols.cs index 97e3af902bc..439dc11d3c9 100644 --- a/src/Docfx.Dotnet/SymbolFormatter.Symbols.cs +++ b/src/Docfx.Dotnet/SymbolFormatter.Symbols.cs @@ -345,6 +345,10 @@ public class MethodSymbol : IMethodSymbol public bool HasUnsupportedMetadata => Inner.HasUnsupportedMetadata; + public bool IsIterator => Inner.IsIterator; + + public IMethodSymbol AssociatedExtensionImplementation => Inner.AssociatedExtensionImplementation; + ISymbol ISymbol.OriginalDefinition => ((ISymbol)Inner).OriginalDefinition; public void Accept(SymbolVisitor visitor) => Inner.Accept(visitor); diff --git a/src/Docfx.Dotnet/SymbolFormatter.Syntax.cs b/src/Docfx.Dotnet/SymbolFormatter.Syntax.cs index 0b4b384fe4b..946ab2fc81c 100644 --- a/src/Docfx.Dotnet/SymbolFormatter.Syntax.cs +++ b/src/Docfx.Dotnet/SymbolFormatter.Syntax.cs @@ -354,7 +354,7 @@ private void AddTypedConstant(TypedConstant typedConstant) var value = Language is SyntaxLanguage.VB ? VB.SymbolDisplay.FormatPrimitive(typedConstant.Value, quoteStrings: true, useHexadecimalNumbers: false) : CS.SymbolDisplay.FormatPrimitive(typedConstant.Value, quoteStrings: true, useHexadecimalNumbers: false); - _parts.Add(new(typedConstant.Value is string ? SymbolDisplayPartKind.StringLiteral : SymbolDisplayPartKind.NumericLiteral, null, value)); + _parts.Add(new(typedConstant.Value is string ? SymbolDisplayPartKind.StringLiteral : SymbolDisplayPartKind.NumericLiteral, null, value!)); break; case TypedConstantKind.Enum: diff --git a/test/docfx.Snapshot.Tests/SamplesTest.cs b/test/docfx.Snapshot.Tests/SamplesTest.cs index d5f8ae8212c..112cd07ca90 100644 --- a/test/docfx.Snapshot.Tests/SamplesTest.cs +++ b/test/docfx.Snapshot.Tests/SamplesTest.cs @@ -42,7 +42,7 @@ public SamplesFactAttribute() { // When target framework is changed. // It need to modify TargetFrameworks property of `docfx.Snapshot.Tests.csproj` -#if !NET8_0 +#if !NET10_0 Skip = "Skip by target framework"; #endif } diff --git a/test/docfx.Snapshot.Tests/docfx.Snapshot.Tests.csproj b/test/docfx.Snapshot.Tests/docfx.Snapshot.Tests.csproj index 56c718ed26b..73014112e70 100644 --- a/test/docfx.Snapshot.Tests/docfx.Snapshot.Tests.csproj +++ b/test/docfx.Snapshot.Tests/docfx.Snapshot.Tests.csproj @@ -1,6 +1,6 @@ - net8.0 + net10.0