Contributing
Dolt is an open-source SQL database that has Git-like functionality, including branch, merge, clone, push and pull. As we attract more and more users with various use cases and ways of integrating Dolt into their existing workflows and systems, it's not rare for Dolt to need a little bit of work to support a new client library or upstream dependency.
Dolt consists of multiple parts:
Known issues with each part:
Prerequisites
You should know that:
Dolt is largely written in golang and you should install the golang sdk to work with it.
Dolt's SCM is git and you will need to download and install it to fetch the source code and create pull requests.
Dolt's source code is hosted on github and you will want to create an account and follow the instructions for authenticating to GitHub with SSH if you don't already have one.
Retrieve Source Code
Create a fork of the dolt repo(s) by clicking the fork button at the upper right of each of the respective dolthub github repos.
Create a directory for your dolt workspace.
Clone each of the dolt repos using Git.
By default, the dolt repository builds and links against pinned versions of go-mysql-server and vitess, so to develop them together we need to add a local dependencies for dolt
and go-mysql-server
.
Check that everything is working as expected by running dolt's unit tests (this might take a few minutes).
Install Dolt
You can build dolt from source like so:
Fix Issue
Refer to these guides to fix bugs specific to each part of dolt:
Submit Pull Request
Remember to remove local dependencies before pushing your changes.
There is an auto-dependency bump that takes place to keep the different parts up to date. As a result, if your fix required changes to multiple projects, commit them in this order:
vitess
go-mysql-server
dolt
Navigate to the pull requests section of your repo(s).
Click on "New pull request".
Make sure the base repository is set to dolthub/dolt and click "Create pull request".
Submitting the PR will get some automated tests run against the branch and will notify the project maintainers that someone has some changes. If there are failures in the automated tests, the maintainers will let you know what steps you need to take to fix things up. Otherwise, the maintainers will provide feedback, or, if everything looks good, they will merge the PR.
Last updated