Before You Start
Delta Sharing is an open-source project under the Apache License 2.0. We use GitHub for tracking issues and pull requests, and we follow the Delta Lake Code of Conduct.Code of Conduct
All contributors must adhere to the Delta Lake Code of Conduct to ensure a welcoming and inclusive community.
Ways to Contribute
Report Bugs
Found an issue? Report it on GitHub Issues
Fix Issues
Browse open issues and submit fixes
Add Features
Propose and implement new functionality
Improve Docs
Enhance documentation and examples
Communication Guidelines
Before starting significant work, please communicate with the community to avoid duplicated effort.What Requires Prior Discussion?
A major feature is defined as any change that:- Alters more than 100 lines of code (excluding tests)
- Changes any user-facing behavior
- Adds new public APIs or extensions
- Modifies the Delta Sharing Protocol
Search existing issues
Check GitHub Issues to see if someone is already working on this.
Create a GitHub issue
Open a new issue describing your proposed feature or change. Include:
- Clear description of the problem or use case
- Proposed solution or approach
- Expected impact on existing functionality
Discuss with maintainers
Wait for feedback from the Technical Steering Committee (TSC) or other maintainers. They will:
- Confirm no one else is working on it
- Provide guidance on the approach
- Request a design document if needed
Small patches and bug fixes don’t need prior communication - you can directly submit a pull request.
Where to Communicate
Delta Sharing uses the same community resources as Delta Lake:GitHub Issues
Track bugs, features, and tasks
Slack
Join the community for discussions
Mailing List
Ask questions and share ideas
Pull Requests
Submit your code changes
Development Workflow
1. Fork and Clone
Fork the repository
Click the “Fork” button on the Delta Sharing GitHub repository.
2. Create a Branch
Create a descriptive branch for your changes:3. Make Your Changes
Follow the project’s coding standards and best practices:Scala Code Style
Scala Code Style
Delta Sharing follows the Apache Spark Scala Style Guide.Style checks run automatically during compilation:Fix any style violations before committing.
Python Code Style
Python Code Style
Use the provided formatting and linting tools:
Testing Requirements
Testing Requirements
All code changes must include appropriate tests:For Python:For Scala:Ensure all existing tests pass and add new tests for your changes.
Documentation
Documentation
Update documentation for any user-facing changes:
- Update inline code comments
- Add docstrings for new functions/classes
- Update README.md if adding new features
- Update PROTOCOL.md for protocol changes
4. Commit Your Changes
Follow these commit guidelines:5. Sign Your Work
Add a sign-off to your commits:Developer Certificate of Origin
By signing off, you certify that:Developer Certificate of Origin 1.1
Developer Certificate of Origin 1.1
By making a contribution to this project, I certify that:(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license); or(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
6. Push and Create Pull Request
Fill out PR template
Provide a clear description of your changes:
- What problem does this solve?
- How was it tested?
- Are there breaking changes?
- Link to related issues
Pull Request Guidelines
PR Title and Description
Write clear, descriptive PR titles:PR Checklist
Before submitting, ensure:- Code follows the project’s style guidelines
- All tests pass locally
- New tests added for new functionality
- Documentation updated (if applicable)
- Commits are signed off
- PR description clearly explains the changes
- Related GitHub issues are linked
Review Process
Reporting Issues
Found a bug or have a feature request? Create a GitHub issue.Bug Reports
Include the following information:Environment Details
Environment Details
- Delta Sharing version
- Python/Java/Scala version
- Operating system
- Spark version (if applicable)
Steps to Reproduce
Steps to Reproduce
Provide minimal code that reproduces the issue:
Expected vs Actual Behavior
Expected vs Actual Behavior
- What did you expect to happen?
- What actually happened?
- Include error messages and stack traces
Additional Context
Additional Context
- Relevant logs
- Screenshots (if applicable)
- Workarounds you’ve tried
Feature Requests
Describe your feature request:- Use case: What problem does this solve?
- Proposed solution: How should it work?
- Alternatives: What other approaches did you consider?
- Impact: Who benefits from this feature?
Governance
Delta Sharing is governed by the Technical Steering Committee (TSC): The TSC:- Reviews and approves major features
- Makes decisions on project direction
- Manages releases and versioning
- Maintains the technical charter
Getting Help
Stuck or have questions?Building Guide
Learn how to build from source
Testing Guide
Run tests for your changes
Join Slack
Ask the community for help
Browse Examples
See working examples