You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Feast Python Feature Server Helm Chart](#feast-python-feature-server-helm-chart)
42
37
-[Testing with Github Actions workflows](#testing-with-github-actions-workflows)
43
38
-[Feast Data Storage Format](#feast-data-storage-format)
44
39
## Overview
45
40
This guide is targeted at developers looking to contribute to Feast components in
46
41
the main Feast repository:
47
42
-[Feast Python SDK / CLI](#feast-python-sdk--cli)
48
43
-[Feast Java Serving](#feast-java-serving)
49
-
-[Feast Go Client](#feast-go-client)
50
44
51
45
Please see [this page](../reference/codebase-structure.md) for more details on the structure of the entire codebase.
52
46
@@ -135,7 +129,7 @@ Note that this means if you are midway through working through a PR and rebase,
135
129
### Environment Setup
136
130
Setting up your development environment for Feast Python SDK / CLI:
137
131
1. Ensure that you have Docker installed in your environment. Docker is used to provision service dependencies during testing, and build images for feature servers and other components.
138
-
1. Please note that we use [Docker with BuiltKit](https://docs.docker.com/develop/develop-images/build_enhancements/).
132
+
- Please note that we use [Docker with BuiltKit](https://docs.docker.com/develop/develop-images/build_enhancements/).
139
133
2. Ensure that you have `make`, Python (3.8 and above) with `pip`, installed.
140
134
3._Recommended:_ Create a virtual environment to isolate development dependencies to be installed
141
135
```sh
@@ -147,13 +141,20 @@ Setting up your development environment for Feast Python SDK / CLI:
147
141
```sh
148
142
pip install --upgrade pip
149
143
```
150
-
151
-
5. (Optional): Install Node & Yarn. Then run the following to build Feast UI artifacts for use in `feast ui`
144
+
5. (M1 Mac only): Follow the [dev guide](https://github.com/feast-dev/feast/issues/2105)
145
+
6. Install pip-tools
146
+
```sh
147
+
pip install piptools
148
+
```
149
+
7. (Optional): Install Node & Yarn. Then run the following to build Feast UI artifacts for use in `feast ui`
152
150
```
153
151
make build-ui
154
152
```
155
-
156
-
6. Install development dependencies for Feast Python SDK / CLI
153
+
8. Install mysql (needed for ci dependencies)
154
+
```sh
155
+
brew install mysql
156
+
```
157
+
9. Install development dependencies for Feast Python SDK / CLI
157
158
```sh
158
159
pip install -e ".[dev]"
159
160
```
@@ -361,18 +362,17 @@ You can run `test-python-universal-postgres-online` to run all tests against the
361
362
TODO
362
363
363
364
## (Experimental) Feast UI
364
-
See [Feast contributing guide](ui/CONTRIBUTING.md)
365
+
See [Feast contributing guide](https://github.com/feast-dev/feast/blob/master/ui/CONTRIBUTING.md)
365
366
366
367
## Feast Java Serving
367
-
See [Java contributing guide](java/CONTRIBUTING.md)
368
+
See [Java contributing guide](https://github.com/feast-dev/feast/blob/master/java/CONTRIBUTING.md)
368
369
369
370
See also development instructions related to the helm chart below at [Developing the Feast Helm charts](#developing-the-feast-helm-charts)
370
371
371
372
## Developing the Feast Helm charts
372
-
There are 3 helm charts:
373
+
There are 2 helm charts:
373
374
- Feast Java feature server
374
-
- Feast Python / Go feature server
375
-
- (deprecated) Feast Python feature server
375
+
- Feast Python feature server
376
376
377
377
Generally, you can override the images in the helm charts with locally built Docker images, and install the local helm
378
378
chart.
@@ -381,58 +381,23 @@ All README's for helm charts are generated using [helm-docs](https://github.com/
381
381
(e.g. with `brew install norwoodj/tap/helm-docs`) and then run `make build-helm-docs`.
382
382
383
383
### Feast Java Feature Server Helm Chart
384
-
See the Java demo example (it has development instructions too using minikube) [here](examples/java-demo/README.md)
384
+
See the Java demo example (it has development instructions too using minikube) [here](https://github.com/feast-dev/feast/blob/master/examples/java-demo/README.md)
385
385
386
386
It will:
387
387
- run `make build-java-docker-dev` to build local Java feature server binaries
388
388
- configure the included `application-override.yaml` to override the image tag to use the locally built dev images.
389
389
- install the local chart with `helm install feast-release ../../../infra/charts/feast --values application-override.yaml`
390
390
391
-
### Feast Python / Go Feature Server Helm Chart
391
+
### Feast Python Feature Server Helm Chart
392
392
See the Python demo example (it has development instructions too using minikube) [here](examples/python-helm-demo/README.md)
393
393
394
394
It will:
395
395
- run `make build-feature-server-dev` to build a local python feature server binary
396
396
- install the local chart with `helm install feast-release ../../../infra/charts/feast-feature-server --set image.tag=dev --set feature_store_yaml_base64=$(base64 feature_store.yaml)`
397
397
398
-
## Feast Go Client
399
-
### Go Environment Setup
400
-
Setting up your development environment for Feast Go SDK:
401
-
402
-
- Install Golang, [`protoc` with the Golang & grpc plugins](https://developers.google.com/protocol-buffers/docs/gotutorial#compiling-your-protocol-buffers)
403
-
404
-
### Building Go
405
-
Build the Feast Go Client with the `go` toolchain:
406
-
```sh
407
-
make compile-go-lib
408
-
```
409
-
410
-
### Go Code Style & Linting
411
-
Feast Go Client codebase:
412
-
- Conforms to the code style enforced by `go fmt`.
413
-
- Is lintable by `go vet`.
414
-
415
-
Autoformat your Go code to satisfy the Code Style standard:
416
-
```sh
417
-
go fmt
418
-
```
419
-
420
-
Lint your Go code:
421
-
```sh
422
-
go vet
423
-
```
424
-
425
-
> Setup [pre-commit hooks](#pre-commit-hooks) to automatically format and lint on commit.
426
-
427
-
### Go Unit Tests
428
-
Unit tests for the Feast Go Client can be run as follows:
429
-
```sh
430
-
make test-go
431
-
```
432
-
433
398
### Testing with Github Actions workflows
434
399
435
-
Please refer to the maintainers [doc](./docs/project/maintainers.md) if you would like to locally test out the github actions workflow changes.
400
+
Please refer to the maintainers [doc](maintainers.md) if you would like to locally test out the github actions workflow changes.
436
401
This document will help you setup your fork to test the ci integration tests and other workflows without needing to make a pull request against feast-dev master.
0 commit comments