Skip to content

Update great-expectations to latest (>1) #5087

Open

Description

@ntkathole

Expected Behavior

great-expectations version updated to latest (>1).

https://github.com/feast-dev/feast/blob/master/pyproject.toml#L73

Current Behavior

The great_expectations.dataset module, which included classes like PandasDataset, has been deprecated in recent versions of Great Expectations and was fully removed in version 1.0. This change means that attempting to import from great_expectations.dataset will result in a ModuleNotFoundError

https://github.com/feast-dev/feast/blob/master/sdk/python/tests/integration/offline_store/test_dqm_validation.py#L8

Steps to reproduce

Update great-expectations to latest and run sdk/python/tests/integration/offline_store/test_dqm_validation.py

Activity

  1. Raghul-M commented on Aug 5, 2025

    @Raghul-M

    @ntkathole I would like to work on this can you assign me on this?

  2. ntkathole commented on Aug 6, 2025

    @ntkathole
    MemberAuthor

    Thank you @Raghul-M

  3. Raghul-M commented on Jul 13, 2026

    @Raghul-M

    /unassign

  4. MARCOpo1o commented on Jul 26, 2026

    @MARCOpo1o

    Hi, I’d like to work on this issue. I reproduced the breakage with Great Expectations 1.19.1 and traced the migration beyond the removed great_expectations.dataset import

  5. MARCOpo1o commented on Jul 26, 2026

    @MARCOpo1o

    And also GE 1.x removed PandasDataset so the clean migration would make profiler callbacks receive a plain pd.DataFrame, which would breaks existing callbacks using ds.expect_*. Are we ok with that or do we want the API preserved?

  6. ntkathole commented on Jul 27, 2026

    @ntkathole
    MemberAuthor
  7. MARCOpo1o commented on Jul 27, 2026

    @MARCOpo1o
  8. jyejare commented on Jul 27, 2026

    @jyejare
    Collaborator

    No its not intended. We have removed it from dependencies too.

    Since we now have observability built in feast API, UI we are no more dependent on GE.

  9. angelo-lacson commented on Sep 1, 2026

    @angelo-lacson

    Hi, I'm Angelo Lacson, and I'd like to work on this issue.
    I plan to migrate the Great Expectations integration away from the removed PandasDataset API, update the dependency constraint, and update the existing DQM validation test. Is this issue still available?

  10. Mrun25 commented on Oct 15, 2026

    @Mrun25
    Contributor

    Hi! I'd love to pick this up if it's still free. I can see there was interest back in July, but no assignment or PR since, so just checking nobody is actively on it before I dive in.

    I've started scoping the migration: GX 1.x reworked the core APIs (context, expectation suites, checkpoints/validation flow all moved), so this is more than a version bump - the integration points need reworking and the tests updated against the new suite model. Happy to map the full surface and open a PR with updated tests.

    @ntkathole if it's available, could you assign it to me?

  11. CyberRik commented on Nov 4, 2026

    @CyberRik
    Contributor

    I'd like to pick this up - could you assign me?

    Before opening a PR I'd like to confirm the intended direction, since it changes the shape of the fix. The GE integration is still in the code: sdk/python/feast/dqm/profilers/ge_profiler.py is built on great_expectations.dataset.PandasDataset and ge.validate(), both removed in Great Expectations 1.0, and pyproject.toml still carries ge = ["great_expectations>=0.15.41,<1"]. #6594 removed GE from the docs but left the code and the optional extra in place.

    Given the earlier note that Feast is no longer dependent on GE now that observability is built into the API/UI, which path do you prefer?

    1. Remove the DQM/GE integration outright — drop ge_profiler.py, the ge extra, and the test_dqm_validation.py test — matching the deprecation direction.
    2. Migrate to GX 1.x. This is more than a version bump: 1.x has no PandasDataset, so user-defined profilers that call ds.expect_*() would instead receive a plain pd.DataFrame (or a Validator), which changes the public @ge_profiler API.

    Happy to do either once you confirm the preferred path.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions