Skip to content

Commit 1dada6a

Browse files
authored
Adding more details to the CONTRIBUTING.md (#1888)
* Adding more details to the CONTRIBUTING.md around testing Signed-off-by: Danny Chiao <[email protected]> * Add create PR from fork link Signed-off-by: Danny Chiao <[email protected]> * Fix broken development guide link Signed-off-by: Danny Chiao <[email protected]>
1 parent d3b1d2f commit 1dada6a

1 file changed

Lines changed: 47 additions & 3 deletions

File tree

CONTRIBUTING.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Development Guide: Main Feast Repository
2-
> Please see [Development Guide](https://docs.feast.dev/contributing/development-guide) for project level development instructions.
2+
> Please see [Development Guide](https://docs.feast.dev/project/development-guide) for project level development instructions.
33
44
### Overview
55
This guide is targeted at developers looking to contribute to Feast components in
@@ -8,6 +8,13 @@ the main Feast repository:
88
- [Feast Go Client](#feast-go-client)
99
- [Feast Terraform](#feast-terraform)
1010

11+
## Making a pull request
12+
13+
### Forking the repo
14+
Fork the Feast Github repo and clone your fork locally. Then make changes to a local branch to the fork.
15+
16+
See [Creating a pull request from a fork](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)
17+
1118
### Pre-commit Hooks
1219
Setup [`pre-commit`](https://pre-commit.com/) to automatically lint and format the codebase on commit:
1320
1. Ensure that you have Python (3.7 and above) with `pip`, installed.
@@ -18,6 +25,21 @@ pre-commit install --hook-type pre-commit --hook-type pre-push
1825
```
1926
3. On push, the pre-commit hook will run. This runs `make format` and `make lint`.
2027

28+
### Signing commits
29+
Use git signing to sign your commits. See
30+
https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification for details
31+
32+
Then, you can sign commits with the `-s` flag:
33+
```
34+
git commit -s -m "My first commit"
35+
```
36+
37+
### Incorporating upstream changes from master
38+
Our preference is the use of `git rebase [master]` instead of `git merge` : `git pull -r`.
39+
40+
Note that this means if you are midway through working through a PR and rebase, you'll have to force push:
41+
`git push --force-with-lease origin [branch name]`
42+
2143
## Feast Python SDK / CLI
2244
### Environment Setup
2345
Setting up your development environment for Feast Python SDK / CLI:
@@ -71,13 +93,35 @@ make test-python
7193
> and [no AWS credentials can be accessed](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#configuring-credentials) by `boto3`
7294
> - Ensure Feast Python SDK / CLI is not configured with configuration overrides (ie `~/.feast/config` should be empty).
7395
96+
### Integration Tests
97+
To get tests running, you'll need to have GCP / AWS / Redis setup:
98+
99+
Redis
100+
1. Install Redis: [Quickstart](https://redis.io/topics/quickstart)
101+
2. Run `redis-server`
102+
103+
GCP
104+
1. Install the [Cloud SDK](https://cloud.google.com/sdk/docs/install).
105+
2. Then run login to gcloud:
106+
```
107+
gcloud auth login
108+
gcloud auth application-default login
109+
```
110+
3. Export `GCLOUD_PROJECT=[your project]` to your .zshrc
111+
112+
AWS
113+
1. TODO(adchia): flesh out setting up AWS login (or create helper script)
114+
2. Modify `RedshiftDataSourceCreator` to use your credentials
115+
116+
Then run `make test-python-integration`. Note that for GCP / AWS, this will create new temporary tables / datasets.
117+
74118
## Feast Go Client
75119
:warning: Feast Go Client will move to its own standalone repository in the future.
76120

77121
### Environment Setup
78122
Setting up your development environment for Feast Go SDK:
79-
1. Ensure the following development tools are installed:
80-
- Golang, [`protoc` with the Golang &amp; grpc plugins](https://developers.google.com/protocol-buffers/docs/gotutorial#compiling-your-protocol-buffers)
123+
124+
- Install Golang, [`protoc` with the Golang &amp; grpc plugins](https://developers.google.com/protocol-buffers/docs/gotutorial#compiling-your-protocol-buffers)
81125

82126
### Building
83127
Build the Feast Go Client with the `go` toolchain:

0 commit comments

Comments
 (0)