robocode-dev / tank-royale

Git repository for Robocode Tank Royale
Apache License 2.0
145 stars 29 forks source link

cannot build project #63

Closed maxandersen closed 1 year ago

maxandersen commented 1 year ago

running on OSX M1 machine.

git clone - gradlew is not executable and wrapper somehow incomplete. had to install gradle 8.0.2 manually first.

then ran brew install dotnet as otherwise build fails.

but then the dotnet build fails (p.s. no idea why the dotnet errors are in Spanish - i got no such locale configured :)

 gradle build --stacktrace
Using gradle at '/Users/manderse/code/robocode-dev/tank-royale/gradlew' to run buildFile '/Users/manderse/code/robocode-dev/tank-royale/build.gradle.kts':
Start restoring packages
Compilação de 04/03/2023 14:10:35 iniciada.
     1>Projeto "/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj" no nó 1 (Restore destino(s)).
     1>_GetAllRestoreProjectPathItems:
         Determining projects to restore...
       Restore:
         X.509 certificate chain validation will use the fallback certificate bundle at '/opt/homebrew/Cellar/dotnet/7.0.100/libexec/sdk/7.0.100/trustedroots/codesignctl.pem'.
         X.509 certificate chain validation will use the fallback certificate bundle at '/opt/homebrew/Cellar/dotnet/7.0.100/libexec/sdk/7.0.100/trustedroots/timestampctl.pem'.
         Assets file has not changed. Skipping assets file writing. Path: /Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/obj/project.assets.json
         Restored /Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj (in 34 ms).

         NuGet Config files used:
             /Users/manderse/.nuget/NuGet/NuGet.Config

         Feeds used:
             https://api.nuget.org/v3/index.json
         All projects are up-to-date for restore.
     1>Projeto de compilação pronto "/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj" (Restore destino(s)).

Compilação com êxito.
    0 Aviso(s)
    0 Erro(s)

Tempo Decorrido 00:00:00.54
Complete restoring packages
Start parsing project
Complete parsing project
> Task :bot-api:dotnet:dotnetBuild FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':bot-api:dotnet:dotnetBuild'.
flemming-n-larsen commented 1 year ago

Note that you only need to build the parts of Robocde Tank Royale that you are working on. If you do a gradle build from the root, then it will build everything. But of course, you are welcome to do that. 🙂

I also fixed the broken gradle wrapper and upgraded it to version 8.0.2 on master. But installing gradle makes it easier to build individual parts of Tank Royale.

The Bot API for .Net is .Net 6.0 compatible and hence build for .Net 6.0. See the TargetFramework in the project file here But I guess it should be able to build for .Net 7.0 as well? 🙂

In order to see why the dotnet build fails, I should like you to go into (cd) this folder:

bot-api/dotnet/Robocode.TankRoyale.BotApi

And then try to build the Bot API by writing:

dotnet build

This should print out any errors, which are not shown from Gradle's dotnetBuild task, unfortunately.

Please write back on this issue and tell me what you see, if you get errors.

maxandersen commented 1 year ago
cd bot-api/dotnet/Robocode.TankRoyale.BotApi
❯ dotnet build
MSBuild version 17.4.0+18d5aef85 for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/internal/BaseBotInternals.cs(8,31): error CS0234: O nome de tipo ou namespace "Schema" não existe no namespace "Robocode.TankRoyale" (você está sem uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/internal/BotHandshakeFactory.cs(4,27): error CS0234: O nome de tipo ou namespace "Schema" não existe no namespace "Robocode.TankRoyale" (você está sem uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/BotStateMapper.cs(7,32): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/BulletStateMapper.cs(7,35): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/BulletStateMapper.cs(20,60): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/GameSetupMapper.cs(5,33): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/InitialPositionMapper.cs(5,19): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/ResultsMapper.cs(5,34): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(63,33): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(73,36): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(85,37): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(90,41): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(98,33): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(118,45): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(127,43): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(135,40): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(149,40): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(156,38): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/internal/BotHandshakeFactory.cs(10,21): error CS0246: O nome do tipo ou do namespace "BotHandshake" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]

FALHA da compilação.

/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/internal/BaseBotInternals.cs(8,31): error CS0234: O nome de tipo ou namespace "Schema" não existe no namespace "Robocode.TankRoyale" (você está sem uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/internal/BotHandshakeFactory.cs(4,27): error CS0234: O nome de tipo ou namespace "Schema" não existe no namespace "Robocode.TankRoyale" (você está sem uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/BotStateMapper.cs(7,32): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/BulletStateMapper.cs(7,35): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/BulletStateMapper.cs(20,60): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/GameSetupMapper.cs(5,33): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/InitialPositionMapper.cs(5,19): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/ResultsMapper.cs(5,34): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(63,33): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(73,36): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(85,37): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(90,41): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(98,33): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(118,45): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(127,43): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(135,40): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(149,40): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/mapper/EventMapper.cs(156,38): error CS0246: O nome do tipo ou do namespace "Schema" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/src/internal/BotHandshakeFactory.cs(10,21): error CS0246: O nome do tipo ou do namespace "BotHandshake" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) [/Users/manderse/code/robocode-dev/tank-royale/bot-api/dotnet/Robocode.TankRoyale.BotApi/Robocode.TankRoyale.BotApi.csproj]
    0 Aviso(s)
    19 Erro(s)

Tempo Decorrido 00:00:01.58
flemming-n-larsen commented 1 year ago

@maxandersen Thank you for the error info, it tells me exactly what the problem is. It is missing the generated code for the schema (for the WebSocket IPC classes).

So you need to build the generated code first be calling this from the root:

./gradlew :schema:dotnet:build

And then you should be able to build the Bot API for dotnet. 🙂

I will try to update the Gradle build file so the schema files will be built first!

flemming-n-larsen commented 1 year ago

@maxandersen I made sure that the schema files that the dotnetBuild task depends on it built before building the API itself. I have fixed this on master.

flemming-n-larsen commented 1 year ago

I made fixes on the master branch so that the code generated for the schemas is now done automatically.

I am closing this issue, as the original issue is fixed.