neo-project / neo-modules

MIT License
61 stars 102 forks source link

Dotnet upgrade `net8.0` #896

Closed cschuchardt88 closed 3 months ago

cschuchardt88 commented 4 months ago

Change Log

Closes #895

Tests

image

vncoelho commented 4 months ago

I am just afraid some need on actions is needed, but this can come in another PR

vncoelho commented 4 months ago

At least everything is running again

image

vncoelho commented 4 months ago
WORKDIR /opt/neoLib
RUN if [ "$NEO_BLOCKCHAIN_RUN_TESTS" = "true" ] ; then (dotnet format --verify-no-changes --verbosity diagnostic);  fi

ARG COVERAGE_OUTPUT_FOLDER=/opt/neoLib/coverage-join/
ARG COVERAGE_FILE_NAME=coverage.net8.0.json
ARG DOTNET_TEST_COMMAND=dotnet test --framework net8.0
RUN find tests -name *.csproj | xargs -I % dotnet add % package coverlet.msbuild
RUN if [ "$NEO_BLOCKCHAIN_RUN_TESTS" = "true" ] ; then ($DOTNET_TEST_COMMAND ./tests/Neo.ConsoleService.Tests         /p:CollectCoverage=true /p:CoverletOutput=$COVERAGE_OUTPUT_FOLDER);  fi
RUN if [ "$NEO_BLOCKCHAIN_RUN_TESTS" = "true" ] ; then ($DOTNET_TEST_COMMAND ./tests/Neo.Cryptography.BLS12_381.Tests /p:CollectCoverage=true /p:CoverletOutput=$COVERAGE_OUTPUT_FOLDER /p:MergeWith=$COVERAGE_OUTPUT_FOLDER$COVERAGE_FILE_NAME);  fi
#RUN mv /opt/neoLib/coverage-join/coverage.json $COVERAGE_OUTPUT_FOLDER$COVERAGE_FILE_NAME
RUN if [ "$NEO_BLOCKCHAIN_RUN_TESTS" = "true" ] ; then ($DOTNET_TEST_COMMAND ./tests/Neo.UnitTests                    /p:CollectCoverage=true /p:CoverletOutput=$COVERAGE_OUTPUT_FOLDER /p:MergeWith=$COVERAGE_OUTPUT_FOLDER$COVERAGE_FILE_NAME);  fi
RUN if [ "$NEO_BLOCKCHAIN_RUN_TESTS" = "true" ] ; then ($DOTNET_TEST_COMMAND ./tests/Neo.VM.Tests                     /p:CollectCoverage=true /p:CoverletOutput=$COVERAGE_OUTPUT_FOLDER /p:MergeWith=$COVERAGE_OUTPUT_FOLDER$COVERAGE_FILE_NAME);  fi
RUN if [ "$NEO_BLOCKCHAIN_RUN_TESTS" = "true" ] ; then ($DOTNET_TEST_COMMAND  ./tests/Neo.Json.UnitTests               /p:CollectCoverage=true /p:CoverletOutput=/opt/neoLib/coverage/lcov  /p:MergeWith=$COVERAGE_OUTPUT_FOLDER$COVERAGE_FILE_NAME /p:CoverletOutputFormat=lcov);  fi
WORKDIR /

This works fine for neo-core

vncoelho commented 4 months ago

@cschuchardt88, let's set the folder and file name as a variable coverage-join/coverage.net8.0.json

cschuchardt88 commented 4 months ago

@cschuchardt88, let's set the folder and file name as a variable coverage-join/coverage.net8.0.json

Ok i think i got it working now... 🙏

vncoelho commented 4 months ago

@cschuchardt88

Generating report /home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json

neo-modules/neo-modules !?

vncoelho commented 4 months ago

It was going good now, but another crazy error

Passed!  - Failed:     0, Passed:     3, Skipped:     0, Total:     3, Duration: 470 ms - Neo.Plugins.Storage.Tests.dll (net8.0)
  [coverlet] 
  Calculating coverage result...
  [coverlet] MergeWith: '/home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json'.
   Generating report '/home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json'

+--------------+--------+--------+--------+
| Module       | Line   | Branch | Method |
+--------------+--------+--------+--------+
| RocksDBStore | 53.19% | 43.75% | 50%    |
+--------------+--------+--------+--------+
| LevelDBStore | 52.55% | 73.33% | 47.43% |
+--------------+--------+--------+--------+
| RpcServer    | 4.12%  | 1.35%  | 4.67%  |
+--------------+--------+--------+--------+
| RpcClient    | 86.06% | 56.2%  | 91.42% |
+--------------+--------+--------+--------+

+---------+--------+--------+--------+
|         | Line   | Branch | Method |
+---------+--------+--------+--------+
| Total   | 47.32% | 27.9%  | 58.7%  |
+---------+--------+--------+--------+
| Average | 48.98% | 43.65% | 48.38% |
+---------+--------+--------+--------+

MSBUILD : error MSB1008: Only one project can be specified.
    Full command line: '/usr/share/dotnet/sdk/8.0.203/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo -property:VSTestBlameHang=true -property:VSTestBlameHang=true -property:VSTestBlameHangTimeout=180000 tests/Neo.Cryptography.MPTTrie.Tests /p:CollectCoverage=true /p:CoverletOutput=/home/runner/work/neo-modules/neo-modules/coverage-join/ p:Exclude="[Neo]*,[Neo.IO]*,[Neo.Json]*,[Neo.VM]*,[Neo.Extensions]*,[Neo.Cryptography.BLS12_381]*" /p:MergeWith=/home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json -property:VSTestArtifactsProcessingMode=collect -property:VSTestSessionCorrelationId=3668_e07bb6c5-473f-48b8-8062-ac47d3fec726 -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/usr/share/dotnet/sdk/8.0.203/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/usr/share/dotnet/sdk/8.0.203/dotnet.dll'
  Switches appended by response files:
Switch: p:Exclude=[Neo]*,[Neo.IO]*,[Neo.Json]*,[Neo.VM]*,[Neo.Extensions]*,[Neo.Cryptography.BLS12_381]*

For switch syntax, type "MSBuild -help"
Error: Process completed with exit code 1.
vncoelho commented 4 months ago

I think I can remove the hang . It is the problem now

vncoelho commented 4 months ago
MSBUILD : error MSB1008: Only one project can be specified.
    Full command line: '/usr/share/dotnet/sdk/8.0.203/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo tests/Neo.Cryptography.MPTTrie.Tests /p:CollectCoverage=true /p:CoverletOutput=/home/runner/work/neo-modules/neo-modules/coverage-join/ p:Exclude="[Neo]*,[Neo.IO]*,[Neo.Json]*,[Neo.VM]*,[Neo.Extensions]*,[Neo.Cryptography.BLS12_381]*" /p:MergeWith=/home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json -property:VSTestArtifactsProcessingMode=collect -property:VSTestSessionCorrelationId=3506_7e0d2795-098d-4c23-bff6-63b572c9ca7c -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/usr/share/dotnet/sdk/8.0.203/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/usr/share/dotnet/sdk/8.0.203/dotnet.dll'
  Switches appended by response files:
Switch: p:Exclude=[Neo]*,[Neo.IO]*,[Neo.Json]*,[Neo.VM]*,[Neo.Extensions]*,[Neo.Cryptography.BLS12_381]*

even removing the --blame-hang --blame-hang-timeout 180000

vncoelho commented 4 months ago

no @cschuchardt88 ,it was correct

  [coverlet] MergeWith: file '/home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json' does not exist.
   Generating report '/home/runner/work/neo-modules/neo-modules/coverage-join.net8.0.json'
vncoelho commented 4 months ago

it is good again, but the same unknown error:

MSBUILD : error MSB1008: Only one project can be specified.
    Full command line: '/usr/share/dotnet/sdk/8.0.202/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo tests/Neo.Cryptography.MPTTrie.Tests /p:CollectCoverage=true /p:CoverletOutput=/home/runner/work/neo-modules/neo-modules/coverage-join/ p:Exclude="[Neo]*,[Neo.IO]*,[Neo.Json]*,[Neo.VM]*,[Neo.Extensions]*,[Neo.Cryptography.BLS12_381]*" /p:MergeWith=/home/runner/work/neo-modules/neo-modules/coverage-join/coverage.net8.0.json -property:VSTestArtifactsProcessingMode=collect -property:VSTestSessionCorrelationId=3676_7879406c-2666-49c9-bec6-1213d8a37c87 -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,/usr/share/dotnet/sdk/8.0.202/dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,/usr/share/dotnet/sdk/8.0.202/dotnet.dll'
  Switches appended by response files:
Switch: p:Exclude=[Neo]*,[Neo.IO]*,[Neo.Json]*,[Neo.VM]*,[Neo.Extensions]*,[Neo.Cryptography.BLS12_381]*
vncoelho commented 3 months ago

still same errors, @cschuchardt88

#41 10.09        "/opt/neo-modules/src/ApplicationLogs/ApplicationLogs.csproj" (Publish target) (1) ->
#41 10.09        "/opt/neo-modules/src/RpcServer/RpcServer.csproj" (default target) (3:3) ->
#41 10.09        "/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj" (default target) (9:9) ->
#41 10.09          /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018: System.IO.IOException: The process cannot access the file '/opt/neo-modules/neo/src/Neo.Json/bin/Release/net8.0/Neo.Json.deps.json' because it is being used by another process. [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at Microsoft.Win32.SafeHandles.SafeFileHandle.Init(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Int64& fileLength, UnixFileMode& filePermissions) [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException) [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at System.IO.File.Create(String path) [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at Microsoft.NET.Build.Tasks.GenerateDepsFile.WriteDepsFile(String depsFilePath) [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09        /usr/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(284,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [/opt/neo-modules/neo/src/Neo.Json/Neo.Json.csproj::TargetFramework=net8.0]
#41 10.09 
#41 10.09     8 Warning(s)
#41 10.09     2 Error(s)
vncoelho commented 3 months ago

https://github.com/dotnet/sdk/issues/39753

Still no answer there as well.

cschuchardt88 commented 3 months ago

@vncoelho Please don't change code in my repo unless tested as 100% working; unless you going to fix the issues your changes create. It wastes my time. Put in review instead.

vncoelho commented 3 months ago

After upgrading to 203 the building error reduced considerably. There is something that is keeping files open or process.

I am now ensuring that dotnet build-server shutdown after building plugins and perhaps it will work better.

Just fix the lastesfeature for now I am ready.