CtrlK
BlogDocsLog inGet started
Tessl Logo

feast-dev

Development guide for contributing to the Feast codebase. Covers environment setup, testing, linting, project structure, and PR workflow for feast-dev/feast.

60

Quality

69%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/feast-dev/SKILL.md
SKILL.md
Quality
Evals
Security

Feast Development Guide

Environment Setup

# Install development dependencies (uses uv pip sync with pinned requirements)
make install-python-dependencies-dev

# Install minimal dependencies
make install-python-dependencies-minimal

# Install pre-commit hooks (runs formatters and linters on commit)
make install-precommit

Running Tests

Unit Tests

# Run all unit tests
make test-python-unit

# Run a specific test file
python -m pytest sdk/python/tests/unit/test_unit_feature_store.py -v

# Run a specific test by name
python -m pytest sdk/python/tests/unit/test_unit_feature_store.py -k "test_apply" -v

# Run fast unit tests only (no external dependencies)
make test-python-unit-fast

Integration Tests (local)

# Run integration tests in local dev mode
make test-python-integration-local

Linting and Formatting

# Format Python code
make format-python

# Lint Python code
make lint-python

# Run all precommit checks (format + lint)
make precommit-check

# Type checking (entire codebase)
uv run bash -c "cd sdk/python && mypy feast"

# Type-check a single file
uv run bash -c "cd sdk/python && mypy feast/path/to/file.py"

Code Style

  • Use type hints on all function signatures
  • Use from __future__ import annotations at the top of new files
  • Follow existing patterns in the module you are modifying
  • PR titles must follow semantic conventions: feat:, fix:, ci:, chore:, docs:
  • Add a GitHub label to PRs (e.g. kind/bug, kind/feature, kind/housekeeping)
  • Sign off commits with git commit -s (DCO requirement)

Docker Images

# Build all Docker images
make build-docker

# Build feature server Docker image
make build-feature-server-docker

Documentation

# Build Sphinx documentation
make build-sphinx

# Build templates
make build-templates

# Build Helm docs
make build-helm-docs

Documentation and Blog Posts

  • Blog posts must be placed in /infra/website/docs/blog/ — do NOT place them under docs/blog/ or elsewhere.
  • Blog post files must include YAML frontmatter with title, description, date, and authors fields matching the format of existing posts in that directory.
  • All other docs go under docs/ and must be added to docs/SUMMARY.md (GitBook navigation) or they won't appear on the website.
Change typeDoc location
New online storedocs/reference/online-stores/<name>.md + update README.md and SUMMARY.md
New offline storedocs/reference/offline-stores/<name>.md + update README.md, overview.md, SUMMARY.md
New registry backenddocs/reference/registries/<name>.md + update SUMMARY.md
Config optiondocs/reference/feature-store-yaml.md
CLI flag/commanddocs/reference/feast-cli-commands.md
How-to / integrationdocs/how-to-guides/customizing-feast/ or docs/how-to-guides/ + update SUMMARY.md
Architecture / conceptdocs/getting-started/architecture/ or docs/getting-started/components/

Project Structure

sdk/python/feast/          # Main Python SDK
  cli/cli.py               # CLI entry point (feast apply, feast materialize, etc.)
  feature_store.py         # FeatureStore class - core orchestration
  repo_config.py           # feature_store.yaml configuration parsing
  repo_operations.py       # feast apply / feast teardown logic
  infra/                   # Online/offline store implementations
    online_stores/         # Redis, DynamoDB, SQLite, etc.
    offline_stores/        # BigQuery, Snowflake, File, etc.
  transformation/          # On-demand and streaming transformations
protos/feast/              # Protobuf definitions
sdk/python/tests/          # Test suite
  unit/                    # Fast, no external deps
  integration/             # Requires infrastructure

Key Abstractions

  • FeatureStore (feature_store.py): Entry point for all operations
  • FeatureView: Defines a set of features from a data source
  • OnDemandFeatureView: Computed features using request-time transformations
  • Entity: Join key definition (e.g. driver_id, customer_id)
  • DataSource: Where raw data lives (BigQuery, files, Snowflake, etc.)
  • OnlineStore: Low-latency feature serving (Redis, DynamoDB, SQLite)
  • OfflineStore: Historical feature retrieval (BigQuery, Snowflake, file)
Repository
feast-dev/feast
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.