| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
Please see Development Guide for project level development instructions.
This guide is targeted at developers looking to contribute to Feast components in the main Feast repository:
A quick list of things to keep in mind as you're making changes:
Fork the Feast Github repo and clone your fork locally. Then make changes to a local branch to the fork.
See Creating a pull request from a fork
Setup pre-commit to automatically lint and format the codebase on commit:
pip install pre-commit
pre-commit install --hook-type pre-commit --hook-type pre-push⚠️ Warning: using the default integrations with IDEs like VSCode or IntelliJ will not sign commits. When you submit a PR, you'll have to re-sign commits to pass the DCO check.
Use git signoffs to sign your commits. See https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification for details
Then, you can sign off commits with the -s flag:
git commit -s -m "My first commit"
GPG-signing commits with -S is optional.
Our preference is the use of git rebase [master] instead of git merge : git pull -r.
Note that this means if you are midway through working through a PR and rebase, you'll have to force push: git push --force-with-lease origin [branch name]
Setting up your development environment for Feast Python SDK / CLI:
# create & activate a virtual environment
python -m venv venv/
source venv/bin/activatepip install --upgrade pippip install -e "sdk/python[dev]"Feast Python SDK / CLI codebase:
To ensure your Python code conforms to Feast Python code standards:
make format-pythonmake lint-pythonSetup pre-commit hooks to automatically format and lint on commit.
Unit tests (pytest) for the Feast Python SDK / CLI can run as follows:
make test-python⚠️ Local configuration can interfere with Unit tests and cause them to fail:
- Ensure no AWS configuration is present and no AWS credentials can be accessed by boto3
- Ensure Feast Python SDK / CLI is not configured with configuration overrides (ie ~/.feast/config should be empty).
There are two sets of tests you can run:
To get local integration tests running, you'll need to have Redis setup:
Redis
Now run make test-python-universal-local
To test across clouds, on top of setting up Redis, you also need GCP / AWS / Snowflake setup.
Note: you can manually control what tests are run today by inspecting RepoConfiguration and commenting out tests that are added to DEFAULT_FULL_REPO_CONFIGS
GCP
gcloud auth login gcloud auth application-default login
AWS
Snowflake
Then run make test-python-integration. Note that for Snowflake / GCP / AWS, this will create new temporary tables / datasets.
Setting up your development environment for Feast Go SDK:
Build the Feast Go Client with the go toolchain:
go buildFeast Go Client codebase:
Autoformat your Go code to satisfy the Code Style standard:
go fmtLint your Go code:
go vetSetup pre-commit hooks to automatically format and lint on commit.
Unit tests for the Feast Go Client can be run as follows:
go test| Back | FazBrowse Home | New Git URL |