Contributing
Welcome! We're glad you're interested in Drizzle ORM and want to help us make it better.
Drizzle ORM is owned by Drizzle Team (opens in a new tab) and maintained by community members, mainly by our core contributors @AndriiSherman (opens in a new tab) @AlexBlokh (opens in a new tab) @dankochetov (opens in a new tab). Everything that is going to be merged should be approved by all core contributors members
There are many ways you can contribute to the Drizzle ORM project
Submitting bug report
To submit a bug or issue, please use our issue form (opens in a new tab) and choose Bug Report
Submitting feature request
To submit a bug or issue, please use our issue form (opens in a new tab) and choose Feature Request
Providing feedback
There are several ways how you can provide a feedback
- You can join our Discord (opens in a new tab) channel and provide feedback there
- You can add new ticket in Discussions (opens in a new tab)
- Mention our Twitter account (opens in a new tab)
Contribution guidelines
General setup
Installing node
Install pnpm
Install docker
Local project setup
Clone project
Building project
Project sctructure
📂 drizzle-orm/ - core package with common logic
📂 changelogs/ - all changelogs by modules
📂 drizzle-orm/src/pg-core/ - package with all resources for PostgreSQL database support
📂 drizzle-orm/src/sqlite-core/ - package with all resources for SQLite database support
📂 drizzle-orm/src/mysql-core/ - package with all resources for MySQL database support
📂 examples/ - package with Drizzle ORM usage examples
📂 integration-tests/ - package with all type of tests for each supported database
Build project
if you run this script from root folder - it will build whole monorepo and prepare package.tgz files. Running this script from specific package folder will only build current package
Run tests
will run all tests in integration test folder
Commits and PRs
Commit guideline
We have specific rules on how commit messages should be structured.
It's important to make sure your commit messages are clear, concise, and informative to make it easier for others to understand the changes you are making
Commit message patten
<package name>: <subject>
<BLANK LINE>
<body>Example
drizzle-orm: [Pg] Add groupBy error message
In specific case, groupBy was responding with unreadable error
...PR guideline
Each PR should be created from a branch, that was named by our pattern
<type>/<name>Example
feature/groupby
fix/groupby-message-fixList of possible types for branch name
- feature
- fix
- bug
- docs
Each PR should contain:
- Tests on feature, that was created
- Tests on bugs, that was fixed