Skip to main content

feast-dev

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

来源信息

仓库
feast-dev/feast
最近来源活动
2026年10月5日 10:55
检测到的 SKILL.md 语言
英语
星标
7,334
分支
1,473

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
feast-dev
description
Development guide for contributing to the Feast codebase. Covers environment setup, testing, linting, project structure, and PR workflow for feast-dev/feast.
license
Apache-2.0
compatibility
Works with Claude Code, OpenAI Codex, and any Agent Skills compatible tool. Requires Python 3.10+, uv, and git.
metadata
{"author":"feast-dev","version":"1.0"}
# Feast Development Guide ## Environment Setup ```bash # 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 ```bash # 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) ```bash # Run integration tests in local dev mode make test-python-integration-local ``` ## Linting and Formatting ```bash # 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 - Do not put `pip install` commands in docstrings or code comments. Security scanners flag them as runtime package installs, which fail in air-gapped or mirror-only environments. Name the extra instead (e.g. "Requires the ``glide`` extra (``feast[glide]``).") and keep install commands in `docs/`. - 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 ```bash # Build all Docker images make build-docker # Build feature server Docker image make build-feature-server-docker ``` ## Documentation ```bash # 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 type | Doc location | |---|---| | New online store | `docs/reference/online-stores/<name>.md` + update `README.md` and `SUMMARY.md` | | New offline store | `docs/reference/offline-stores/<name>.md` + update `README.md`, `overview.md`, `SUMMARY.md` | | New registry backend | `docs/reference/registries/<name>.md` + update `SUMMARY.md` | | Config option | `docs/reference/feature-store-yaml.md` | | CLI flag/command | `docs/reference/feast-cli-commands.md` | | How-to / integration | `docs/how-to-guides/customizing-feast/` or `docs/how-to-guides/` + update `SUMMARY.md` | | Architecture / concept | `docs/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)
在 GitHub 查看