Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

  1. The release is complicated: ORM requires PyMilvus, thus we have to release PyMilvus first and then release ORM.

  2. Features and bug fixes are done only if both repositories are updated: A bug fix on PyMilvus needs an update on ORM.

  3. 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)PyMilvusPyMilvus-ORM
Stars2649
Forks11023
Issues(not closed)256
Contributors2418
Used by(repositories)1065
Used by(packages)211

...

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.


Compatibility, Deprecation, and Migration Plan

Test Plan

Rejected Alternatives

References