-
Notifications
You must be signed in to change notification settings - Fork 1.3k
feat: Add skip_feature_view_validation parameter to FeatureStore.apply() and plan() #5859
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
Merged
franciscojavierarceo
merged 8 commits into
master
from
copilot/update-apply-to-skip-validation
Jan 15, 2026
Merged
Changes from 5 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
9ea4d41
Initial plan
Copilot a3f7c49
Add skip_validation parameter to FeatureStore.apply() and plan()
Copilot 1008130
Update tests with better documentation and structure
Copilot b504182
Run make format-python to fix formatting issues
Copilot ec47532
Simplify unit tests to avoid FeatureStore instantiation issues
Copilot d4fe780
Rename skip_validation to skip_feature_view_validation for clarity
Copilot 8e8dfb1
Add documentation for skip_feature_view_validation parameter
Copilot e6c5ce3
Merge branch 'master' into copilot/update-apply-to-skip-validation
franciscojavierarceo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| """ | ||
| Tests for skip_validation parameter in FeatureStore.apply() and FeatureStore.plan() | ||
|
|
||
| This feature allows users to skip Feature View validation when the validation system | ||
| is being overly strict. This is particularly important for: | ||
| - Feature transformations that go through validation (e.g., _construct_random_input in ODFVs) | ||
| - Cases where the type/validation system is being too restrictive | ||
|
|
||
| Users should be encouraged to report issues on GitHub when they need to use this flag. | ||
| """ | ||
|
|
||
| import inspect | ||
|
|
||
| from feast.feature_store import FeatureStore | ||
|
|
||
|
|
||
| def test_apply_has_skip_validation_parameter(): | ||
| """Test that FeatureStore.apply() method has skip_validation parameter""" | ||
| # Get the signature of the apply method | ||
| sig = inspect.signature(FeatureStore.apply) | ||
|
|
||
| # Check that skip_validation parameter exists | ||
| assert "skip_validation" in sig.parameters | ||
|
|
||
| # Check that it has a default value of False | ||
| param = sig.parameters["skip_validation"] | ||
| assert param.default is False | ||
|
|
||
| # Check that it's a boolean type hint (if type hints are present) | ||
| if param.annotation != inspect.Parameter.empty: | ||
| assert param.annotation == bool | ||
|
|
||
|
|
||
| def test_plan_has_skip_validation_parameter(): | ||
| """Test that FeatureStore.plan() method has skip_validation parameter""" | ||
| # Get the signature of the plan method | ||
| sig = inspect.signature(FeatureStore.plan) | ||
|
|
||
| # Check that skip_validation parameter exists | ||
| assert "skip_validation" in sig.parameters | ||
|
|
||
| # Check that it has a default value of False | ||
| param = sig.parameters["skip_validation"] | ||
| assert param.default is False | ||
|
|
||
| # Check that it's a boolean type hint (if type hints are present) | ||
| if param.annotation != inspect.Parameter.empty: | ||
| assert param.annotation == bool | ||
|
|
||
|
|
||
| def test_skip_validation_use_case_documentation(): | ||
| """ | ||
| Documentation test: This test documents the key use case for skip_validation. | ||
|
|
||
| The skip_validation flag is particularly important for On-Demand Feature Views (ODFVs) | ||
| that use feature transformations. During the apply() process, ODFVs call infer_features() | ||
| which internally uses _construct_random_input() to validate the transformation. | ||
|
|
||
| Sometimes this validation can be overly strict or fail for complex transformations. | ||
| In such cases, users can use skip_validation=True to bypass this check. | ||
|
|
||
| Example use case from the issue: | ||
| - User has an ODFV with a complex transformation | ||
| - The _construct_random_input validation fails or is too restrictive | ||
| - User can now call: fs.apply([odfv], skip_validation=True) | ||
| - The ODFV is registered without going through the validation | ||
|
|
||
| Note: Users should be encouraged to report such cases on GitHub so the Feast team | ||
| can improve the validation system. | ||
| """ | ||
| pass # This is a documentation test |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot since we have
skip_source_validationwe should probably makeskip_validationmore descriptive or explicit about what validation it is skipping.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in commit d4fe780. I've renamed the parameter from
skip_validationtoskip_feature_view_validationthroughout the codebase to make it explicit that it skips feature view validation, which is now consistent with the existingskip_source_validationparameter.Changes:
--skip-validation→--skip-feature-view-validationskip_validation→skip_feature_view_validationFeatureStore.apply(),FeatureStore.plan(),repo_operations.py, CLI commands, and testsUsage:
# CLI feast apply --skip-feature-view-validation feast plan --skip-feature-view-validation