Skip to content

Latest commit

 

History

History
78 lines (56 loc) · 2.07 KB

File metadata and controls

78 lines (56 loc) · 2.07 KB

Contributing to Restate .NET SDK

Thank you for your interest in contributing! This is a community-driven project and all contributions are welcome.

Prerequisites

Building

dotnet build

Running Tests

# All tests
dotnet test

# Specific test project
dotnet test test/Restate.Sdk.Tests
dotnet test test/Restate.Sdk.Generators.Tests

# Specific test
dotnet test --filter "FullyQualifiedName~ProtocolIntegrationTests"

Code Formatting

The CI pipeline enforces consistent formatting. Check locally:

dotnet format --verify-no-changes

Fix formatting issues:

dotnet format

Project Structure

src/
├── Restate.Sdk/              Core SDK (context hierarchy, protocol, hosting)
├── Restate.Sdk.Generators/   Roslyn source generator (netstandard2.0)
├── Restate.Sdk.Testing/      Mock contexts for unit testing
└── Restate.Sdk.Lambda/       AWS Lambda adapter
test/
├── Restate.Sdk.Tests/        Core SDK tests
├── Restate.Sdk.Generators.Tests/  Generator tests
└── Restate.Sdk.Benchmarks/   BenchmarkDotNet microbenchmarks
samples/                       Working sample applications

Pull Request Process

  1. Fork the repository and create a feature branch
  2. Make your changes with tests
  3. Run dotnet build && dotnet test to verify
  4. Run dotnet format to fix formatting
  5. Submit a PR with a clear description of the change

Coding Standards

  • Follow existing code patterns and naming conventions
  • Add XML doc comments for public API surface
  • Use file access modifier for test-only types
  • Keep the public API minimal — use internal by default
  • Source generator changes require dotnet clean + rebuild (stale artifacts)

Reporting Issues

  • Use GitHub Issues for bugs and feature requests
  • Include Restate server version, .NET SDK version, and reproduction steps for bugs