Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ingest): pydantic v2 compatibility #9434

Merged
merged 17 commits into from
Dec 18, 2023

Conversation

hsheth2
Copy link
Collaborator

@hsheth2 hsheth2 commented Dec 11, 2023

Note that this is still pretty experimental, and all plugins still pin pydantic v1. I'd like the version loosening to go in the 0.12.1.2 release.

If there's issues with our pydantic usage / configs, pydantic throws errors at class creation time. That means that checking datahub check plugins should largely help us check if stuff will work. Additionally, all the tests in tests/unit/config pass with both v1 and v2.

As of now, GX, feast, and a few other sources hard require pydantic v1. Our main CI tests still install pydantic v1 because it's the lowest common denominator. I did upgrade the Airflow 2.7 test to require pydantic v2. However, it's still not a great way of ensuring that we're compatible with both versions.

The data contracts CLI also continues to use pydantic v1 APIs (with either v1 or v2), since it's not easy to write code that works with both v1 and v2 versions of root models.

Closes #8829, follow up on #9220.

Follow ups

  • Add matrix tests for both pydantic v1 and v2
  • Remove pydantic v1 as a requirement for most sources

Checklist

  • The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
  • Links to related issues (if applicable)
  • Tests for the changes have been added/updated (if applicable)
  • Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
  • For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

@github-actions github-actions bot added the ingestion PR or Issue related to the ingestion of metadata label Dec 11, 2023
@ms32035
Copy link
Contributor

ms32035 commented Dec 15, 2023

Just to add that Airflow 2.8 will require pydantic >= 2.3.0

Copy link
Contributor

@treff7es treff7es left a comment

Choose a reason for hiding this comment

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

nice

@hsheth2 hsheth2 added the merge-pending-ci A PR that has passed review and should be merged once CI is green. label Dec 18, 2023
@hsheth2 hsheth2 merged commit ecda3e6 into datahub-project:master Dec 18, 2023
54 checks passed
@hsheth2 hsheth2 deleted the pydantic-v2 branch December 18, 2023 23:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ingestion PR or Issue related to the ingestion of metadata merge-pending-ci A PR that has passed review and should be merged once CI is green.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Compatibility of acryl-datahub package with Pydantic v2
3 participants