Project
Contributing Guide
Contributing Guide
Contributing Guide
This document describes how to contribute to the Duragraph project. Please also review the Code of Conduct and Security Policy.
Local Development
-
Clone the repo:
git clone https://github.com/your-org/duragraph.git cd duragraph -
Install dependencies:
- Go:
go mod tidy - Python:
poetry install(seeworkers/python-adapter) - Node/TypeScript (if applicable):
npm install
- Go:
-
Run services locally:
make up
Make Targets
Common make targets are provided:
make build– build Go binaries and containersmake test– run all tests (Go, Python, etc.)make lint– run linting for all languagesmake up– start local environment via Docker Composemake down– stop local environment
Commit Style
We use Conventional Commits:
feat:for new featuresfix:for bug fixesdocs:for documentation changeschore:for maintenancetest:for adding tests
Example:
feat(api): add SSE streaming endpointCode Style
- Go: enforced via
gofmt,goimports, andgolangci-lintin CI. - Python: linted with
ruff, type-checked withmypy, formatted withblack. - TypeScript: linted with
eslint, formatted withprettier.
Consistency is enforced with pre-commit hooks.
Test Policy
- All new features must include corresponding unit tests.
- Conformance tests must pass before merging.
- Integration tests validate API ↔ Temporal ↔ Workers.
Run full Go tests:
go test ./...Python adapter tests:
cd workers/python-adapter
poetry run pytestConformance Tests
To run conformance tests across adapters:
make conformanceThese verify that both Go and Python workers conform to the activity contract.