This guide is targeted at developers looking to contribute to Feast:
Learn How the Feast works.
Feast is composed of distributed into multiple repositories:
Our preference is the use of git rebase instead of git merge : git pull -r
Commits have to be signed before they are allowed to be merged into the Feast codebase:
Fill in the description based on the default template configured when you first open the PR
What this PR does/why we need it
Which issue(s) this PR fixes
Managing CI-test failures
GitHub runner tests
Click checks tab to analyse failed tests
Prow tests
Feast data storage contracts are documented in the following locations:
: Used by BigQuery, Snowflake (Future), Redshift (Future).
: Used by Redis, Google Datastore.
Feast Protobuf API defines the common API used by Feast's Components:
Feast Protobuf API specifications are written in in the Main Feast Repository.
Changes to the API should be proposed via a for discussion first.
The language specific bindings have to be regenerated when changes are made to the Feast Protobuf API:
Helm Chart
Include kind label when opening the PR
Add WIP: to PR name if more work needs to be done prior to review
Avoid force-pushing as it makes reviewing difficult
Visit Prow status page to analyse failed tests
Repository
Description
Component(s)
Hosts all required code to run Feast. This includes the Feast Python SDK and Protobuf definitions. For legacy reasons this repository still contains Terraform config and a Go Client for Feast.
Python SDK / CLI
Protobuf APIs
Documentation
Go Client
Terraform
Java-specific Feast components. Includes the Feast Core Registry, Feast Serving for serving online feature values, and the Feast Java Client for retrieving feature values.
Core
Serving
Java Client
Feast Spark SDK & Feast Job Service for launching ingestion jobs and for building training datasets with Spark
Spark SDK
Job Service
Repository
Language
Regenerating Language Bindings
Python
Run make compile-protos-python to generate bindings
Golang
Run make compile-protos-go to generate bindings
Java
No action required: bindings are generated automatically during compilation.
Helm Chart for deploying Feast on Kubernetes & Spark.
# Include -s flag to signoff
git commit -s -m "My first commit"