Contribution Guide
Environment setup
With docker
-
Fork the repository and
git cloneto your local machine. -
Build and access to docker container
docker compose build ubuntu docker compose run --rm ubuntu bash
In case you want custom ruby or duckdb versions, use --build-arg options
docker compose build ubuntu --build-arg RUBY_VERSION=3.1.3 --build-arg DUCKDB_VERSION=1.0.0
Without docker
-
Install Ruby into your local machine.
-
Install duckdb into your local machine.
-
Fork the repository and
git cloneto your local machine. -
Run
bundle install -
Run
rake buildor you might run with C duckdb header and library directories:rake build -- --with-duckdb-include=/duckdb_header_directory --with-duckdb-lib=/duckdb_library_directory
Issue
If you spot a problem, search if an issue already exists. If a related issue doesnβt exist, you can open a new issue.
C Extension Development
For internal conventions when working on the C extension in ext/duckdb/ (function naming rules, extern/static guidelines, etc.), see HACKING.md.
When adding or modifying C extension code, follow the naming conventions described in HACKING.md.
Fix Issues or Add New Features.
-
Run
rake test -
Create new branch to change the code.
-
Change the code.
-
Write test.
-
Run
rake testand confirm all tests pass. -
Git push.
-
Create PR.