Awesome
Brief
Share Milvus proto files across SDK repositories. SDK list for Milvus:
Usage
Each SDK project use milvus-proto as a git submodule. The milvus-proto only shares the proto files, each SDK project compiles the proto files by itself.
First time to add milvus-proto as a submodule
git submodule add https://github.com/milvus-io/milvus-proto.git [target path]
"target path" is the folder to add the submodule
Update exist submodule
git submodule update --init
Develop SDK on a particular version
The milvus-proto has only one branch "master", we have created tags for official version on the branch: v2.0.0, v2.0.1, etc. To develop SDK on a particular version, checkout the tag/commit and submit a commit to the SDK project:
-
go into milvus-proto submodule folder
cd milvus-proto
-
checkout a particular tag/commit
git checkout v2.0.1
-
go to SDK project folder
cd ..
-
submit a commit to the SDK project
-
develop SDK on current proto version
Sync proto files from Milvus main project
To avoid complex workflow on Milvus main project, currently we don't introduce milvus-proto as submodule to the main project. When we implement a new feature with new API, the following steps are recommended:
- add new API to the proto files of the main project, submit a commit
- implement the new API make sure the API can be invoked
- sync the modification to the milvus-proto, submit a commit
- in SDK project, sync the milvus-proto submodule to the commit and submit a commit
- develop SDK and main project parallelly
License
Milvus proto repo is part of LF AI & Data Milvus project under Apache License 2.0.