Skip to main content
We welcome contributions to Delta Sharing! This guide covers everything you need to know about contributing to the project, from reporting bugs to submitting major features.

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
1

Search existing issues

Check GitHub Issues to see if someone is already working on this.
2

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
3

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
4

Proceed with implementation

Once you have agreement, proceed with your implementation.
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

1

Fork the repository

Click the “Fork” button on the Delta Sharing GitHub repository.
2

Clone your fork

git clone https://github.com/YOUR_USERNAME/delta-sharing.git
cd delta-sharing
3

Add upstream remote

git remote add upstream https://github.com/delta-io/delta-sharing.git

2. Create a Branch

Create a descriptive branch for your changes:
git checkout -b feature/add-new-connector
# or
git checkout -b fix/client-timeout-issue

3. Make Your Changes

Follow the project’s coding standards and best practices:
Delta Sharing follows the Apache Spark Scala Style Guide.Style checks run automatically during compilation:
build/sbt compile  # Runs ScalaStyle checks
Fix any style violations before committing.
Use the provided formatting and linting tools:
# Auto-format code
python/dev/reformat

# Check for issues
python/dev/lint-python
All code changes must include appropriate tests:For Python:
python/dev/pytest
For Scala:
build/sbt test
Ensure all existing tests pass and add new tests for your changes.
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:
# Use imperative mood
git commit -m "Add support for GCS presigned URLs"

# Reference issue numbers
git commit -m "Fix timeout in client connection (#123)"

# Be descriptive but concise
git commit -m "Update Delta Sharing Protocol to version 2.0

This change adds support for deletion vectors and improves
performance for large table metadata."

5. Sign Your Work

All contributions must be signed off to certify that you have the right to submit the code under the Apache 2.0 license.
Add a sign-off to your commits:
git commit -s -m "Your commit message"
This adds a line to your commit message:
Signed-off-by: Your Name <[email protected]>

Developer Certificate of Origin

By signing off, you certify that:
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.
Configure Git to sign automatically:
git config user.name "Your Name"
git config user.email "[email protected]"

# Sign all commits by default
git config alias.ci "commit -s"

6. Push and Create Pull Request

1

Push to your fork

git push origin feature/add-new-connector
2

Create pull request

Go to the Delta Sharing repository on GitHub and click “New Pull Request”.
3

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
4

Wait for review

Maintainers will review your PR and may request changes.

Pull Request Guidelines

PR Title and Description

Write clear, descriptive PR titles:
Add Python 3.11 support
Fix memory leak in DeltaSharingClient
Update server to support partition filtering

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

1

Automated checks

CI/CD pipeline runs tests and style checks automatically.
2

Code review

Maintainers review your code and provide feedback.
3

Address feedback

Make requested changes and push updates to your branch.
4

Approval and merge

Once approved, maintainers will merge your PR.

Reporting Issues

Found a bug or have a feature request? Create a GitHub issue.

Bug Reports

Include the following information:
  • Delta Sharing version
  • Python/Java/Scala version
  • Operating system
  • Spark version (if applicable)
Provide minimal code that reproduces the issue:
import delta_sharing

# Minimal reproducible example
client = delta_sharing.SharingClient("profile.share")
# Error occurs here...
  • What did you expect to happen?
  • What actually happened?
  • Include error messages and stack traces
  • Relevant logs
  • Screenshots (if applicable)
  • Workarounds you’ve tried

Feature Requests

Describe your feature request:
  1. Use case: What problem does this solve?
  2. Proposed solution: How should it work?
  3. Alternatives: What other approaches did you consider?
  4. Impact: Who benefits from this feature?

Governance

Delta Sharing is governed by the Technical Steering Committee (TSC):

Michael Armbrust

Matei Zaharia

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

Recognition

All contributors are recognized in the project’s commit history and release notes. Significant contributors may be added to the contributors list in the repository. Thank you for contributing to Delta Sharing and helping make secure data sharing accessible to everyone!

Build docs developers (and LLMs) love