Skip to content

PyMilvus v3.0.1 Release Notes

Latest

Choose a tag to compare

@XuanYang-cn XuanYang-cn released this 29 Jul 14:55
abf720a

PyMilvus v3.0.1 Release Notes

PyMilvus 3.0.1 is the recommended Python SDK release for Milvus 3.0.

Compatibility: PyMilvus 3.0.1 requires Python 3.9 or later. Python 3.8
is no longer supported.

What's Changed

New APIs and capabilities

  • Add DataType.TEXT handling across schema validation, result decoding, and BulkWriter paths (#3473).
  • Add get_replicate_info() to MilvusClient and AsyncMilvusClient (#3516).
  • Add sync and async dump_messages() support for data-salvage workflows (#3575).
  • Add role and user descriptions, including alter_role() and role-description output from describe_role() (#3608).
  • Add search aggregation and correctly forward group_by_fields (#3647).
  • Add FunctionChain APIs, forward every specified stage during search, and add the XGBoost expression helper (#3652, #3662, #3685).

Schema evolution and function fields

  • Add alter_collection_schema() and support dynamically adding struct fields (#3504, #3569).
  • Route collection-schema mutations through AlterCollectionSchema, retain a legacy AddCollectionField fallback only for servers returning UNIMPLEMENTED, and keep drop-function RPC behavior compatible (#3572, #3706).
  • Support external field mappings and add-field fallback for external collections (#3584,
    #3728).
  • Add drop_function_field(), support MinHash function fields, and require bound index parameters when adding a function field
    (#3600, #3630, #3672).
  • Keep primary-key, partition-key, and clustering-key metadata synchronized when fields are added (#3667).

Iterators, search results, and type handling

  • Move query, Search Iterator V1, and Search Iterator V2 implementations to the client layer while preserving ORM compatibility and aligning ORM deprecation warnings (#3707, #3709, #3714, #3718).
  • Preserve external filtering when creating search iterators (#3730).
  • Add shared field-data and nested-value decoders, remove the dead V1 row extractor, and avoid quadratic nullable-scalar result decoding (#3552, #3555, #3562, #3605, #3713, #3725).
  • Consolidate logical type metadata across search, insert, array, row, and vector paths to remove inconsistent type-specific behavior
    (#3474, #3481, #3499, #3539, #3548, #3550, #3557, #3613).
  • Accept float inputs for FP16 and BF16 vectors (#3546).

Connection recovery and error handling

  • Make sync and async reconnect swap channels atomically, protect active RPCs, and cover retired-channel reclamation (#3565, #3567, #3583).
  • Preserve configured connection timeouts during recovery (#3615).
  • Map only connection-setup RPC failures to CONNECT_FAILED and expose error classification through MilvusException
    (#3590, #3618).

Struct, array, and BulkWriter fixes

  • Preserve nullable vectors in CSV BulkWriter output, support struct-vector fields, and skip payloads for null struct rows and null struct-vector subfields (#3485, #3508, #3588, #3637).
  • Resolve binary-vector search inside struct arrays, preserve struct-array fields reconstructed from schema dictionaries, and support partial updates for struct-array fields (#3520, #3657, #3674).
  • Materialize array query results as standard Python lists (#3655).
  • Improve Volume uploads with safer per-upload options, lower default concurrency, byte-level progress, and request-local concurrent-upload state (#3627).
  • Preserve remote upload prefixes on Windows (#3665).

Validation and correctness fixes

  • Reject oversized or non-positive compaction target_size values (#3496, #3644).
  • Reject booleans as sparse-vector values or indices and improve validation errors (#3626, #3663).
  • Reject empty binary-vector lists with a parameter error instead of leaking an IndexError (#3698).
  • Allow null values in an auto_id primary-key DataFrame column during insert (#3678).
  • Correctly unpack async schema results before collection optimization (#3683).

Compatibility, build, and test tooling

  • Drop Python 3.8 support; PyMilvus now requires Python 3.9 or later (#3700).
  • Migrate development and CI workflows to uv, use Hatchling-backed version resolution, and retain the intended release-branch RC version semantics (#3529, #3534, #3634).
  • Isolate protobuf-generation dependencies and pin the final Milvus 3.0 proto, regenerating the Python bindings (#3692, #3731).
  • Classify maintained test suites and update async, struct-field, and BulkWriter examples (#3595, #3599, #3640).

Full Changelog: v3.0.0...v3.0.1