A few days ago @zz-jason post a topic Proposal: A Gitbook for TiDB Development Guide which proposes we create a TiDB Development Guide for contributor best understanding TiDB, we may narrow the scope to its SQL layer here, including its
- architecture and implementation
- how to contribute
- development best practice
These days, among offline discussion in our SQL experts and comments happened on the proposal Google Doc[^1], we outline the first stage work items. Below are the items and we hereby kick off a working group for writing TiDB Development Guide. You can reply to this topic to share your experience or take work item.
Outline
- Get started: setting up the development environment, build and connect to the tidb-server, subsections, based on an imagined newbie user journey.
- Install Golang
- Get the code, build, and run
- Setup an IDE @LittleFall
- Write and run unit tests
- Commit code and submit a pull request @tison
- Resolve review comments @bb7133 merge into “Contributor to TiDB”
- Debug and profile @ichn-hu
- Handle conflicts
- Appendix I: Abbreviations in the community
- Appendix II: Set up the pre-commit git hook
- Contribute to TiDB: What can you contribute to the tidb community, and how to contribute to it.
- Understanding TiDB: learn the basic database implementation principles and technicals, which help the audiences to build a knowledge base in their mind. Learn how TiDB is built, the principles, and the code implementations, help the audiences to understand the key components and workflows inside TiDB:
- Overview of TiDB architecture
- Query optimizer
- Query processing
- Transaction
- Project Management on developing a new feature, managing a project, and leading a distributed contributor team.
We are working on the branch zz-jason/tidb-dev-guide now and thus you can just create a pull request against it.
[^1] I personally recommend just discuss on our technical forum as how Rust Internals does.