This document tracks Feast's API compatibility. Users are dependent on Feast providing a stable, compatible API such that Feast upgrades do not significantly impact the systems that they have built on Feast, while developers have to make changes to correct API design decisions that no longer make sense. By tracking Feast's API Compatibility, support Feast versions, this document attempts to find common ground between the two needs.
Feast follows semantic versioning to version its components in the form
MAJOR.MINOR.PATCH. Different Feast Components are versioned together (ie Core, Serving, SDKs).
Stable releases are versioned
Pre-release releases are versioned as
MAJOR.MINOR.PATCH-rc.NUMBER for release candidates.
Feast defines API as anything that is directly user facing, accessible by the user directly. This includes:
SDKs' user facing methods/classes.
Protobufs used in Feast messaging.
gRPC/HTTP Service APIs.
Defining Breaking Changes:
Adding something that users need to use for existing functionality (eg. adding a required parameter).
Changing how a given API should be interpreted.
Changing a default value in parameter in the API.
Removing something from the API.
What steps should developers take when proposing breaking changes.
Propose a deprecation by making a Pull Request and updating the
Deprecation section in this document.
Flag deprecated APIs with
deprecated in code and in release notes in the Pull Request.
Once deprecation period has expired the developer may introduce the breaking change:
Flag Breaking changes in release notes with
Ensure that detailed upgrade instructions are provided in the release notes for users to follow when upgrading.
Support Table defines which versions of Feast components are currently supported:
Feast Go SDK
Feast Python SDK/CLI
Feast Java SDK
Patch Releases typically contain critical backwards compatible bug fixes. Users should ensure that they are running the latest patch release of the selected minor version of Feast.
Feast's toleration for Component Skew is as follows:
Feast Core, Serving, Job Coordinator are compatible with the same patch version.
Feast Core/Serving/Job Coordinator are backwards compatible with Feast SDKs for one minor version. (ie Feast 0.6 is compatible with Feast 0.5 SDKs).
Tracks deprecation in Feast APIs, expiry release and mitigation and migration.
Breaking Change Release
Specifying project in FeatureReferences when retrieving from Serving via
Serving's Service API