Skip to content

Update pyproject.toml#125

Open
gaodan-fang wants to merge 1 commit intomainfrom
gaodan-fang-patch-4
Open

Update pyproject.toml#125
gaodan-fang wants to merge 1 commit intomainfrom
gaodan-fang-patch-4

Conversation

@gaodan-fang
Copy link
Copy Markdown
Collaborator

@gaodan-fang gaodan-fang commented Apr 1, 2026

pre-release version is blocked by uv lock is there any specific feature we need from milvu-lite 2.5.2?

Summary by CodeRabbit

  • Chores
    • Updated dependency version constraints for improved platform compatibility and stability.

@gaodan-fang gaodan-fang requested a review from illeatmyhat April 1, 2026 18:30
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

A dependency version constraint in pyproject.toml was updated: milvus-lite for non-ARM platforms was downgraded from >=2.5.2rc1 to >=2.5.1. ARM platform dependencies remain unchanged. No code modifications were made.

Changes

Cohort / File(s) Summary
Dependency Version Update
pyproject.toml
Updated non-ARM milvus-lite dependency constraint from >=2.5.2rc1 to >=2.5.1; ARM dependencies unchanged.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Suggested reviewers

  • visahak

Poem

🐰 A version down the dependency tree we hop,
From 2.5.2rc to 2.5.1, we gently drop,
For non-ARM machines, a lighter constraint,
While ARM friends remain content,
No code was changed, just numbers refined—thump thump 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Update pyproject.toml' is vague and generic, using non-descriptive terms that don't convey meaningful information about the actual change (downgrading milvus-lite dependency version). Consider using a more descriptive title like 'Downgrade milvus-lite dependency from >=2.5.2rc1 to >=2.5.1' to clearly communicate the specific change being made.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch gaodan-fang-patch-4

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pyproject.toml`:
- 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.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 921849b3-5495-4819-9cb7-e92b5c761016

📥 Commits

Reviewing files that changed from the base of the PR and between 824e4d9 and cd46a85.

📒 Files selected for processing (1)
  • pyproject.toml

"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.

@vinodmut
Copy link
Copy Markdown
Contributor

vinodmut commented Apr 2, 2026

Please comment on the coderabbit reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants