Contributing to Conductor
We welcome contributions to Conductor! This document provides guidelines and information for contributors.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch from
main - Make your changes
- Submit a pull request
Development Setup
Prerequisites
- Java 17 or later
- Docker and Docker Compose
- Gradle 8.x
Building from Source
./gradlew build
Running Tests
# Unit tests
./gradlew test
# Integration tests (requires Docker)
./gradlew integrationTest
Pull Request Guidelines
Before Submitting
- Ensure all tests pass locally
- Add tests for new functionality
- Update documentation for API changes
- Follow the existing code style
PR Requirements
- Clear description of the change and its motivation
- Reference any related issues
- Include test coverage for new code paths
- No breaking changes without prior discussion
Commit Messages
Follow conventional commit format:
type(scope): description
feat(workflow): add sub-workflow timeout configuration
fix(worker): resolve task polling race condition
docs(api): update workflow definition schema docs
Code Style
- Java: Follow Google Java Style Guide
- Use meaningful variable and method names
- Add Javadoc for public APIs
- Keep methods focused and under 50 lines where possible
Community
- Join our Discord for discussions
- Check GitHub Discussions for Q&A
- Read the Architecture Guide before making core changes
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.