All contributors are expected to follow the Code of Conduct.
Please file issues and feature requests on the GitHub issue tracker: https://github.com/adbc-drivers/datafusion/issues
Potential security vulnerabilities should be reported to security@adbc-drivers.org instead. See the Security Policy.
For basic development, the driver can be built and tested like any Rust project.
From the rust/ subdirectory:
$ cargo build
$ cargo testThis will not produce a shared library, however; that requires invoking the full build script. You will need pixi installed. From the repository root:
$ pixi run makeTo run the validation suite, you will first need to build the shared library.
Finally, from the rust/ subdirectory:
$ pixi run validateThis will produce a test report, which can be rendered into a documentation page (using MyST Markdown):
$ pixi run gendocs --output generated/Then look at ./generated/datafusion.md.
Before opening a pull request:
- Review your changes and make sure no stray files, etc. are included.
- Ensure the Apache license header is at the top of all files.
- Check if there is an existing issue. If not, please file one, unless the change is trivial.
- Assign the issue to yourself by commenting just the word
take. - Run the static checks by installing pre-commit,
then running
pre-commit run --all-filesfrom inside the repository. Make sure all your changes are staged/committed (unstaged changes will be ignored).
When writing the pull request description:
-
Ensure the title follows Conventional Commits format. The component should be
rustif it affects the Go driver, or it can be omitted for general maintenance (in general: it should be a directory path relative to the repo root, e.g.rust/authwould also be valid if that directory existed). Example titles:feat(rust): support new data typechore: update action versionsfix!:(rust) return ns instead of us
Ensure that breaking changes are appropriately flagged with a
!as seen in the last example above. -
Make sure the bottom of the description has
Closes #NNN,Fixes #NNN, or similar, so that the issue will be linked to your pull request.