Skip to content

Comments

fix: add explicit marshmallow<4 constraint to prevent import errors#5992

Draft
Copilot wants to merge 2 commits intomasterfrom
copilot/fix-import-error-milvus-store
Draft

fix: add explicit marshmallow<4 constraint to prevent import errors#5992
Copilot wants to merge 2 commits intomasterfrom
copilot/fix-import-error-milvus-store

Conversation

Copy link
Contributor

Copilot AI commented Feb 19, 2026

What this PR does / why we need it:

Marshmallow 4.0.0 (released April 2025) removed __version_info__, breaking packages that rely on it (e.g. _SUPPORTS_LOAD_DEFAULT = ma.__version_info__ >= (3, 13)). Without an explicit upper bound, fresh installs could resolve to marshmallow 4.x, causing ImportError: cannot import name 'MilvusOnlineStoreConfig' when loading the milvus online store.

  • pyproject.toml: Add marshmallow<4 explicitly to the ge extra. great_expectations already transitively required this, but it was invisible in the manifest.
    -ge = ["great_expectations>=0.15.41,<1"]
    +ge = ["great_expectations>=0.15.41,<1", "marshmallow<4"]
  • All requirements files regenerated: All 15 lock files (ci, requirements, minimal, minimal-sdist, minimal-sdist-build for py3.10/3.11/3.12) have been regenerated following the same steps as make lock-python-dependencies-all. Marshmallow is now pinned to 3.26.2 with feast (pyproject.toml) listed as an explicit source in the CI requirements files.

Which issue(s) this PR fixes:

Misc

Requirements regenerated via uv pip compile and pybuild-deps compile directly (equivalent to make lock-python-dependencies-all), since pixi requires conda-forge which is not accessible in the sandbox environment.

Original prompt

This section details on the original issue you should resolve

<issue_title>RAG Example: cannot import name 'MilvusOnlineStoreConfig'</issue_title>
<issue_description>## Expected Behavior

Able to execute from feast.infra.online_stores.milvus_online_store import MilvusOnlineStoreConfig, which is needed for feast apply in the local RAG example

Current Behavior

ImportError: cannot import name 'MilvusOnlineStoreConfig' from 'feast.infra.online_stores.milvus_online_store'

Steps to reproduce

Specifications

  • Version: feast[milvus,nlp]>=0.51.0
  • Platform: macOS, Python">=3.11,<3.12"
  • Subsystem:

Possible Solution

</issue_description>

<agent_instructions>@copilot can you change the marshmallow dependency in pyproject.toml? please make sure to generate the requirementse files with the make command.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@ntkathole @Billliu1993 Correct import is `from feast.infra.online_stores.milvus_online_store.milvus import MilvusOnlineStoreConfig`

Can you please link me to the example, where import is defined wrong ? </comment_new>
<comment_new>@franciscojavierarceo
@copilot can you change the marshmallow dependency in pyproject.toml? please make sure to generate the requirementse files with the make command.</comment_new>


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…egenerate requirements

Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix import error for MilvusOnlineStoreConfig fix: add explicit marshmallow<4 constraint to prevent import errors Feb 19, 2026
@franciscojavierarceo
Copy link
Member

@copilot you need to run lock-python-dependencies-all

Copy link
Contributor Author

Copilot AI commented Feb 19, 2026

@copilot you need to run lock-python-dependencies-all

Done in commit 017b72a. All 15 requirements files (ci, regular, minimal, minimal-sdist, minimal-sdist-build for py3.10/3.11/3.12) have been regenerated following the same commands as lock-python-dependencies-all. Note: pixi (which requires conda-forge) isn't accessible in the sandbox, so I used uv pip compile and pybuild-deps compile directly — these are the exact same commands that pixi would run internally.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • pixi.sh
    • Triggering command: /usr/bin/curl curl -fsSL REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes an ImportError caused by marshmallow 4.0.0's removal of __version_info__, which breaks packages that depend on it. The fix adds an explicit marshmallow<4 constraint to the ge (great_expectations) extra in pyproject.toml and regenerates the CI requirements lock files.

Changes:

  • Added marshmallow<4 constraint to the ge optional dependency group in pyproject.toml
  • Regenerated CI requirements files for Python 3.10, 3.11, and 3.12 with marshmallow pinned to 3.26.2
  • Updated dependency metadata to show marshmallow is now explicitly required by feast, not just transitively via great_expectations

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
pyproject.toml Added explicit marshmallow<4 constraint to the ge extra to prevent compatibility issues with marshmallow 4.0.0
sdk/python/requirements/py3.10-ci-requirements.txt Regenerated with marshmallow 3.26.2 pinned and updated dependency metadata
sdk/python/requirements/py3.11-ci-requirements.txt Regenerated with marshmallow 3.26.2 pinned and updated dependency metadata
sdk/python/requirements/py3.12-ci-requirements.txt Regenerated with marshmallow 3.26.2 pinned and updated dependency metadata

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

RAG Example: cannot import name 'MilvusOnlineStoreConfig'

2 participants