LogoLogo
v0.40-branch
v0.40-branch
  • Introduction
  • Community & getting help
  • Roadmap
  • Changelog
  • Getting started
    • Quickstart
    • Concepts
      • Overview
      • Data ingestion
      • Entity
      • Feature view
      • Feature retrieval
      • Point-in-time joins
      • Registry
      • [Alpha] Saved dataset
    • Architecture
      • Overview
      • Language
      • Registry
      • Offline store
      • Online store
      • Batch Materialization Engine
      • Provider
    • Third party integrations
    • FAQ
  • Tutorials
    • Sample use-case tutorials
      • Driver ranking
      • Fraud detection on GCP
      • Real-time credit scoring on AWS
      • Driver stats on Snowflake
    • Validating historical features with Great Expectations
    • Using Scalable Registry
    • Building streaming features
  • How-to Guides
    • Running Feast with Snowflake/GCP/AWS
      • Install Feast
      • Create a feature repository
      • Deploy a feature store
      • Build a training dataset
      • Load data into the online store
      • Read features from the online store
      • Scaling Feast
      • Structuring Feature Repos
    • Running Feast in production (e.g. on Kubernetes)
    • Customizing Feast
      • Adding a custom batch materialization engine
      • Adding a new offline store
      • Adding a new online store
      • Adding a custom provider
    • Adding or reusing tests
  • Reference
    • Codebase Structure
    • Type System
    • Data sources
      • Overview
      • File
      • Snowflake
      • BigQuery
      • Redshift
      • Push
      • Kafka
      • Kinesis
      • Spark (contrib)
      • PostgreSQL (contrib)
      • Trino (contrib)
      • Azure Synapse + Azure SQL (contrib)
    • Offline stores
      • Overview
      • Dask
      • Snowflake
      • BigQuery
      • Redshift
      • DuckDB
      • Spark (contrib)
      • PostgreSQL (contrib)
      • Trino (contrib)
      • Azure Synapse + Azure SQL (contrib)
      • Remote Offline
    • Online stores
      • Overview
      • SQLite
      • Snowflake
      • Redis
      • Dragonfly
      • IKV
      • Datastore
      • DynamoDB
      • Bigtable
      • Remote
      • PostgreSQL (contrib)
      • Cassandra + Astra DB (contrib)
      • MySQL (contrib)
      • Rockset (contrib)
      • Hazelcast (contrib)
      • ScyllaDB (contrib)
      • SingleStore (contrib)
    • Providers
      • Local
      • Google Cloud Platform
      • Amazon Web Services
      • Azure
    • Batch Materialization Engines
      • Snowflake
      • AWS Lambda (alpha)
      • Spark (contrib)
    • Feature repository
      • feature_store.yaml
      • .feastignore
    • Feature servers
      • Python feature server
      • [Alpha] Go feature server
      • Offline Feature Server
    • [Beta] Web UI
    • [Beta] On demand feature view
    • [Alpha] Vector Database
    • [Alpha] Data quality monitoring
    • Feast CLI reference
    • Python API reference
    • Usage
  • Project
    • Contribution process
    • Development guide
    • Backwards Compatibility Policy
      • Maintainer Docs
    • Versioning policy
    • Release process
    • Feast 0.9 vs Feast 0.10+
Powered by GitBook
On this page
  • Setting up your environment
  • Maintainers Development
  • Forked Repo Best Practices
  • Github Actions Workflow on Fork
  • Integration Test Workflow Changes

Was this helpful?

Edit on GitHub
Export as PDF
  1. Project
  2. Backwards Compatibility Policy

Maintainer Docs

PreviousBackwards Compatibility PolicyNextVersioning policy

Last updated 9 months ago

Was this helpful?

Setting up your environment

Please see the for project level development instructions and for specific details on how to set up your develop environment and contribute to Feast.

Maintainers Development

In most scenarios, your code changes or the areas of Feast that you are actively maintaining will only touch parts of the code(e.g one offline store/online store).

Forked Repo Best Practices

  1. You should setup your fork so that you can make pull requests against your own master branch.

    • This prevents unnecessary integration tests and other github actions that are irrelevant to your code changes from being run everytime you would like to make a code change.

    • NOTE: Most workflows are enabled by default so manually that are not needed.

  2. When you are ready to merge changes into the official feast branch, make a pull request with the main feast branch and request a review from other maintainers.

    • Since your code changes should only touch tests that are relevant to your functionality, and other tests should pass as well.

NOTE: Remember to frequently sync your fork master branch with feast-dev/feast:master.

Github Actions Workflow on Fork

  • Recommended: The github actions workflows that should be enabled on the fork are as follows:

    • unit-tests

      • Runs all of the unit tests that should always pass.

    • linter

      • Lints your pr for styling or complexity issues using mypy, isort, and flake.

    • fork-pr-integration-tests-[provider]

      • Run all of the integration tests to test Feast functionality on your fork for a specific provider.

      • The .github/workflows folder has examples of common workflows(aws, gcp, and snowflake).

        1. Move the fork_pr_integration_tests_[provider].yml from .github/fork_workflows to .github/workflows.

        2. Edit fork_pr_integration_tests_[provider].yml (more details below) to only run the integration tests that are relevant to your area of interest.

        3. Push the workflow to your branch and it should automatically be added to the actions on your fork.

    • build_wheels

      • Release verification workflow to use for .

Integration Test Workflow Changes

Fork specific integration tests are run by the fork_pr_integration_tests.yml_[provider] yaml workflow files.

  1. Under the integration-test-python job, replace your github repo with your feast github repo name.

  2. If your offline store/online store needs special setup, add it to the job similar to how gcp is setup.

      - name: Authenticate to Google Cloud
        uses: 'google-github-actions/auth@v1'
        with:
          credentials_json: '${{ secrets.GCP_SA_KEY }}'
      - name: Set up gcloud SDK
        uses: google-github-actions/setup-gcloud@v1
        with:
          project_id: ${{ secrets.GCP_PROJECT_ID }}
    • Access these by setting environment variables as secrets.SECRET_NAME.

  3. To limit pytest in your github workflow to test only your specific tests, leverage the -k option for pytest.

    pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "BigQuery and not dynamo and not Redshift"
    • Each test in Feast is parametrized by its offline and online store so we can filter out tests by name. The above command chooses only tests with BigQuery that do not use Dynamo or Redshift.

  4. Everytime a pull request or a change to a pull request is made, the integration tests, the local integration tests, the unit tests, and the linter should run.

Add any environment variables that you need to your github .

For specific github secrets that you will need to test the already supported datastores(e.g AWS, Bigquery, Snowflake, etc.) refer to this under the Integration Tests section.

Sample fork setups can be found here: and .

Development Guide
Contributing Guide
disable workflows
release
secrets
guide
snowflake
bigquery