Contributing
Last updated
Last updated
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:
You should know that:
Dolt is largely written in and you should to work with it.
Dolt's SCM is and you will need to to fetch the source code and create pull requests.
Dolt's source code is hosted on and you will want to and if you don't already have one.
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).
You can build dolt from source like so:
Refer to these guides to fix bugs specific to each part of dolt:
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.