v3.0.1
Breaking Changes📦 milvusView on GitHub →
⚠ 1 breaking✨ 27 features🐛 5 fixes🔧 23 symbols
Summary
PyMilvus 3.0.1 introduces new APIs for data salvage, role management, and search aggregation, alongside significant improvements in schema evolution, type handling, and connection recovery. This release also drops support for Python 3.8.
⚠️ Breaking Changes
- Python 3.8 is no longer supported. PyMilvus 3.0.1 requires Python 3.9 or later. Users on Python 3.8 must upgrade their Python version to use this release.
✨ New Features
- Added DataType.TEXT handling across schema validation, result decoding, and BulkWriter paths.
- Added get_replicate_info() to MilvusClient and AsyncMilvusClient.
- Added sync and async dump_messages() support for data-salvage workflows.
- Added role and user descriptions, including alter_role() and role-description output from describe_role().
- Added search aggregation and correctly forward group_by_fields.
- Added FunctionChain APIs, forward every specified stage during search, and added the XGBoost expression helper.
- Added alter_collection_schema() and support for dynamically adding struct fields.
- Support for external field mappings and add-field fallback for external collections.
- Added drop_function_field(), support for MinHash function fields, and require bound index parameters when adding a function field.
- Consolidated logical type metadata across search, insert, array, row, and vector paths to remove inconsistent type-specific behavior.
- Accept float inputs for FP16 and BF16 vectors.
- Improved connection recovery with atomic sync and async reconnect swap channels, protection for active RPCs, and retired-channel reclamation.
- Preserved configured connection timeouts during recovery.
- Mapped only connection-setup RPC failures to CONNECT_FAILED and exposed error classification through MilvusException.
- Preserved nullable vectors in CSV BulkWriter output, supported struct-vector fields, and skipped payloads for null struct rows and null struct-vector subfields.
- Resolved binary-vector search inside struct arrays, preserved struct-array fields reconstructed from schema dictionaries, and supported partial updates for struct-array fields.
- Materialized array query results as standard Python lists.
- Improved Volume uploads with safer per-upload options, lower default concurrency, byte-level progress, and request-local concurrent-upload state.
- Preserved remote upload prefixes on Windows.
- Rejected oversized or non-positive compaction target_size values.
- Rejected booleans as sparse-vector values or indices and improved validation errors.
- Rejected empty binary-vector lists with a parameter error instead of leaking an IndexError.
- Allowed null values in an auto_id primary-key DataFrame column during insert.
- Correctly unpacked async schema results before collection optimization.
- Migrated development and CI workflows to uv, used Hatchling-backed version resolution, and retained the intended release-branch RC version semantics.
- Isolated protobuf-generation dependencies and pinned the final Milvus 3.0 proto, regenerating the Python bindings.
- Classified maintained test suites and updated async, struct-field, and BulkWriter examples.
🐛 Bug Fixes
- Route collection-schema mutations through AlterCollectionSchema, retain a legacy AddCollectionField fallback only for servers returning UNIMPLEMENTED, and keep drop-function RPC behavior compatible.
- Move query, Search Iterator V1, and Search Iterator V2 implementations to the client layer while preserving ORM compatibility and aligning ORM deprecation warnings.
- Preserve external filtering when creating search iterators.
- Added shared field-data and nested-value decoders, removed the dead V1 row extractor, and avoided quadratic nullable-scalar result decoding.
- Keep primary-key, partition-key, and clustering-key metadata synchronized when fields are added.
Affected Symbols
DataType.TEXTMilvusClientAsyncMilvusClientMilvusExceptionAlterCollectionSchemaAddCollectionFieldget_replicate_info()dump_messages()alter_role()describe_role()FunctionChain APIsalter_collection_schema()drop_function_field()querySearch Iterator V1Search Iterator V2BulkWriterCSV BulkWriterstruct-vector fieldsstruct-array fieldsVolume uploadsuvHatchling