Skip to content

Commit b86a99b

Browse files
authored
Update CONTRIBUTING.md (#2282)
* 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>
1 parent 925bf76 commit b86a99b

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed

CONTRIBUTING.md

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Development Guide: Main Feast Repository
22
> Please see [Development Guide](https://docs.feast.dev/project/development-guide) for project level development instructions.
33
4-
### Overview
4+
## Overview
55
This guide is targeted at developers looking to contribute to Feast components in
66
the main Feast repository:
77
- [Feast Python SDK / CLI](#feast-python-sdk-%2F-cli)
@@ -10,6 +10,20 @@ the main Feast repository:
1010

1111
## Making a pull request
1212

13+
### Pull request checklist
14+
A quick list of things to keep in mind as you're making changes:
15+
- As you make changes
16+
- Make your changes in a [forked repo](#forking-the-repo) (instead of making a branch on the main Feast repo)
17+
- [Sign your commits](#signing-off-commits) as you go (to avoid DCO checks failing)
18+
- [Rebase from master](#incorporating-upstream-changes-from-master) instead of using `git pull` on your PR branch
19+
- Install [pre-commit hooks](#pre-commit-hooks) to ensure all the default linters / formatters are run when you push.
20+
- When you make the PR
21+
- Make a pull request from the forked repo you made
22+
- 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.
23+
- 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.
24+
- Please run tests locally before submitting a PR (e.g. for Python, the [local integration tests](#local-integration-tests))
25+
- Try to keep PRs smaller. This makes them easier to review.
26+
1327
### Forking the repo
1428
Fork the Feast Github repo and clone your fork locally. Then make changes to a local branch to the fork.
1529

@@ -26,6 +40,9 @@ pre-commit install --hook-type pre-commit --hook-type pre-push
2640
3. On push, the pre-commit hook will run. This runs `make format` and `make lint`.
2741

2842
### Signing off commits
43+
> :warning: Warning: using the default integrations with IDEs like VSCode or IntelliJ will not sign commits.
44+
> When you submit a PR, you'll have to re-sign commits to pass the DCO check.
45+
2946
Use git signoffs to sign your commits. See
3047
https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification for details
3148

@@ -96,13 +113,27 @@ make test-python
96113
> - Ensure Feast Python SDK / CLI is not configured with configuration overrides (ie `~/.feast/config` should be empty).
97114
98115
### Integration Tests
99-
To get tests running, you'll need to have GCP / AWS / Redis setup:
116+
There are two sets of tests you can run:
117+
1. Local integration tests (for faster development)
118+
2. Full integration tests (requires cloud environment setups)
119+
120+
#### Local integration tests
121+
To get local integration tests running, you'll need to have Redis setup:
100122

101123
Redis
102124
1. Install Redis: [Quickstart](https://redis.io/topics/quickstart)
103125
2. Run `redis-server`
104126

105-
GCP
127+
Now run `make test-python-universal-local`
128+
129+
#### Full integration tests
130+
To test across clouds, on top of setting up Redis, you also need GCP / AWS / Snowflake setup.
131+
132+
> Note: you can manually control what tests are run today by inspecting
133+
> [RepoConfiguration](https://github.com/feast-dev/feast/blob/master/sdk/python/tests/integration/feature_repos/repo_configuration.py)
134+
> and commenting out tests that are added to `DEFAULT_FULL_REPO_CONFIGS`
135+
136+
**GCP**
106137
1. Install the [Cloud SDK](https://cloud.google.com/sdk/docs/install).
107138
2. Then run login to gcloud:
108139
```
@@ -111,18 +142,19 @@ GCP
111142
```
112143
3. Export `GCLOUD_PROJECT=[your project]` to your .zshrc
113144

114-
AWS
145+
**AWS**
115146
1. TODO(adchia): flesh out setting up AWS login (or create helper script)
116147
2. Modify `RedshiftDataSourceCreator` to use your credentials
117148

118-
Then run `make test-python-integration`. Note that for GCP / AWS, this will create new temporary tables / datasets.
149+
**Snowflake**
150+
- See https://signup.snowflake.com/
151+
152+
Then run `make test-python-integration`. Note that for Snowflake / GCP / AWS, this will create new temporary tables / datasets.
119153

120154
## Feast Java Serving
121155
See [Java contributing guide](java/CONTRIBUTING.md)
122156

123157
## Feast Go Client
124-
:warning: Feast Go Client will move to its own standalone repository in the future.
125-
126158
### Environment Setup
127159
Setting up your development environment for Feast Go SDK:
128160

java/serving/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
### Overview
44
This guide is targeted at developers looking to contribute to Feast Serving:
55
- [Building and running Feast Serving locally](#building-and-running-feast-serving-locally)
6-
- [Feast Java Client](#feast-java-client)
76

87
### Pre-requisites:
98

0 commit comments

Comments
 (0)