Skip to content

Commit

Permalink
Update CONTRIBUTING.md (#2282)
Browse files Browse the repository at this point in the history
* Add reference to local integration test setup

Signed-off-by: Danny Chiao <danny@tecton.ai>

* Add commit signing warning

Signed-off-by: Danny Chiao <danny@tecton.ai>

* Add reference to manually configuring tests

Signed-off-by: Danny Chiao <danny@tecton.ai>

* Add PR checklist

Signed-off-by: Danny Chiao <danny@tecton.ai>

* Add PR checklist

Signed-off-by: Danny Chiao <danny@tecton.ai>
  • Loading branch information
adchia authored Feb 7, 2022
1 parent 925bf76 commit b86a99b
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 8 deletions.
46 changes: 39 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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 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.

### Forking the repo
Fork the Feast Github repo and clone your fork locally. Then make changes to a local branch to the fork.

Expand All @@ -26,6 +40,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

Expand Down Expand Up @@ -96,13 +113,27 @@ 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.

> 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).
2. Then run login to gcloud:
```
Expand All @@ -111,18 +142,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:

Expand Down
1 change: 0 additions & 1 deletion java/serving/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down

0 comments on commit b86a99b

Please sign in to comment.