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