From 66fcf7bac9186932dd1e5a3f75ba52f74cd45127 Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Fri, 4 Feb 2022 10:25:20 -0500 Subject: [PATCH 1/5] Add reference to local integration test setup Signed-off-by: Danny Chiao --- CONTRIBUTING.md | 25 ++++++++++++++++++------- java/serving/README.md | 1 - 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bef64577f91..4932f6ae8aa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ # Development Guide: Main Feast Repository > Please see [Development Guide](https://docs.feast.dev/project/development-guide) for project level development instructions. -### Overview +## Overview This guide is targeted at developers looking to contribute to Feast components in the main Feast repository: - [Feast Python SDK / CLI](#feast-python-sdk-%2F-cli) @@ -96,13 +96,23 @@ make test-python > - Ensure Feast Python SDK / CLI is not configured with configuration overrides (ie `~/.feast/config` should be empty). ### Integration Tests -To get tests running, you'll need to have GCP / AWS / Redis setup: +There are two sets of tests you can run: +1. Local integration tests (for faster development) +2. Full integration tests (requires cloud environment setups) + +#### Local integration tests +To get local integration tests running, you'll need to have Redis setup: Redis 1. Install Redis: [Quickstart](https://redis.io/topics/quickstart) 2. Run `redis-server` -GCP +Now run `make test-python-universal-local` + +#### Full integration tests +To test across clouds, on top of setting up Redis, you also need GCP / AWS / Snowflake setup + +**GCP** 1. Install the [Cloud SDK](https://cloud.google.com/sdk/docs/install). 2. Then run login to gcloud: ``` @@ -111,18 +121,19 @@ GCP ``` 3. Export `GCLOUD_PROJECT=[your project]` to your .zshrc -AWS +**AWS** 1. TODO(adchia): flesh out setting up AWS login (or create helper script) 2. Modify `RedshiftDataSourceCreator` to use your credentials -Then run `make test-python-integration`. Note that for GCP / AWS, this will create new temporary tables / datasets. +Snowflake +- See https://signup.snowflake.com/ + +Then run `make test-python-integration`. Note that for Snowflake / GCP / AWS, this will create new temporary tables / datasets. ## Feast Java Serving See [Java contributing guide](java/CONTRIBUTING.md) ## Feast Go Client -:warning: Feast Go Client will move to its own standalone repository in the future. - ### Environment Setup Setting up your development environment for Feast Go SDK: diff --git a/java/serving/README.md b/java/serving/README.md index 0ce2edc091d..d620effe6fa 100644 --- a/java/serving/README.md +++ b/java/serving/README.md @@ -3,7 +3,6 @@ ### Overview This guide is targeted at developers looking to contribute to Feast Serving: - [Building and running Feast Serving locally](#building-and-running-feast-serving-locally) -- [Feast Java Client](#feast-java-client) ### Pre-requisites: From 06f91fbf3b80c642d462321d12aa8ca8f51e7738 Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Fri, 4 Feb 2022 10:29:51 -0500 Subject: [PATCH 2/5] Add commit signing warning Signed-off-by: Danny Chiao --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4932f6ae8aa..5e2785c7141 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,9 @@ pre-commit install --hook-type pre-commit --hook-type pre-push 3. On push, the pre-commit hook will run. This runs `make format` and `make lint`. ### Signing off commits +> :warning: 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 From 9716e818b453dc879e5c254cae67e72674d9bc90 Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Fri, 4 Feb 2022 10:33:40 -0500 Subject: [PATCH 3/5] Add reference to manually configuring tests Signed-off-by: Danny Chiao --- CONTRIBUTING.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e2785c7141..5e5e0ede117 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -113,7 +113,11 @@ Redis Now run `make test-python-universal-local` #### Full integration tests -To test across clouds, on top of setting up Redis, you also need GCP / AWS / Snowflake setup +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](https://github.com/feast-dev/feast/blob/master/sdk/python/tests/integration/feature_repos/repo_configuration.py) +> and commenting out tests that are added to `DEFAULT_FULL_REPO_CONFIGS` **GCP** 1. Install the [Cloud SDK](https://cloud.google.com/sdk/docs/install). @@ -128,7 +132,7 @@ To test across clouds, on top of setting up Redis, you also need GCP / AWS / Sno 1. TODO(adchia): flesh out setting up AWS login (or create helper script) 2. Modify `RedshiftDataSourceCreator` to use your credentials -Snowflake +**Snowflake** - See https://signup.snowflake.com/ Then run `make test-python-integration`. Note that for Snowflake / GCP / AWS, this will create new temporary tables / datasets. From f7e4a26d8a0b35b135e93b56b9b20120feb34d27 Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Fri, 4 Feb 2022 10:46:43 -0500 Subject: [PATCH 4/5] Add PR checklist Signed-off-by: Danny Chiao --- CONTRIBUTING.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e5e0ede117..6c0febced1d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,6 +10,20 @@ the main Feast repository: ## Making a pull request +### Pull request checklist +A quick list of things to keep in mind as you're making changes: +- As you make changes + - Make your changes in a [forked repo](#forking-the-repo) (instead of making a branch on the main Feast repo) + - [Sign your commits](#signing-off-commits) as you go (to avoid DCO checks failing) + - [Rebase from master](#incorporating-upstream-changes-from-master) instead of using `git pull` on your PR branch + - Install [pre-commit hooks](#pre-commit-hooks) to ensure all the default linters / formatters are run when you push. +- When you make the PR + - Make a pull request from the forked repo you made + - Ensure you add a kind tag to the PR (e.g. `kind/bug` or `kind/housekeeping`) or else checks will fail. + - Ensure you leave a release note for any user facing changes in the PR. There is a field automatically generated in the PR request. You can write `NONE` in that field if there are no user facing changes. + - Please run tests locally before submitting a PR (e.g. for Python, the [local integration tests](#local-integration-tests)) + - Try to keep PRs smaller. This makes them easier to review. + ### Forking the repo Fork the Feast Github repo and clone your fork locally. Then make changes to a local branch to the fork. From 9b1d5198e0a7ef3c45c68ededba2c7dc78386066 Mon Sep 17 00:00:00 2001 From: Danny Chiao Date: Fri, 4 Feb 2022 10:48:21 -0500 Subject: [PATCH 5/5] Add PR checklist Signed-off-by: Danny Chiao --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c0febced1d..62e42d4df09 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ A quick list of things to keep in mind as you're making changes: - Install [pre-commit hooks](#pre-commit-hooks) to ensure all the default linters / formatters are run when you push. - When you make the PR - Make a pull request from the forked repo you made - - Ensure you add a kind tag to the PR (e.g. `kind/bug` or `kind/housekeeping`) or else checks will fail. + - Ensure you add a GitHub **label** (i.e. a kind tag to the PR (e.g. `kind/bug` or `kind/housekeeping`)) or else checks will fail. - Ensure you leave a release note for any user facing changes in the PR. There is a field automatically generated in the PR request. You can write `NONE` in that field if there are no user facing changes. - Please run tests locally before submitting a PR (e.g. for Python, the [local integration tests](#local-integration-tests)) - Try to keep PRs smaller. This makes them easier to review.