Skip to content

Commit d12e7ef

Browse files
ctkhanhlyTsotne TabidzeWillem PienaarLy Caowoop
authored
feat: Go server (feast-dev#2339)
* Remove sdk/go Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * Add interfaces and overall skeleton (incl working protobufs) Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Wire up FeatureStore & OnlineStore, implement RedisOnlineStore constructor, add tests Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Introduce RepoConfig struct instead of using raw map[string]interface{} Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Pass feast project name to RedisOnlineStore Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add Redis Online Read Test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Implement gRPC server start logic Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Update OnlineRead interface Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Redis reader with hashing implemented Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added implementation for GetOnlineFeatures in featurestore and a simple test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Iterate on key building Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Implement gRPC server Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix some warnings Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix bugs & tests Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Implement redis key builder and reader Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add more TODO comments Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Rebuilt protos Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Ignore read test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add more TODO comments Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Clean up serialize function Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fixed GetOnlineFeatures to so that each EntityKey is a row in the first param of OnlineRead, added values to SerializeValue Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Remove comment Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * return copy of Features from OnlineStore instead of reusing original copy + add response for OnlineStore Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Delete go/protos directory from git, since it's in .gitignore Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix go/server compilation Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add integration test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added http json endpoint + add validation for feature names and entity keys for each requested feature view in GetOnlineFeatures Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Call go subprocess from Python Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fixed GetOnlineFeatures bug Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * removed grpc-gateway + add go http server on fs.serve() Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * experimenting python connector Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * working version of python connector Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fixed python connector error + add a script to build plugin binary Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added a simple connector config type to RepoConfig in python sdk to support feast alpha enable go_feature_server Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * migrating python's sdk get_online_features and its helper functions Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added redis pipeline + passed go tests, haven't tested feature service Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added integration test w/o odfv + dummy entity Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * accidentally removed entity from request Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * passed integration test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * first go server clean version, keep python functions. Next commit will diverge from python function calls for more optimized calls Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added 'optimized' functions Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added goroutines to OnlineRead Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added goroutines to redis OnlineRead, getFeaturesToUse, getEntityMaps and entity struct Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Ensure the correct tests are run for the go feature server Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Format and lint Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Remove Go feature server implementation of Python feature server Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Remove incorrect comments Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Clean up Go feature server test logic Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add docstrings for GoServer class Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Remove unused GoServerError Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Remove unused ConnectorOnlineStore Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Run Go feature server tests separately from main integration tests Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * lint-go + cleaned go code + handle BrokenPipeError in go_server.py Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added create ./go/protos to compile-protos-go in Makefile Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * removed 1 unneeded comment Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fix small bug in go_server raise if error is not brokenpipe in stop function Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add Snowflake back in for Go feature server tests Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * formatted go Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add CI for Go integration tests Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Modify setup.py to build Go protos and clean up Makefile Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Move go build logic to a different file to not trigger on pip install Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix Go protoc command Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * separated create config from json and yaml + changed go server _connect method name + add TODO to user proper logging + fix go_server exception on stop() + change go layout Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added go server lifecycle test + local infra for go server + experiment with new go server implementations Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Only run Go tests on FileSource Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix Makefile commands Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fixed test to use go_feature_server flag in test + added option to 2 go server implementations + fix parsedKind Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fixed goserverlifecyle test implementation Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * fixed goserverlifecycle --- still need to review this test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * added a command to test goserver with thread, works in reasonable time now but need to review go server thread implementation Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Print output Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Clean up Makefile and fix errors in setup.py Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Pin Golang protobuf dependency to specific version Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Format + lint Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Revert previous change Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add back Python version Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix test errors due to rebase Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add Go version to unit test workflow Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix .gitignore Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Format + lint Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add setup Go action to set correct Go version for unit tests Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Test Gopath in workflow Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add Github action for installing protoc during unit tests Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Print stderr for Go proto generation Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Check for PATH and GOBIN in unit tests Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Lint Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Switch from using protoc binary for Go protos to grpcio-tools Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add psutil==5.9.0 dependency for test_go_server_life_cycle test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Specify Go version during Github actions Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add back protoc setup Github action Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Add GOPATH to GITHUB_PATH so that protoc-gen-go is discovered Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Set PATH so that protoc-gen-go can be found Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Update Python3.7 ci-requirements file Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Update all requirements Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix test Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Fix protoc-gen-go bug for all workflows Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Clean up existing test and mark new test as integration Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Lint Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Correctly set GOPATH in workflows Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * Modify AWS Lambda Dockerfile to copy the necessary Go files Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Achal Shah <achals@gmail.com> * merge infra package into feast package Signed-off-by: Achal Shah <achals@gmail.com> * optimized go server + address some PR comments Signed-off-by: Ly Cao <lycao@Lys-MacBook-Pro.local> Signed-off-by: Achal Shah <achals@gmail.com> * added newServingServiceServer to comply with the rest of the code style Signed-off-by: Ly Cao <lycao@Lys-MacBook-Pro.local> Signed-off-by: Achal Shah <achals@gmail.com> * removed an extra err check Signed-off-by: Ly Cao <lycao@Lys-MacBook-Pro.local> Signed-off-by: Achal Shah <achals@gmail.com> * added pre-allocation to online response metadata Signed-off-by: Ly Cao <lycao@Lys-MacBook-Pro.local> Signed-off-by: Achal Shah <achals@gmail.com> * Fix protoc compilation for go and use a unix domain socket file Signed-off-by: Achal Shah <achals@gmail.com> * Use a flag for compilation Signed-off-by: Achal Shah <achals@gmail.com> * Change flag in Signed-off-by: Achal Shah <achals@gmail.com> * fix: Remove redis service to prevent more conflicts and add redis node to master_only (feast-dev#2354) * Fix redis on master.yml Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Remove hack in make_feature_store_yaml Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix error Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix tests Signed-off-by: Kevin Zhang <kzhang@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Added additional value types to UI parser and removed references to registry-bq.json (feast-dev#2361) Signed-off-by: Yun Nan Liu <yunnanl@twitter.com> Co-authored-by: Yun Nan Liu <yunnanl@twitter.com> Signed-off-by: Achal Shah <achals@gmail.com> * fix:revert back to jdk 11 for datatypes package Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * fix:upgrade feast ui packages to fix critical vulnerabilities Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Add support for semantic release (feast-dev#2332) * Add support for semantic release Signed-off-by: Willem Pienaar <git@willem.co> * Fix typos Signed-off-by: Willem Pienaar <git@willem.co> * Require a Personal Access Token Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Allow all snowflake python connector connection methods to be available to Feast (feast-dev#2356) * Allow all snowflake python connector connection methods to be available to feast Signed-off-by: Miles Adkins <miles.adkins@snowflake.com> * format/lint Signed-off-by: Miles Adkins <miles.adkins@snowflake.com> * feat: have feast using snowflake python connector for authentication Signed-off-by: Miles Adkins <miles.adkins@snowflake.com> * fix random print Signed-off-by: Miles Adkins <miles.adkins@snowflake.com> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Fix Redshift bug that stops waiting on statements after 5 minutes (feast-dev#2363) Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Feast Spark Offline Store (feast-dev#2349) * State of feast Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up changes Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix random incorrect changes Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix build errors Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add spark offline store components to test against current integration tests Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Rename to pass checks Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix issues Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix type checking issues Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up print statements for first review Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix flake 8 lint tests Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add warnings for alpha version release Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Format Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Address review Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Address review Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add file store functionality Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add example feature repo Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update data source creator Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Make cli work for feast init with spark Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update the docs Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up code Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up more code Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Uncomment repo configs Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix setup.py Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update dependencies Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix ci dependencies Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Screwed up rebase Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Screwed up rebase Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Screwed up rebase Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Realign with master Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix accidental changes Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Make type map change cleaner Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Address review comments Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix tests accidentally broken Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add comments Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Reformat Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix logger Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Remove unused imports Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix imports Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix CI dependencies Signed-off-by: Danny Chiao <danny@tecton.ai> * Prefix destinations with project name Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update comment Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix 3.8 Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * temporary fix Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * rollback Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * update Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update ci? Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Move third party to contrib Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix imports Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Remove third_party refactor Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Revert ci requirements and update comment in type map Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Revert 3.8-requirements Signed-off-by: Kevin Zhang <kzhang@tecton.ai> Co-authored-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Update versions of helm charts + java pom files Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Event timestamps response (feast-dev#2355) * ability to get event timestamps from online response Signed-off-by: Vitaly Sergeyev <vsergeyev@better.com> * fix event timestamp bugs Signed-off-by: Vitaly Sergeyev <vsergeyev@better.com> * python formatting Signed-off-by: Vitaly Sergeyev <vsergeyev@better.com> * optional param to retrieve event_timestamp in online_reponse Signed-off-by: Vitaly Sergeyev <vsergeyev@better.com> * formatting Signed-off-by: Vitaly Sergeyev <vsergeyev@better.com> * renaming param Signed-off-by: Vitaly Sergeyev <vsergeyev@better.com> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Metadata changes & making data sources top level objects to power Feast UI (feast-dev#2336) * Squash commits for metadata changes Signed-off-by: Danny Chiao <danny@tecton.ai> * tests Signed-off-by: Danny Chiao <danny@tecton.ai> * Add more tests Signed-off-by: Danny Chiao <danny@tecton.ai> * lint Signed-off-by: Danny Chiao <danny@tecton.ai> * Add apply test Signed-off-by: Danny Chiao <danny@tecton.ai> * Add apply test Signed-off-by: Danny Chiao <danny@tecton.ai> * Add apply test Signed-off-by: Danny Chiao <danny@tecton.ai> * lint Signed-off-by: Danny Chiao <danny@tecton.ai> * fix bigquery source Signed-off-by: Danny Chiao <danny@tecton.ai> * fix test Signed-off-by: Danny Chiao <danny@tecton.ai> * fix spark source Signed-off-by: Danny Chiao <danny@tecton.ai> * fix spark source Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Remove buggy branch identification Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * fix action and set go version Signed-off-by: Achal Shah <achals@gmail.com> * Complie python protos correctly Signed-off-by: Achal Shah <achals@gmail.com> * Set up go in the pr integration test workflow Signed-off-by: Achal Shah <achals@gmail.com> * Nuke go requirements for python ci (for the moment) Signed-off-by: Achal Shah <achals@gmail.com> * Update redis port Signed-off-by: Achal Shah <achals@gmail.com> * ci: Add version bump script Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Fix broken release preparation Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Add ci bot as committer and fix typo in dry-run config Signed-off-by: feast-ci-bot <feast-ci-bot@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * chore(release): release 0.19.0 # [0.19.0](feast-dev/feast@v0.18.0...v0.19.0) (2022-03-05) ### Bug Fixes * Added additional value types to UI parser and removed references to registry-bq.json ([feast-dev#2361](feast-dev#2361)) ([d202d51](feast-dev@d202d51)) * Fix Redshift bug that stops waiting on statements after 5 minutes ([feast-dev#2363](feast-dev#2363)) ([74f887f](feast-dev@74f887f)) * Method _should_use_plan only returns true for local sqlite provider ([feast-dev#2344](feast-dev#2344)) ([fdb5f21](feast-dev@fdb5f21)) * Remove redis service to prevent more conflicts and add redis node to master_only ([feast-dev#2354](feast-dev#2354)) ([993616f](feast-dev@993616f)) * Rollback Redis-py to Redis-py-cluster ([feast-dev#2347](feast-dev#2347)) ([1ba86fb](feast-dev@1ba86fb)) * Update github workflow to prevent redis from overlapping ports. ([feast-dev#2350](feast-dev#2350)) ([c2a6c6c](feast-dev@c2a6c6c)) ### Features * Add owner field to Entity and rename labels to tags ([412d625](feast-dev@412d625)) * Allow all snowflake python connector connection methods to be available to Feast ([feast-dev#2356](feast-dev#2356)) ([ec7385c](feast-dev@ec7385c)) * Allowing password based authentication and SSL for Redis in Java feature server ([0af8adb](feast-dev@0af8adb)) * Event timestamps response ([feast-dev#2355](feast-dev#2355)) ([5481caf](feast-dev@5481caf)) * Feast Spark Offline Store ([feast-dev#2349](feast-dev#2349)) ([98b8d8d](feast-dev@98b8d8d)) * Initial merge of Web UI logic ([feast-dev#2352](feast-dev#2352)) ([ce3bc59](feast-dev@ce3bc59)) * Key ttl setting for redis online store ([feast-dev#2341](feast-dev#2341)) ([236a108](feast-dev@236a108)) * Metadata changes & making data sources top level objects to power Feast UI ([feast-dev#2336](feast-dev#2336)) ([43da230](feast-dev@43da230)) Signed-off-by: Achal Shah <achals@gmail.com> * chore: Fix changelog and disable release comments Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Fix unhashable Snowflake and Redshift sources Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * chore: Remove needs-kind and release not requirement Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * chore: Remove release note block Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Uncheck prerelease status for patch releases Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Fix default feast apply path without any extras (feast-dev#2373) * fix: Fix default feast apply path without any extras Signed-off-by: Danny Chiao <danny@tecton.ai> * revert removing ge Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * docs: Add short section about github actions (feast-dev#2315) * Add short section about github actions Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Move to contributing.md Signed-off-by: Kevin Zhang <kzhang@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Use the correct dockerhub image tag when building feature servers (feast-dev#2372) * fix: Use the correct dockerhub image tag when building feature servers Signed-off-by: Achal Shah <achals@gmail.com> * Print attempt Signed-off-by: Achal Shah <achals@gmail.com> * Increase sleep interval Signed-off-by: Achal Shah <achals@gmail.com> * More logging and sleep Signed-off-by: Achal Shah <achals@gmail.com> * change logging to debug Signed-off-by: Achal Shah <achals@gmail.com> * Change the dockerimage name Signed-off-by: Achal Shah <achals@gmail.com> * Change version to have periods Signed-off-by: Achal Shah <achals@gmail.com> * Change version entirely Signed-off-by: Achal Shah <achals@gmail.com> * Undo unintended changes Signed-off-by: Achal Shah <achals@gmail.com> * Remove dead branch Signed-off-by: Achal Shah <achals@gmail.com> * compile go as part of python ci setup Signed-off-by: Achal Shah <achals@gmail.com> * set path with gopath/bin Signed-off-by: Achal Shah <achals@gmail.com> * Set path for commands correctly Signed-off-by: Achal Shah <achals@gmail.com> * Set up go for lint-go Signed-off-by: Achal Shah <achals@gmail.com> * Remove makefile stuff Signed-off-by: Achal Shah <achals@gmail.com> * Fix workflows and Makefile commands Signed-off-by: Achal Shah <achals@gmail.com> * protoc-gen-go-grpc Signed-off-by: Achal Shah <achals@gmail.com> * install go deps first Signed-off-by: Achal Shah <achals@gmail.com> * Compile go protos as well Signed-off-by: Achal Shah <achals@gmail.com> * Remove go mod tidy from the deps target Signed-off-by: Achal Shah <achals@gmail.com> * Better python tooling Signed-off-by: Achal Shah <achals@gmail.com> * Remove container Signed-off-by: Achal Shah <achals@gmail.com> * Upgrade lint go as well Signed-off-by: Achal Shah <achals@gmail.com> * Upgrade lint go as well Signed-off-by: Achal Shah <achals@gmail.com> * More logging for unit-go Signed-off-by: Achal Shah <achals@gmail.com> * Install using python setup.py develop Signed-off-by: Achal Shah <achals@gmail.com> * install-python-ci-dependencies Signed-off-by: Achal Shah <achals@gmail.com> * Skip tests that need a feature repo Signed-off-by: Achal Shah <achals@gmail.com> * Skip a scary forking test Signed-off-by: Achal Shah <achals@gmail.com> * Remove all the crusty port stuff and disable the lifecycle test Signed-off-by: Achal Shah <achals@gmail.com> * Remove more crusty port stuff Signed-off-by: Achal Shah <achals@gmail.com> * Update skip message Signed-off-by: Achal Shah <achals@gmail.com> * Introduce a sleep before reading values Signed-off-by: Achal Shah <achals@gmail.com> * Disable one more test configuration since background thread-based monitoring doesn't currently work Signed-off-by: Achal Shah <achals@gmail.com> * Disable the test entirely Signed-off-by: Achal Shah <achals@gmail.com> * ci: Add support for semantic release (feast-dev#2332) * Add support for semantic release Signed-off-by: Willem Pienaar <git@willem.co> * Fix typos Signed-off-by: Willem Pienaar <git@willem.co> * Require a Personal Access Token Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Feast Spark Offline Store (feast-dev#2349) * State of feast Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up changes Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix random incorrect changes Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix build errors Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add spark offline store components to test against current integration tests Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Rename to pass checks Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix issues Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix type checking issues Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up print statements for first review Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix flake 8 lint tests Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add warnings for alpha version release Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Format Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Address review Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Address review Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add file store functionality Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * lint Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add example feature repo Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update data source creator Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Make cli work for feast init with spark Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update the docs Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up code Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up more code Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Uncomment repo configs Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix setup.py Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update dependencies Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix ci dependencies Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Screwed up rebase Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Screwed up rebase Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Screwed up rebase Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Realign with master Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix accidental changes Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Make type map change cleaner Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Address review comments Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix tests accidentally broken Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add comments Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Reformat Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix logger Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Remove unused imports Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix imports Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix CI dependencies Signed-off-by: Danny Chiao <danny@tecton.ai> * Prefix destinations with project name Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update comment Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix 3.8 Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * temporary fix Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * rollback Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * update Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update ci? Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Move third party to contrib Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix imports Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Remove third_party refactor Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Revert ci requirements and update comment in type map Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Revert 3.8-requirements Signed-off-by: Kevin Zhang <kzhang@tecton.ai> Co-authored-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Update versions of helm charts + java pom files Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Metadata changes & making data sources top level objects to power Feast UI (feast-dev#2336) * Squash commits for metadata changes Signed-off-by: Danny Chiao <danny@tecton.ai> * tests Signed-off-by: Danny Chiao <danny@tecton.ai> * Add more tests Signed-off-by: Danny Chiao <danny@tecton.ai> * lint Signed-off-by: Danny Chiao <danny@tecton.ai> * Add apply test Signed-off-by: Danny Chiao <danny@tecton.ai> * Add apply test Signed-off-by: Danny Chiao <danny@tecton.ai> * Add apply test Signed-off-by: Danny Chiao <danny@tecton.ai> * lint Signed-off-by: Danny Chiao <danny@tecton.ai> * fix bigquery source Signed-off-by: Danny Chiao <danny@tecton.ai> * fix test Signed-off-by: Danny Chiao <danny@tecton.ai> * fix spark source Signed-off-by: Danny Chiao <danny@tecton.ai> * fix spark source Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Remove buggy branch identification Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Add version bump script Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Fix broken release preparation Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Add ci bot as committer and fix typo in dry-run config Signed-off-by: feast-ci-bot <feast-ci-bot@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * chore(release): release 0.19.0 * Added additional value types to UI parser and removed references to registry-bq.json ([feast-dev#2361](feast-dev#2361)) ([d202d51](feast-dev@d202d51)) * Fix Redshift bug that stops waiting on statements after 5 minutes ([feast-dev#2363](feast-dev#2363)) ([74f887f](feast-dev@74f887f)) * Method _should_use_plan only returns true for local sqlite provider ([feast-dev#2344](feast-dev#2344)) ([fdb5f21](feast-dev@fdb5f21)) * Remove redis service to prevent more conflicts and add redis node to master_only ([feast-dev#2354](feast-dev#2354)) ([993616f](feast-dev@993616f)) * Rollback Redis-py to Redis-py-cluster ([feast-dev#2347](feast-dev#2347)) ([1ba86fb](feast-dev@1ba86fb)) * Update github workflow to prevent redis from overlapping ports. ([feast-dev#2350](feast-dev#2350)) ([c2a6c6c](feast-dev@c2a6c6c)) * Add owner field to Entity and rename labels to tags ([412d625](feast-dev@412d625)) * Allow all snowflake python connector connection methods to be available to Feast ([feast-dev#2356](feast-dev#2356)) ([ec7385c](feast-dev@ec7385c)) * Allowing password based authentication and SSL for Redis in Java feature server ([0af8adb](feast-dev@0af8adb)) * Event timestamps response ([feast-dev#2355](feast-dev#2355)) ([5481caf](feast-dev@5481caf)) * Feast Spark Offline Store ([feast-dev#2349](feast-dev#2349)) ([98b8d8d](feast-dev@98b8d8d)) * Initial merge of Web UI logic ([feast-dev#2352](feast-dev#2352)) ([ce3bc59](feast-dev@ce3bc59)) * Key ttl setting for redis online store ([feast-dev#2341](feast-dev#2341)) ([236a108](feast-dev@236a108)) * Metadata changes & making data sources top level objects to power Feast UI ([feast-dev#2336](feast-dev#2336)) ([43da230](feast-dev@43da230)) Signed-off-by: Achal Shah <achals@gmail.com> * chore: Fix changelog and disable release comments Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * ci: Uncheck prerelease status for patch releases Signed-off-by: Willem Pienaar <git@willem.co> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Fix default feast apply path without any extras (feast-dev#2373) * fix: Fix default feast apply path without any extras Signed-off-by: Danny Chiao <danny@tecton.ai> * revert removing ge Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Making a name for data sources not a breaking change (feast-dev#2379) * fix: Making a name for data sources not a breaking change Signed-off-by: Danny Chiao <danny@tecton.ai> * fix test Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Update some fields optional in UI parser (feast-dev#2380) Signed-off-by: Yun Nan Liu <yunnanl@twitter.com> Co-authored-by: Yun Nan Liu <yunnanl@twitter.com> Co-authored-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * fix: Fix spark docs (feast-dev#2382) * Fix spark docs Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix readme.md Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix md Signed-off-by: Kevin Zhang <kzhang@tecton.ai> Co-authored-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * feat: Makefile for contrib for Issue feast-dev#2364 (feast-dev#2366) * Add make file Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Fix makefile Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Add documentation Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Clean up Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * Update documentation Signed-off-by: Kevin Zhang <kzhang@tecton.ai> * update make target Signed-off-by: Kevin Zhang <kzhang@tecton.ai> Co-authored-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Achal Shah <achals@gmail.com> * Closes threadpool resources upon datastore online_write_batch completion (feast-dev#2386) Signed-off-by: Pamela Toman <ptoman@paloaltonetworks.com> Signed-off-by: Achal Shah <achals@gmail.com> * CR comments Signed-off-by: Achal Shah <achals@gmail.com> Co-authored-by: Tsotne Tabidze <tsotne@tecton.ai> Co-authored-by: Willem Pienaar <willem@Willems-MacBook-Pro.local> Co-authored-by: Ly Cao <lycao@Lys-MacBook-Pro.local> Co-authored-by: Willem Pienaar <git@willem.co> Co-authored-by: Ly Cao <lycao@lys-macbook-pro.myfiosgateway.com> Co-authored-by: Felix Wang <wangfelix98@gmail.com> Co-authored-by: Achal Shah <achals@gmail.com> Co-authored-by: Kevin Zhang <kzhang@tecton.ai> Co-authored-by: mickey-liu <mickey.y.liu@gmail.com> Co-authored-by: Yun Nan Liu <yunnanl@twitter.com> Co-authored-by: Danny Chiao <danny@tecton.ai> Co-authored-by: Willem Pienaar <6728866+woop@users.noreply.github.com> Co-authored-by: sfc-gh-madkins <82121043+sfc-gh-madkins@users.noreply.github.com> Co-authored-by: Vitaly Sergeyev <vsergeyev@better.com> Co-authored-by: feast-ci-bot <feast-ci-bot@willem.co> Co-authored-by: ptoman-pa <95256508+ptoman-pa@users.noreply.github.com>
1 parent 40593c6 commit d12e7ef

110 files changed

Lines changed: 3724 additions & 24109 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/linter.yml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ jobs:
1515
with:
1616
python-version: "3.7"
1717
architecture: x64
18+
- name: Setup Go
19+
id: setup-go
20+
uses: actions/setup-go@v2
21+
with:
22+
go-version: 1.17.7
1823
- name: Upgrade pip version
1924
run: |
2025
pip install --upgrade "pip>=21.3.1"
@@ -35,16 +40,30 @@ jobs:
3540
- name: Install pip-tools
3641
run: pip install pip-tools
3742
- name: Install dependencies
38-
run: make install-python-ci-dependencies
43+
run: |
44+
make compile-protos-go
45+
make install-python-ci-dependencies
3946
- name: Lint python
4047
run: make lint-python
4148

4249
lint-go:
43-
container: gcr.io/kf-feast/feast-ci:latest
44-
runs-on: [ubuntu-latest]
50+
runs-on: ubuntu-latest
4551
steps:
4652
- uses: actions/checkout@v2
53+
- name: Setup Go
54+
id: setup-go
55+
uses: actions/setup-go@v2
56+
with:
57+
go-version: 1.17.7
58+
- name: Setup Python
59+
id: setup-python
60+
uses: actions/setup-python@v2
61+
with:
62+
python-version: 3.7
63+
- name: Upgrade pip version
64+
run: |
65+
pip install --upgrade "pip>=21.3.1"
4766
- name: Install dependencies
48-
run: make install-go-ci-dependencies
67+
run: make install-go-ci-dependencies
4968
- name: Lint go
5069
run: make lint-go

.github/workflows/master_only.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,14 @@ jobs:
5454
docker push $ECR_REGISTRY/$ECR_REPOSITORY:${{ steps.image-tag.outputs.DOCKER_IMAGE_TAG }}
5555
outputs:
5656
DOCKER_IMAGE_TAG: ${{ steps.image-tag.outputs.DOCKER_IMAGE_TAG }}
57-
integration-test-python:
57+
integration-test-python-and-go:
5858
needs: build-lambda-docker-image
5959
runs-on: ${{ matrix.os }}
6060
strategy:
6161
fail-fast: false
6262
matrix:
6363
python-version: [ 3.7, 3.8, 3.9 ]
64+
go-version: [ 1.17.0 ]
6465
os: [ ubuntu-latest ]
6566
env:
6667
OS: ${{ matrix.os }}
@@ -73,6 +74,11 @@ jobs:
7374
with:
7475
python-version: ${{ matrix.python-version }}
7576
architecture: x64
77+
- name: Setup Go
78+
id: setup-go
79+
uses: actions/setup-go@v2
80+
with:
81+
go-version: ${{ matrix.go-version }}
7682
- name: Set up Cloud SDK
7783
uses: google-github-actions/setup-gcloud@v0
7884
with:
@@ -113,13 +119,12 @@ jobs:
113119
- name: Start Redis
114120
uses: supercharge/redis-github-action@1.4.0
115121
with:
116-
redis-version: ${{ matrix.redis-version }}
117122
redis-port: 12345
118123
- name: Setup Redis Cluster
119124
run: |
120125
docker pull vishnunair/docker-redis-cluster:latest
121126
docker run -d -p 6001:6379 -p 6002:6380 -p 6003:6381 -p 6004:6382 -p 6005:6383 -p 6006:6384 --name redis-cluster vishnunair/docker-redis-cluster
122-
- name: Test python
127+
- name: Test python and go
123128
env:
124129
FEAST_SERVER_DOCKER_IMAGE_TAG: ${{ needs.build-lambda-docker-image.outputs.DOCKER_IMAGE_TAG }}
125130
FEAST_USAGE: "False"

.github/workflows/pr_integration_tests.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,9 @@ jobs:
144144
- name: Install pip-tools
145145
run: pip install pip-tools
146146
- name: Install dependencies
147-
run: make install-python-ci-dependencies
147+
run: |
148+
make compile-protos-go
149+
make install-python-ci-dependencies
148150
- name: Setup Redis Cluster
149151
run: |
150152
docker pull vishnunair/docker-redis-cluster:latest

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ jobs:
4040
- name: Release
4141
if: github.event.inputs.dry_run == 'false'
4242
run: |
43-
npx -p @semantic-release/changelog -p @semantic-release/git -p @semantic-release/exec -p semantic-release semantic-release
43+
npx -p @semantic-release/changelog -p @semantic-release/git -p @semantic-release/exec -p semantic-release semantic-release

.github/workflows/unit_tests.yml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ jobs:
2020
with:
2121
python-version: ${{ matrix.python-version }}
2222
architecture: x64
23+
- name: Setup Go
24+
id: setup-go
25+
uses: actions/setup-go@v2
26+
with:
27+
go-version: 1.17.7
2328
- name: Upgrade pip version
2429
run: |
2530
pip install --upgrade "pip>=21.3.1"
@@ -40,7 +45,9 @@ jobs:
4045
- name: Install pip-tools
4146
run: pip install pip-tools
4247
- name: Install dependencies
43-
run: make install-python-ci-dependencies
48+
run: |
49+
make compile-protos-go
50+
make install-python-ci-dependencies
4451
- name: Test Python
4552
env:
4653
SNOWFLAKE_CI_DEPLOYMENT: ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
@@ -61,9 +68,21 @@ jobs:
6168

6269
unit-test-go:
6370
runs-on: ubuntu-latest
64-
container: gcr.io/kf-feast/feast-ci:latest
6571
steps:
6672
- uses: actions/checkout@v2
73+
- name: Setup Python
74+
id: setup-python
75+
uses: actions/setup-python@v2
76+
with:
77+
python-version: 3.7
78+
- name: Upgrade pip version
79+
run: |
80+
pip install --upgrade "pip>=21.3.1"
81+
- name: Setup Go
82+
id: setup-go
83+
uses: actions/setup-go@v2
84+
with:
85+
go-version: 1.17.7
6786
- name: Install dependencies
6887
run: make install-go-ci-dependencies
6988
- name: Compile protos

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ dmypy.json
186186
sdk/python/docs/html
187187
sdk/python/feast/protos/
188188
sdk/go/protos/
189+
go/protos/
189190

190191
#benchmarks
191192
.benchmarks
@@ -218,3 +219,5 @@ ui/.vercel
218219
**/yarn-debug.log*
219220
**/yarn-error.log*
220221

222+
# Go subprocess binaries (built during feast pip package building)
223+
sdk/python/feast/binaries/

.releaserc.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,3 @@ module.exports = {
7474
}],
7575
]
7676
}
77-

Makefile

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
1818
MVN := mvn -f java/pom.xml ${MAVEN_EXTRA_OPTS}
19-
PROTO_TYPE_SUBDIRS = core serving types storage
20-
PROTO_SERVICE_SUBDIRS = core serving
2119
OS := linux
2220
ifeq ($(shell uname -s), Darwin)
2321
OS = osx
@@ -35,13 +33,11 @@ protos: compile-protos-go compile-protos-python compile-protos-docs
3533

3634
build: protos build-java build-docker build-html
3735

38-
install-ci-dependencies: install-python-ci-dependencies install-java-ci-dependencies install-go-ci-dependencies
39-
4036
# Python SDK
4137

42-
install-python-ci-dependencies:
38+
install-python-ci-dependencies: install-go-ci-dependencies
4339
cd sdk/python && python -m piptools sync requirements/py$(PYTHON)-ci-requirements.txt
44-
cd sdk/python && python setup.py develop
40+
cd sdk/python && COMPILE_GO=true python setup.py develop
4541

4642
lock-python-ci-dependencies:
4743
cd sdk/python && python -m piptools compile -U --extra ci --output-file requirements/py$(PYTHON)-ci-requirements.txt
@@ -50,8 +46,7 @@ package-protos:
5046
cp -r ${ROOT_DIR}/protos ${ROOT_DIR}/sdk/python/feast/protos
5147

5248
compile-protos-python:
53-
@$(foreach dir,$(PROTO_TYPE_SUBDIRS),cd ${ROOT_DIR}/protos; python -m grpc_tools.protoc -I. --grpc_python_out=../sdk/python/feast/protos/ --python_out=../sdk/python/feast/protos/ --mypy_out=../sdk/python/feast/protos/ feast/$(dir)/*.proto;)
54-
@$(foreach dir,$(PROTO_TYPE_SUBDIRS),grep -rli 'from feast.$(dir)' sdk/python/feast/protos | xargs -I@ sed -i.bak 's/from feast.$(dir)/from feast.protos.feast.$(dir)/g' @;)
49+
python setup.py build_python_protos
5550

5651
install-python:
5752
cd sdk/python && python -m piptools sync requirements/py$(PYTHON)-requirements.txt
@@ -81,6 +76,14 @@ test-python-universal-local:
8176
test-python-universal:
8277
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration --universal sdk/python/tests
8378

79+
test-python-go-server:
80+
go build -o ${ROOT_DIR}/sdk/python/feast/binaries/goserver github.com/feast-dev/feast/go/cmd/goserver
81+
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration --goserver sdk/python/tests
82+
83+
test-python-go-server-lifecycle:
84+
go build -o ${ROOT_DIR}/sdk/python/feast/binaries/goserver github.com/feast-dev/feast/go/cmd/goserver
85+
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration --goserverlifecycle sdk/python/tests
86+
8487
format-python:
8588
# Sort
8689
cd ${ROOT_DIR}/sdk/python; python -m isort feast/ tests/
@@ -123,20 +126,25 @@ build-java-no-tests:
123126
# Go SDK
124127

125128
install-go-ci-dependencies:
126-
go get -u github.com/golang/protobuf/protoc-gen-go
127-
go get -u golang.org/x/lint/golint
129+
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0
130+
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0
131+
132+
compile-protos-go: install-go-ci-dependencies
133+
pip install grpcio-tools==1.34.0
134+
python sdk/python/setup.py build_go_protos
128135

129-
compile-protos-go:
130-
$(foreach dir,types serving core storage,cd ${ROOT_DIR}/protos; protoc -I/usr/local/include -I. --go_out=plugins=grpc,paths=source_relative:../sdk/go/protos feast/$(dir)/*.proto;)
136+
compile-go-feature-server: compile-protos-go
137+
go mod tidy
138+
go build -o ${ROOT_DIR}/sdk/python/feast/binaries/goserver github.com/feast-dev/feast/go/cmd/goserver
131139

132-
test-go:
133-
cd ${ROOT_DIR}/sdk/go; go test ./...
140+
test-go: install-go-ci-dependencies
141+
go test ./...
134142

135143
format-go:
136-
cd ${ROOT_DIR}/sdk/go; gofmt -s -w *.go
144+
gofmt -s -w go/
137145

138-
lint-go:
139-
cd ${ROOT_DIR}/sdk/go; go vet
146+
lint-go: compile-protos-go
147+
go vet ./go/internal/feast ./go/cmd/goserver
140148

141149
# Docker
142150

go.mod

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,29 @@
11
module github.com/feast-dev/feast
22

3+
go 1.17
4+
35
require (
4-
github.com/Masterminds/goutils v1.1.0 // indirect
5-
github.com/Masterminds/semver v1.5.0 // indirect
6-
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
7-
github.com/feast-dev/feast/sdk/go v0.0.0-20200516052424-09ff3dda724c // indirect
86
github.com/ghodss/yaml v1.0.0
9-
github.com/gogo/protobuf v1.3.1 // indirect
10-
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
11-
github.com/golang/mock v1.2.0
7+
github.com/go-redis/redis/v8 v8.11.4
128
github.com/golang/protobuf v1.5.2
13-
github.com/google/go-cmp v0.5.5
14-
github.com/huandu/xstrings v1.2.0 // indirect
15-
github.com/lyft/protoc-gen-validate v0.1.0 // indirect
16-
github.com/mitchellh/copystructure v1.0.0 // indirect
17-
github.com/mitchellh/go-homedir v1.1.0
18-
github.com/mwitkow/go-proto-validators v0.2.0 // indirect
19-
github.com/pseudomuto/protoc-gen-doc v1.3.0 // indirect
20-
github.com/pseudomuto/protokit v0.2.0 // indirect
21-
github.com/russross/blackfriday/v2 v2.1.0 // indirect
22-
github.com/spf13/cobra v0.0.4
23-
github.com/spf13/viper v1.4.0
24-
github.com/woop/protoc-gen-doc v1.3.0 // indirect
25-
go.opencensus.io v0.22.3 // indirect
26-
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
27-
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
28-
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f
29-
golang.org/x/tools v0.1.8 // indirect
30-
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
31-
google.golang.org/grpc v1.29.1
32-
google.golang.org/protobuf v1.27.1 // indirect
33-
gopkg.in/russross/blackfriday.v2 v2.0.0 // indirect
34-
gopkg.in/yaml.v2 v2.2.4
35-
istio.io/gogo-genproto v0.0.0-20191212213402-78a529a42cd8 // indirect
36-
istio.io/tools v0.0.0-20191228030621-c4eb6a11039c // indirect
9+
github.com/google/uuid v1.1.2
10+
github.com/kelseyhightower/envconfig v1.4.0
11+
github.com/spaolacci/murmur3 v1.1.0
12+
github.com/stretchr/testify v1.7.0
13+
google.golang.org/grpc v1.44.0
14+
google.golang.org/protobuf v1.27.1
3715
)
3816

39-
go 1.13
17+
require (
18+
github.com/cespare/xxhash/v2 v2.1.2 // indirect
19+
github.com/davecgh/go-spew v1.1.1 // indirect
20+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
21+
github.com/google/go-cmp v0.5.7 // indirect
22+
github.com/pmezard/go-difflib v1.0.0 // indirect
23+
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 // indirect
24+
golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect
25+
golang.org/x/text v0.3.6 // indirect
26+
google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 // indirect
27+
gopkg.in/yaml.v2 v2.4.0 // indirect
28+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
29+
)

0 commit comments

Comments
 (0)