To try and generate the async code, I attempted to run the Scriban.AsyncCodeGen project. I am running this on Linux with .net6.0 installed. I ran into these two issues:
vscode ➜ ~/.../Scriban.AsyncCodeGen/bin/Debug/net6.0 (fix/async-is-out-of-date) $ dotnet run --project ../../../Scriban.AsyncCodeGen.csproj
/usr/share/dotnet/sdk/6.0.406/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.EolTargetFrameworks.targets(28,5): warning NETSDK1138: The target framework 'net5.0' is out of support and will not receive security updates in the future. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy. [/home/vscode/scriban/src/Scriban/Scriban.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/MetadataName.cs(18,44): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/MetadataName.cs(20,43): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(42,33): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(82,28): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(88,33): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(149,28): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(156,36): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(348,25): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/MetadataName.cs(252,28): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/MetadataName.cs(296,41): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(66,27): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(82,32): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(130,31): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(131,30): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(145,35): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(214,102): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Program.cs(270,35): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(1216,20): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(1587,25): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(1708,21): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(1719,25): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
/home/vscode/scriban/src/Scriban.AsyncCodeGen/Roslynator/SymbolExtensions.cs(1771,20): warning RS1024: Compare symbols correctly [/home/vscode/scriban/src/Scriban.AsyncCodeGen/Scriban.AsyncCodeGen.csproj]
Evaluate 0:00.2328887 Scriban.csproj
Build 0:00.1756763 Scriban.csproj
Resolve 0:00.1382397 Scriban.csproj (netstandard2.0)
Evaluate 0:00.0562836 Scriban.Tests.csproj
Build 0:00.1787050 Scriban.Tests.csproj
Resolve 0:00.0046147 Scriban.Tests.csproj (netstandard2.0)
Evaluate 0:00.0255361 Scriban.Benchmarks.csproj
Build 0:00.0168953 Scriban.Benchmarks.csproj
Resolve 0:00.0002635 Scriban.Benchmarks.csproj (netstandard2.0)
Evaluate 0:00.0333503 liquid2scriban.csproj
Build 0:00.0149111 liquid2scriban.csproj
Resolve 0:00.0005438 liquid2scriban.csproj (netstandard2.0)
Evaluate 0:00.0327250 Scriban.DelegateCodeGen.csproj
Build 0:00.0131490 Scriban.DelegateCodeGen.csproj
Resolve 0:00.0002398 Scriban.DelegateCodeGen.csproj (netstandard2.0)
Evaluate 0:00.0238462 Scriban.DocGen.csproj
Build 0:00.0178670 Scriban.DocGen.csproj
Resolve 0:00.0008883 Scriban.DocGen.csproj (netstandard2.0)
Evaluate 0:00.0311391 Scriban.AsyncCodeGen.csproj
Build 0:00.0261378 Scriban.AsyncCodeGen.csproj
Resolve 0:00.0003835 Scriban.AsyncCodeGen.csproj (netstandard2.0)
Compilation errors:
/home/vscode/scriban/src/Scriban/Runtime/ScriptLazy.cs(42,16): error CS0246: The type or namespace name 'ValueTask<>' could not be found (are you missing a using directive or an assembly reference?)
/home/vscode/scriban/src/Scriban/Runtime/ScriptLazy.cs(44,24): error CS0246: The type or namespace name 'ValueTask<>' could not be found (are you missing a using directive or an assembly reference?)
Error, Exiting.
I have seen that the bug in issue #482 , which was fixed in PR #483 , is still present when using
.RenderAsync().I traced this issue to the new code not being replicated into
ScribanAsync.generated.cs. I attempted to generate the async code and provide a PR, but I was not able to generate the code. I apologize if there was documentation on how to do this that I did not find.To try and generate the async code, I attempted to run the Scriban.AsyncCodeGen project. I am running this on Linux with .net6.0 installed. I ran into these two issues:
The hardcoded path to the
scriban.slnatscriban/src/Scriban.AsyncCodeGen/Program.cs
Line 40 in 85b2aab
Scriban.slnfilename; this is not correct and would cause a file not found error when running in Linux. I edited the filename to look for the lowercasescriban.sln, which got around this issue.The Scriban.AsyncCodeGen project ran but did not complete. The logging is below. I attempted to troubleshoot this but did not come up with a solution in a reasonable amount of time. If someone else can generate the code properly, I am happy to help test it. I am also willing to generate the code myself and submit a PR if anyone knows how to get past this blocker.