Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Install software

  1. Install Java JDK (not JRE) 8.x (Java 9+ is not supported)https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
  2. Set JAVA_HOME environment variable to point to the JDK installation directory (something like "C:\Program Files\Java\jdk1.8.0_111")
  3. Download and unzip Apache Maven to some folder: https://maven.apache.org/download.cgi
  4. Add Maven bin folder to PATH environment variable (example: "c:\Programs\Maven\apache-maven-3.3.9\bin\")
  5. Install latest Visual Studio (free Community Edition will do).

Get source code

For more details on working with GitHub forks and pull requests see How to Contribute#GitProcessContribute OLD#GitProcess

Build Java sources

  1. Change to modules\platforms\dotnet directory
  2. Run build.bat -skipDotNetCore

...

Getting started

  • Get code: git clone https://github.com/apache/ignite.git
  • Change to .NET directory: cd modules/platforms/dotnet
  • Build Java and .NET: ./build.sh
  • Run all tests (takes a while): cd Apache.Ignite.Core.Tests && dotnet test -p Apache.Ignite.Core.Tests.DotNetCore.csproj
  • Run specific test: dotnet test -p Apache.Ignite.Core.Tests.DotNetCore.csproj --filter CacheTest
  • IDE: Open Apache.Ignite.DotNetCore.sln

...

  • Do not break public APIs
    • Do not rename or change existing public APIs in any way - users should be able to upgrade to a new minor version (see SemVer) and their app should keep working
    • Be very careful when adding new public APIs. Public API changes must go through a review by maintainer
    • Pay attention to access modifiers
      • All types within Impl folder should be internal
      • All other types are public and, therefore, are part of public API
  • Tests are required. We strive to cover all imaginable use cases:
    • Happy path: test that API works as expected when provided with good input
    • Bad user input: test that bad method arguments result in ArgumentException, use IgniteArgumentCheck class
    • Other illegal state situations (e.g. get a cache that does not exist): test that resulting exceptions are user-friendly and contain information on how to fix the issue

...

Coding guidelines compliance is checked by .NET Inspections TeamCity suite (see below).

...

There is a build.ps1 file in modules/platforms/dotnet folder (and build. bat that just calls build.ps1 so you don't have to run PowerShell manually). This build script performs end to end build, including Java, .NET and NuGet.

To build everything and produce release binaries (in bin folder) and NuGet packages (in nupkg folder), run the script without parametersarguments.

Run `Get-Help .\build.ps1 -detailed` PowerShell command to view detailed build script documentation.