temporal-sdk: core SDK implementation.temporal-testing: utilities to help write workflow and activity tests.temporal-test-server: in-memory Temporal server for fast tests.temporal-serviceclient: gRPC client for communicating with the service.temporal-shaded: prepackaged version of the SDK with shaded dependencies.temporal-spring-boot-autoconfigure: Spring Boot auto configuration.temporal-kotlin: Kotlin DSL for the SDK.temporal-opentracing: OpenTracing interceptor integration.
- Avoid changing public API signatures. Anything under an
internaldirectory is not part of the public API and may change freely. - The SDK code is written for Java 8.
- Format the code before committing:
./gradlew --offline spotlessApply
- Run the tests. This can take a long time so you may prefer to run individual tests.
To run only the core SDK tests or a single test:
./gradlew test./gradlew :temporal-sdk:test --offline --tests "io.temporal.workflow.*" ./gradlew :temporal-sdk:test --offline --tests "<package.ClassName>"
- Build the project:
./gradlew clean build
- All tests for this each package is located in
$PACKAGE_NAME/src/test/java/io/temporal, where$PACKAGE_NAMEis the name of the package - Workflow API tests should rely on
SDKTestWorkflowRuleto create a worker and register workflows, activities, and nexus services.
- Follow the Chris Beams style for commit messages.
- Every pull request should answer:
- What changed?
- Why?
- Breaking changes?
- Server PR (if the change requires a coordinated server update)
- Comments should be complete sentences and end with a period.
./gradlew spotlessCheckmust pass.- All tests from
./gradlew testmust succeed. - Add new tests for any new feature or bug fix.
- Update documentation for user facing changes.
For more details see CONTRIBUTING.md in the repository root.