...
Keywords: sdk, pymilvus, pymilvus-orm
Released:
Summary
Currently, we have 2 python SDKs for Milvus, PyMilvus and ORM (short for PyMilvus-ORM). Both of them have a unique repository on GitHub and a unique package on PYPI.
...
- Keeping which repo: PyMilvus
- Keeping which set of API:
- step1: both, and we mark PyMilvus API as `deperacated``deprecated`
- step2: pymilvus-orm
- Keeping which package name: pymilvus
Motivation
The release is complicated: ORM requires PyMilvus, thus we have to release PyMilvus first and then release ORM.
Features and bug fixes are done only if both repositories are updated: A bug fix on PyMilvus needs an update on ORM.
Complexity on maintaining: We have to maintain 2 repositories, 2 sets of CI pipelines, 2 GitHub actions.
Design Details
A. Which repository to keep?
GitHub repo(2021.7.15) | PyMilvus | PyMilvus-ORM |
---|---|---|
Stars | 264 | 9 |
Forks | 110 | 23 |
Issues(not closed) | 25 | 6 |
Contributors | 24 | 18 |
Used by(repositories) | 106 | 5 |
Used by(packages) | 21 | 1 |
...
Cons: Lose all the stars and forks of the PyMilvus repository.
B. Which set of APIs to keep and which package name to keep?
Plan B1: Keep PyMilvus APIs and the ORM APIs
...
Cons: All the efforts on ORM are wasted.
C. How to merge 2 repositories?
Three steps for plan A1
Step 1: Prepare locally, write a fully functional script.
...
Step 3: Correct behaviour of ci, docs, Github actions, examples, tests, and changelog.