Feast is composed of multiple components distributed into multiple repositories:
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
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
Making a Pull Request
Incorporating upstream changes from master
Our preference is the use of git rebase instead of git merge : git pull -r
Signing commits
Commits have to be signed before they are allowed to be merged into the Feast codebase:
Good practices to keep in mind
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
Does this PR introduce a user-facing change
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
Managing CI-test failures
GitHub runner tests
Click checks tab to analyse failed tests
Prow tests
Visit to analyse failed tests
Feast Data Storage Format
Feast data storage contracts are documented in the following locations: