Skip to content

Contributing to Daft#

Daft is an open-source project and we welcome contributions from the community. Whether you're reporting bugs, proposing features, or contributing code, this guide will help you get started.

Quick Start#

Reporting Issues#

To report bugs and issues with Daft, please file an issue on our issues page.

Additionally, please include the following information in your bug report:

  1. Operating system
  2. Daft version
  3. Python version
  4. Daft runner (native or Ray)

Proposing Features#

We highly encourage you to propose new features or ideas. Please start a GitHub Discussion in our Ideas channel.

When proposing features, please include:

  1. Feature Summary (no more than 3 sentences)
  2. Example usage (pseudo-code to show how it is used)
  3. Corner-case behavior (how should this code behave in various corner-case scenarios)

Contributing Code#

All non-trivial PRs are required to be linked to an issue that has been approved by a maintainer.

Contribution bar (non-trivial PRs):#

1
2
3
4
1.  Link an approved issue (Fixes #…).
2.  Include tests or explain why not.
3.  Keep PRs small; large changes require a plan/design note and should be split.
4.  Disclose material AI usage and what you verified.

Non-trivial PRs that do not meet these requirements may be closed without review.

Trivial PRs#

Trivial PRs (docs, typos, small test fixes, clearly scoped bugfixes) may bypass the issue requirement, but must be labeled no-issue-needed by a maintainer.

What counts as non-trivial#

A PR is considered non-trivial if it: • Changes behavior, APIs, or performance • Touches core execution/planning logic • Adds dependencies or new features • Is large in scope (e.g. > ~300 LOC or many files)

When in doubt, open an issue first.

For detailed development instructions, see our Development Guide.

Governance#

The Daft project is governed by a community of contributors who have helped shape the project into what it is today. Members contribute in different ways and take on a variety of roles.

Maintainer#

A Maintainer is a recognized Contributor who has demonstrated sustained, meaningful contributions to the project. Maintainers are nominated by existing Maintainers or PMC members and approved by a majority vote of the PMC.

  • Maintainer/Review: Recognized contributors with review (and approval) permissions
  • Maintainer/Merge: Maintainers additionally with merge access to the repository

Maintainers/Review:

GitHub Affiliation Focus Areas
@conceptofmind Teraflop AI Performance and UDF bug reports
@everySympathy ByteDance Series slicing, partition optimization
@gweaverbiodev Atoms pyiceberg support, UDF improvements
@kevinzwang SkyPilot Core refactoring (arrow2 migration), UDF system, vLLM, type conversions
@pdames Nvidia Catalog support and improvements
@VOID001 ByteDance Dashboard features, SQL error handling
@caican00 Xiaomi

Maintainers/Merge:

Maintainers who additionally have merge access to the repository.

Name GitHub Affiliation
Chris Kellogg @cckellogg Eventual
Colin Ho @colin-ho Eventual
Cory Grinstead @universalmind303 Eventual
Desmond Cheong @desmondcheongzx Eventual
Everett Kleven @everettVT Eventual
Jay Chia @jaychia Eventual
Jeev Balakrishnan @jeevb Eventual
Oliver Huang @ohbh Eventual
R. C. Howell @rchowell Eventual
Rohit Kulshreshtha @rohitkulshreshtha Eventual
Sam Stokes @samstokes Eventual
Sammy Sidhu @samster25 Eventual
Srinivas Lade @srilman Eventual
Varun Madan @madvart Eventual
YK @ykdojo Eventual
Kejian Ju @Jay-ju Bytedance
Leilei Hu @huleilei Bytedance
Zhenchao Wang @plotor Bytedance
Zhiping Wu @stayrascal Bytedance

Project Management Committee (PMC)#

The PMC provides oversight and governance for the Daft project. PMC members have voting rights on community decisions, including approving new Maintainers and setting the strategic direction of the project.

Name GitHub
Jay Chia @jaychia
Sammy Sidhu @samster25
Varun Madan @madvart