Contributing to the SDK
Thank you for your interest in contributing to the Kubiya Workflow SDK! This guide will help you get started.Getting Started
Fork and Clone
Development Setup
Development Workflow
1. Create a Feature Branch
2. Make Your Changes
Follow these guidelines:- Code Style: Follow PEP 8 and use Black for formatting
- Type Hints: Add type hints to all functions
- Docstrings: Use Google-style docstrings
- Tests: Write tests for new features
3. Write Tests
4. Run Tests
5. Update Documentation
Code Architecture
Directory Structure
Adding a New Feature
1. Provider
2. Step Type
3. DSL Extension
Testing Guidelines
Unit Tests
Integration Tests
End-to-End Tests
Documentation Standards
Code Documentation
User Documentation
When adding features, update:- API Reference (
docs/api/
) - User Guide (
docs/guide/
) - Examples (
examples/
) - Changelog (
CHANGELOG.md
)
Pull Request Process
1. Before Submitting
- All tests pass (
pytest
) - Code is formatted (
black .
) - No linting errors (
flake8
) - Type hints added (
mypy
) - Documentation updated
- Changelog entry added
2. PR Description Template
3. Review Process
- CI checks must pass
- Code review by maintainer
- Address feedback
- Maintainer merges PR
Release Process
Version Numbering
We follow Semantic Versioning:- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
Release Steps
Community
Getting Help
- GitHub Issues: Report bugs
- Discussions: Ask questions
Code of Conduct
We follow the Contributor Covenant. Please be respectful and inclusive in all interactions.Recognition
Contributors are recognized in:CONTRIBUTORS.md
file- Release notes
- GitHub contributors page