Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dependencies = [
"pydantic",
"pymilvus[milvus-lite]; platform_machine != 'aarch64'",
"pymilvus; platform_machine == 'aarch64'",
"milvus-lite>=2.5.2rc1; platform_machine != 'aarch64'", # TODO: remove once 2.5.2+ is released (pkg_resources deprecation)
"milvus-lite>=2.5.1; platform_machine != 'aarch64'", # TODO: remove once 2.5.2+ is released (pkg_resources deprecation)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read-only verification: confirm repo uses APIs that may require newer milvus-lite/pymilvus behavior.
rg -n -C2 "MilvusClient\(|token=|timeout=|upsert\(|partial_update=|DataType\.JSON|create_collection\(" evolve/backend/milvus.py

Repository: AgentToolkit/altk-evolve

Length of output: 1438


🌐 Web query:

`For pymilvus/milvus-lite release notes and API docs, which minimum version supports:

  1. MilvusClient(token=..., timeout=...)
  2. upsert(..., partial_update=True)
  3. FieldSchema/DataType.JSON in collection schema
    Please provide official source links and exact version numbers.`

💡 Result:

For pymilvus/milvus-lite: 1. MilvusClient(token=..., timeout=...): pymilvus >= 2.2.x (MilvusClient introduced in PR #1374 merged April 2023, documented in v2.2.x docs with token and timeout parameters). Milvus-lite compatible since pymilvus 2.4.2. 2. upsert(..., partial_update=True): pymilvus >= 2.6.x (feature added in PR #2938 merged August 2025; Zilliz docs show parameter, issue #3364 in 2026 confirms usage). 3. FieldSchema/DataType.JSON in collection schema: pymilvus >= 2.3.x (DataType.JSON=23 in v2.3.x docs; proto support added PR #1422 May 2023; milvus-lite v2.4.11 Dec 2024 fixes JSON bugs). Official sources: - PyMilvus releases/changelog: https://github.com/milvus-io/pymilvus/releases - MilvusClient docs: https://milvus.io/api-reference/pymilvus/v2.2.x/MilvusClient/Client/MilvusClient.md (15), https://milvus.io/api-reference/pymilvus/v2.5.x/MilvusClient/Client/MilvusClient.md (62) - Upsert partial_update: milvus-io/pymilvus#2938 (11), https://docs.zilliz.com/reference/python/python/Vector-upsert (21) - DataType.JSON: https://milvus.io/api-reference/pymilvus/v2.3.x/MilvusClient/Collections/DataType.md (65), https://milvus.io/api-reference/pymilvus/v2.5.x/MilvusClient/Collections/DataType.md (66), PR #1422 (68) - Milvus-lite: https://github.com/milvus-io/milvus-lite (3), requires pymilvus >=2.4.2 (4,5)

Citations:


🏁 Script executed:

# Query PyPI for milvus-lite dependency specifications
python3 << 'EOF'
import json
import urllib.request

def fetch_pypi_json(package_name, version=None):
    """Fetch PyPI package info as JSON."""
    url = f"https://pypi.org/pypi/{package_name}/{version if version else ''}/json"
    try:
        with urllib.request.urlopen(url, timeout=10) as response:
            return json.loads(response.read().decode())
    except Exception as e:
        print(f"Error fetching {package_name}: {e}")
        return None

# Check milvus-lite 2.5.1 and 2.5.2 dependencies
for version in ['2.5.1', '2.5.2']:
    data = fetch_pypi_json('milvus-lite', version)
    if data and 'requires_dist' in data.get('info', {}):
        print(f"\n=== milvus-lite {version} ===")
        requires = data['info'].get('requires_dist') or []
        for req in requires:
            if 'pymilvus' in req.lower():
                print(f"  {req}")
    elif data and 'requires_dist' in data.get('releases', {}).get(version, [{}])[0]:
        print(f"\n=== milvus-lite {version} (from releases) ===")
        for item in data.get('releases', {}).get(version, []):
            if 'requires_dist' in item:
                for req in item['requires_dist']:
                    if 'pymilvus' in req.lower():
                        print(f"  {req}")
    else:
        print(f"\n=== milvus-lite {version}: Could not retrieve requires_dist ===")

# Also check pymilvus 2.6.x changelog for partial_update
print("\n=== Checking pymilvus 2.6.x release info ===")
data = fetch_pypi_json('pymilvus', '2.6.0')
if data:
    print(f"pymilvus 2.6.0 exists on PyPI")
else:
    print("pymilvus 2.6.0 not found on PyPI (may not be released yet)")
EOF

Repository: AgentToolkit/altk-evolve

Length of output: 759


🌐 Web query:

1. milvus-lite PyPI release history: what pymilvus version does milvus-lite 2.5.1 require? (check install_requires in setup.py or requirements on PyPI) 2. pymilvus changelog/release notes: when was partial_update parameter for upsert() added? (exact PR/version) 3. Is pymilvus 2.6.x already released as of April 2026?

💡 Result:

  1. milvus-lite 2.5.1 does not require pymilvus; it is the other way around. pymilvus >=2.4.2 includes milvus-lite as an optional/extra dependency (pymilvus[milvus-lite]). The PyPI page for milvus-lite 2.5.1 lists only 'tqdm' as a runtime dependency, with no pymilvus requirement in install_requires. 2. The partial_update parameter for upsert was added in pymilvus via PR #2938 (merged Aug 21, 2025). It requires Milvus server >=2.6.2 and is supported in pymilvus 2.6.2+ (released Sep 18, 2025), as noted in release notes and issues. 3. Yes, pymilvus 2.6.x is released as of April 2026. Latest is 2.6.11 (Mar 27, 2026), with prior 2.6.x releases from Aug 2025 (2.6.0) through early 2026.

Citations:


Dependency floor creates pymilvus version mismatch risk (critical runtime failure).

Line 15 lowers non-ARM milvus-lite to >=2.5.1, but this does not guarantee pymilvus >= 2.6.2, which is required for the partial_update=True parameter used in evolve/backend/milvus.py line 287. Since milvus-lite 2.5.1 declares no pymilvus dependency (only tqdm), users on non-aarch64 systems can resolve to pymilvus < 2.6.2 (which lacks partial_update support), causing a runtime AttributeError or silent behavior change when upserting entities.

The other APIs (MilvusClient with token/timeout, DataType.JSON) are supported in earlier pymilvus versions (2.2.x and 2.3.x respectively), so they are not the limiting factor. The blocker is partial_update, added to pymilvus 2.6.2 (released Sep 18, 2025).

Raise milvus-lite floor to a version that transively ensures pymilvus >= 2.6.2, or add an explicit pymilvus>=2.6.2 requirement to pyproject.toml.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pyproject.toml` at line 15, The pyproject.toml dependency floor for
"milvus-lite>=2.5.1; platform_machine != 'aarch64'" risks pulling a pymilvus
older than 2.6.2 (which provides partial_update used in evolve/backend/milvus.py
around the upsert call), so update pyproject.toml to either raise the
milvus-lite minimum to a release that transitively requires pymilvus>=2.6.2 or
add an explicit direct requirement "pymilvus>=2.6.2" to ensure partial_update is
available at runtime.

"sentence-transformers",
"typer>=0.9.0",
"uvicorn",
Expand Down
Loading