| ## Prerequisites |
| * .NET 6 SDK |
| * Java 11 SDK |
| |
| ## Build Java |
| In repo root: |
| `./gradlew assemble compileIntegrationTestJava` |
| |
| Or a faster variant: |
| `./gradlew assemble compileIntegrationTestJava -x check -x assembleDist -x distTar -x distZip --parallel` |
| |
| ## Build .NET |
| In this dir: `dotnet build` |
| |
| ## Run Tests |
| In this dir: `dotnet test --logger "console;verbosity=normal"` |
| |
| Specific test: `dotnet test --logger "console;verbosity=normal" --filter ClientSocketTests` |
| |
| ## Start a Test Node |
| `gradlew :ignite-runner:runnerPlatformTest --no-daemon` |
| |
| To debug or profile Java side of the tests, run `org.apache.ignite.internal.runner.app.PlatformTestNodeRunner` class in IDEA with a debugger or profiler, |
| then run .NET tests with `dotnet test` or `dotnet test --filter TEST_NAME`. When a server node is present, .NET tests will use it instead of starting a new one. |
| |
| The test node will stop after 30 minutes by default. |
| To change this, set `IGNITE_PLATFORM_TEST_NODE_RUNNER_RUN_TIME_MINUTES` environment variable. |
| |
| To ensure that external test node is used, and a new one is never started by .NET test code, set `IGNITE_DOTNET_REQUIRE_EXTERNAL_SERVER` to `true`. |
| |
| ## Static Code Analysis |
| |
| Static code analysis (Roslyn-based) runs as part of the build and includes code style check. Build fails on any warning. |
| * Analysis rules are defined in `.editorconfig` files (test projects have relaxed rule set). |
| * License header is defined in `stylecop.json` |
| * Warnings As Errors behavior is enabled in `Directory.Build.props` (can be disabled locally for rapid prototyping so that builds are faster and warnings don't distract) |
| |
| ## Release Procedure |
| |
| ### Update Version |
| |
| Update version number in `version.json`. |
| |
| ### Build Binaries |
| `dotnet publish Apache.Ignite --configuration Release --output release/bin` |
| |
| ### Pack NuGet |
| `dotnet pack Apache.Ignite --configuration Release --include-source --output release/nupkg` |
| |
| ### Build Docs |
| 1. `dotnet tool restore` |
| 2. `dotnet docfx docs/docfx.json` |
| |
| Resulting docs are in `docs/_site`. |
| |
| To view them locally, run `dotnet docfx docs/docfx.json --serve`. |