Contributing
OpenETL accepts contributions through GitHub. This document covers the contribution process, development setup, and code standards.
Contribution Types
Adapter Development
New adapter implementations for additional data sources (APIs, databases, file systems). See Custom Adapters for the adapter interface specification.
Bug Fixes
Fixes for framework bugs, adapter issues, or documentation errors.
Feature Enhancements
Improvements to existing functionality, optimization, or new framework features.
Development Setup
Repository Setup
git clone https://github.com/jspreadsheet/openetl.git
cd openetl
npm install
Development Workflow
- Create a feature branch from
main - Implement changes with appropriate tests
- Run test suite:
npm test - Ensure TypeScript compilation:
npm run build
Pull Request Process
Before Submitting
- Code Quality: Follow TypeScript coding standards
- Tests: Include unit tests for new functionality
- Documentation: Update relevant documentation
- Type Definitions: Ensure TypeScript types are correct
Submission Steps
- Commit Changes:
git add .
git commit -m "Descriptive commit message"
git push origin feature-branch
-
Create Pull Request:
- Navigate to GitHub repository
- Create pull request against
mainbranch - Provide description of changes
- Reference related issues
-
Review Process:
- Address review feedback
- Update pull request with requested changes
- Maintain clean commit history
Code Standards
TypeScript
- Use strict TypeScript compilation
- Provide type definitions for all public APIs
- Avoid
anytypes where possible
Testing
- Unit tests for adapter methods
- Integration tests for complete pipelines
- Mock external dependencies
- See Custom Adapters for testing examples
Documentation
- Document public APIs and interfaces
- Include code examples for new features
- Update relevant guide documents