Skip to content

Generated Async code is out of date #488

@brettiegabber

Description

@brettiegabber

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:

  1. The hardcoded path to the scriban.sln at

    var solution = await workspace.OpenSolutionAsync(Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"../../../../Scriban.sln")), new ConsoleProgressReporter());
    has a capitalized Scriban.sln filename; this is not correct and would cause a file not found error when running in Linux. I edited the filename to look for the lowercase scriban.sln, which got around this issue.

  2. 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.

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions