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

chore: Deprecate value type #2611

Merged
merged 17 commits into from
May 4, 2022

Conversation

felixwang9817
Copy link
Collaborator

What this PR does / why we need it: This PR deprecates the value_type parameter for entities. Users are asked to specify entity types by adding a Field to the schema of a feature view.

Which issue(s) this PR fixes:

Fixes #

@felixwang9817 felixwang9817 force-pushed the deprecate_value_type branch 2 times, most recently from 407c680 to cd52154 Compare April 26, 2022 23:13
@codecov-commenter
Copy link

codecov-commenter commented Apr 26, 2022

Codecov Report

Merging #2611 (50f03b9) into master (cff0133) will decrease coverage by 0.88%.
The diff coverage is 94.67%.

@@            Coverage Diff             @@
##           master    #2611      +/-   ##
==========================================
- Coverage   81.50%   80.61%   -0.89%     
==========================================
  Files         162      163       +1     
  Lines       13380    13717     +337     
==========================================
+ Hits        10905    11058     +153     
- Misses       2475     2659     +184     
Flag Coverage Δ
integrationtests 71.34% <75.00%> (-1.01%) ⬇️
unittests 58.49% <71.59%> (-1.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
sdk/python/feast/infra/provider.py 88.46% <ø> (ø)
sdk/python/feast/on_demand_feature_view.py 80.46% <0.00%> (-0.96%) ⬇️
sdk/python/tests/unit/test_feature_view.py 100.00% <ø> (ø)
sdk/python/feast/entity.py 89.87% <85.71%> (-0.54%) ⬇️
sdk/python/feast/inference.py 86.74% <89.74%> (-0.10%) ⬇️
sdk/python/feast/feature_logging.py 88.63% <100.00%> (+10.85%) ⬆️
sdk/python/feast/feature_store.py 89.25% <100.00%> (+0.01%) ⬆️
sdk/python/feast/feature_view.py 88.70% <100.00%> (+1.51%) ⬆️
sdk/python/feast/infra/offline_stores/file.py 95.26% <100.00%> (+0.04%) ⬆️
...python/feast/infra/offline_stores/offline_utils.py 94.62% <100.00%> (-0.12%) ⬇️
... and 40 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cff0133...50f03b9. Read the comment docs.

@felixwang9817 felixwang9817 force-pushed the deprecate_value_type branch 5 times, most recently from dbd6659 to 543b1c7 Compare April 28, 2022 00:22
@felixwang9817 felixwang9817 force-pushed the deprecate_value_type branch from 543b1c7 to 7edf441 Compare May 2, 2022 21:06
@felixwang9817 felixwang9817 force-pushed the deprecate_value_type branch from 7edf441 to 7dda0b4 Compare May 2, 2022 23:11
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
@pyalex
Copy link
Collaborator

pyalex commented May 3, 2022

General question: how do we resolve conflicts now if two entities with the same name defined in different feature views have different types? How will grouping by entities work (during online serving)?

UPD. to clarify I refer to this grouping logic: https://github.com/feast-dev/feast/blob/master/go/internal/feast/onlineserving/serving.go#L508

sdk/python/feast/entity.py Outdated Show resolved Hide resolved
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
Signed-off-by: Felix Wang <[email protected]>
@felixwang9817 felixwang9817 changed the title chore: Deprecate value type [WIP] chore: Deprecate value type May 4, 2022
@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: felixwang9817, pyalex

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@pyalex
Copy link
Collaborator

pyalex commented May 4, 2022

/lgtm

warnings.warn(
(
"The `value_type` parameter is being deprecated. Instead, the type of an entity "
"should be specified as a Field in the schema of a feature view. Feast 0.22 and "
Copy link
Member

Choose a reason for hiding this comment

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

0.23? since we may be releasing a new minor version soon.

@@ -687,6 +683,9 @@ def apply(

data_sources_to_update = list(data_sources_set_to_update)

# Handle all entityless feature views by using DUMMY_ENTITY as a placeholder entity.
entities_to_update.append(DUMMY_ENTITY)
Copy link
Member

Choose a reason for hiding this comment

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

Any reason this moved up?

@feast-ci-bot feast-ci-bot merged commit 737c488 into feast-dev:master May 4, 2022
achals added a commit to achals/feast that referenced this pull request May 5, 2022
felixwang9817 pushed a commit that referenced this pull request May 5, 2022
This reverts commit 737c488.

Signed-off-by: Achal Shah <[email protected]>
achals pushed a commit that referenced this pull request May 13, 2022
# [0.21.0](v0.20.0...v0.21.0) (2022-05-13)

### Bug Fixes

* Addresses ZeroDivisionError when materializing file source with same timestamps ([#2551](#2551)) ([1e398d9](1e398d9))
* Asynchronously refresh registry for the feast ui command ([#2672](#2672)) ([1b09ca2](1b09ca2))
* Build platform specific python packages with ci-build-wheel ([#2555](#2555)) ([b10a4cf](b10a4cf))
* Delete data sources from registry when using the diffing logic ([#2669](#2669)) ([fc00ca8](fc00ca8))
* Enforce kw args featureservice ([#2575](#2575)) ([160d7b7](160d7b7))
* Enforce kw args in datasources ([#2567](#2567)) ([0b7ec53](0b7ec53))
* Feature logging to Redshift is broken ([#2655](#2655)) ([479cd51](479cd51))
* Feature service to templates ([#2649](#2649)) ([1e02066](1e02066))
* Feature with timestamp type is incorrectly interpreted by Go FS ([#2588](#2588)) ([e3d9588](e3d9588))
* Fix `__hash__` methods ([#2556](#2556)) ([ebb7dfe](ebb7dfe))
* Fix AWS bootstrap template ([#2604](#2604)) ([c94a69c](c94a69c))
* Fix broken proto conversion methods for data sources ([#2603](#2603)) ([00ed65a](00ed65a))
* Fix case where on demand feature view tab is broken if no custom tabs are passed.  ([#2682](#2682)) ([01d3568](01d3568))
* Fix DynamoDB fetches when there are entities that are not found ([#2573](#2573)) ([7076fe0](7076fe0))
* Fix Feast UI parser to work with new APIs ([#2668](#2668)) ([8d76751](8d76751))
* Fix java server after odfv update ([#2602](#2602)) ([0ca6297](0ca6297))
* Fix materialization with ttl=0 bug ([#2666](#2666)) ([ab78702](ab78702))
* Fix push sources and add docs / tests pushing via the python feature server ([#2561](#2561)) ([e8e418e](e8e418e))
* Fixed data mapping errors for Snowflake ([#2558](#2558)) ([53c2ce2](53c2ce2))
* Forcing ODFV udfs to be __main__ module and fixing false positive duplicate data source warning ([#2677](#2677)) ([2ce33cd](2ce33cd))
* Include the ui/build directory, and remove package data ([#2681](#2681)) ([0384f5f](0384f5f))
* Infer features for feature services when they depend on feature views without schemas ([#2653](#2653)) ([87c194c](87c194c))
* Pin dependencies to nearest major version ([#2647](#2647)) ([bb72b7c](bb72b7c))
* Pin pip<22.1 to get around breaking change in pip==22.1 ([#2678](#2678)) ([d3e01bc](d3e01bc))
* Punt deprecation warnings and clean up some warnings. ([#2670](#2670)) ([f775d2e](f775d2e))
* Reject undefined features when using `get_historical_features` or `get_online_features` ([#2665](#2665)) ([36849fb](36849fb))
* Remove ci extra from the feature transformation server dockerfile ([#2618](#2618)) ([25613b4](25613b4))
* Remove incorrect call to logging.basicConfig ([#2676](#2676)) ([8cbf51c](8cbf51c))
* Small typo in CLI ([#2578](#2578)) ([f372981](f372981))
* Switch from `join_key` to `join_keys` in tests and docs ([#2580](#2580)) ([d66c931](d66c931))
* Teardown trino container correctly after tests ([#2562](#2562)) ([72f1558](72f1558))
* Update build_go_protos to use a consistent python path ([#2550](#2550)) ([f136f8c](f136f8c))
* Update data source timestamp inference error message to make sense ([#2636](#2636)) ([3eaf6b7](3eaf6b7))
* Update field api to add tag parameter corresponding to labels in Feature. ([#2610](#2610)) ([689d20b](689d20b))
* Update java integration tests and add more logging ([#2637](#2637)) ([10e23b4](10e23b4))
* Update on demand feature view api ([#2587](#2587)) ([38cd7f9](38cd7f9))
* Update RedisCluster to use redis-py official implementation ([#2554](#2554)) ([ce5606f](ce5606f))
* Use cwd when getting module path ([#2577](#2577)) ([b550e59](b550e59))
* Use ParquetDataset for Schema Inference ([#2686](#2686)) ([4f85e3e](4f85e3e))
* Use timestamp type when converting unixtimestamp feature type to arrow ([#2593](#2593)) ([c439611](c439611))

### Features

* Add hbase online store support in feast ([#2590](#2590)) ([c9eda79](c9eda79))
* Adding SSL options for Postgres ([#2644](#2644)) ([0e809c2](0e809c2))
* Allow Feast UI to be spun up with CLI command: feast ui ([#2667](#2667)) ([44ca9f5](44ca9f5))
* Allow to pass secrets and environment variables to transformation service ([#2632](#2632)) ([ffa33ad](ffa33ad))
* CLI command 'feast serve' should start go-based server if flag is enabled ([#2617](#2617)) ([f3ff812](f3ff812))
* Create stream and batch feature view abstractions ([#2559](#2559)) ([d1f76e5](d1f76e5))
* Postgres supported as Registry, Online store, and Offline store ([#2401](#2401)) ([ed2f979](ed2f979))
* Support entity fields in feature view `schema` parameter by dropping them ([#2568](#2568)) ([c8fcc35](c8fcc35))
* Write logged features to an offline store (Python API) ([#2574](#2574)) ([134dc5f](134dc5f))
* Write logged features to Offline Store (Go - Python integration) ([#2621](#2621)) ([ccad832](ccad832))

### Reverts

* Revert "chore: Deprecate value type (#2611)" (#2643) ([4fbdfb1](4fbdfb1)), closes [#2611](#2611) [#2643](#2643)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants