Skip to content
This repository has been archived by the owner on Oct 22, 2023. It is now read-only.

Latest commit

 

History

History
31 lines (20 loc) · 1.3 KB

CONTRIBUTING.md

File metadata and controls

31 lines (20 loc) · 1.3 KB

Contribution guide

Environment set up

At a minimum, to build and test the library, you'll need the following installed on your machine:

  • a JVM
  • Docker (Linux), Docker Desktop (Windows or macOS) or Colima (macOS)

Other tools required to build and test the library (including Golang and Zig) will be downloaded automatically by Gradle.

Common tasks

Run all linting and tests with ./gradlew check.

Run a specific set of tests:

  • JVM: ./gradlew jvmTest
  • Native macOS (ARM): ./gradlew macosArm64Test
  • Native macOS (Intel): ./gradlew macosX64Test
  • Native Windows: ./gradle mingwX64Test
  • Native Linux: ./gradlew linuxX64Test

Filter tests by setting the kotest_filter_specs environment variable. For example: kotest_filter_specs='*DockerClientContainerManagementSpec*' ./gradlew macosArm64Test

Naming conventions

  • Structs passed into Golang methods should be named <method name>Request, eg. CreateContainerRequest

  • Structs returned from Golang methods should be named <method name>Response, and contain a result of type <method name>Result and an error of type Error

    eg. InspectExec should return a InspectExecResponse with a result of type InspectExecResult