Skip to content

Commit 04afc71

Browse files
authored
docs: Updating contributing guide and also fixing some issues around M1 dev (#3621)
Updating contributing guide and also fixing some issues around M1 dev Signed-off-by: Danny C <d.chiao@gmail.com>
1 parent 6aa54aa commit 04afc71

File tree

4 files changed

+37
-58
lines changed

4 files changed

+37
-58
lines changed

docs/project/development-guide.md

Lines changed: 21 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
- [Incorporating upstream changes from master](#incorporating-upstream-changes-from-master)
1717
- [Feast Python SDK / CLI](#feast-python-sdk--cli)
1818
- [Environment Setup](#environment-setup)
19-
- [Code Style & Linting](#code-style--linting)
19+
- [Code Style \& Linting](#code-style--linting)
2020
- [Unit Tests](#unit-tests)
2121
- [Integration Tests](#integration-tests)
2222
- [Local integration tests](#local-integration-tests)
@@ -33,20 +33,14 @@
3333
- [Feast Java Serving](#feast-java-serving)
3434
- [Developing the Feast Helm charts](#developing-the-feast-helm-charts)
3535
- [Feast Java Feature Server Helm Chart](#feast-java-feature-server-helm-chart)
36-
- [Feast Python / Go Feature Server Helm Chart](#feast-python--go-feature-server-helm-chart)
37-
- [Feast Go Client](#feast-go-client)
38-
- [Go Environment Setup](#go-environment-setup)
39-
- [Building Go](#building-go)
40-
- [Go Code Style & Linting](#go-code-style--linting)
41-
- [Go Unit Tests](#go-unit-tests)
36+
- [Feast Python Feature Server Helm Chart](#feast-python-feature-server-helm-chart)
4237
- [Testing with Github Actions workflows](#testing-with-github-actions-workflows)
4338
- [Feast Data Storage Format](#feast-data-storage-format)
4439
## Overview
4540
This guide is targeted at developers looking to contribute to Feast components in
4641
the main Feast repository:
4742
- [Feast Python SDK / CLI](#feast-python-sdk--cli)
4843
- [Feast Java Serving](#feast-java-serving)
49-
- [Feast Go Client](#feast-go-client)
5044

5145
Please see [this page](../reference/codebase-structure.md) for more details on the structure of the entire codebase.
5246

@@ -135,7 +129,7 @@ Note that this means if you are midway through working through a PR and rebase,
135129
### Environment Setup
136130
Setting up your development environment for Feast Python SDK / CLI:
137131
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/).
139133
2. Ensure that you have `make`, Python (3.8 and above) with `pip`, installed.
140134
3. _Recommended:_ Create a virtual environment to isolate development dependencies to be installed
141135
```sh
@@ -147,13 +141,20 @@ Setting up your development environment for Feast Python SDK / CLI:
147141
```sh
148142
pip install --upgrade pip
149143
```
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`
152150
```
153151
make build-ui
154152
```
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
157158
```sh
158159
pip install -e ".[dev]"
159160
```
@@ -361,18 +362,17 @@ You can run `test-python-universal-postgres-online` to run all tests against the
361362
TODO
362363

363364
## (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)
365366

366367
## 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)
368369

369370
See also development instructions related to the helm chart below at [Developing the Feast Helm charts](#developing-the-feast-helm-charts)
370371

371372
## Developing the Feast Helm charts
372-
There are 3 helm charts:
373+
There are 2 helm charts:
373374
- Feast Java feature server
374-
- Feast Python / Go feature server
375-
- (deprecated) Feast Python feature server
375+
- Feast Python feature server
376376

377377
Generally, you can override the images in the helm charts with locally built Docker images, and install the local helm
378378
chart.
@@ -381,58 +381,23 @@ All README's for helm charts are generated using [helm-docs](https://github.com/
381381
(e.g. with `brew install norwoodj/tap/helm-docs`) and then run `make build-helm-docs`.
382382
383383
### 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)
385385
386386
It will:
387387
- run `make build-java-docker-dev` to build local Java feature server binaries
388388
- configure the included `application-override.yaml` to override the image tag to use the locally built dev images.
389389
- install the local chart with `helm install feast-release ../../../infra/charts/feast --values application-override.yaml`
390390
391-
### Feast Python / Go Feature Server Helm Chart
391+
### Feast Python Feature Server Helm Chart
392392
See the Python demo example (it has development instructions too using minikube) [here](examples/python-helm-demo/README.md)
393393
394394
It will:
395395
- run `make build-feature-server-dev` to build a local python feature server binary
396396
- 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)`
397397
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 &amp; 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-
433398
### Testing with Github Actions workflows
434399
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.
436401
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.
437402
438403
## Feast Data Storage Format

java/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The primary entrypoint into the Feast Serving server is `ServingGuiceApplication
3939
Common Environment Setup for all feast-java Feast components:
4040

4141
Ensure following development tools are installed:
42-
- Java SE Development Kit 11
42+
- Java SE Development Kit 11 (you may need to do `export JAVA_HOME=$(/usr/libexec/java_home -v 11)`)
4343
- Maven 3.6
4444
- `make`
4545

java/datatypes/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,4 @@
123123
<artifactId>javax.annotation-api</artifactId>
124124
</dependency>
125125
</dependencies>
126-
127126
</project>

java/pom.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,21 @@
142142
</repository>
143143
</distributionManagement>
144144

145+
<profiles>
146+
<profile>
147+
<id>apple-m1</id>
148+
<properties>
149+
<os.detected.classifier>osx-x86_64</os.detected.classifier>
150+
</properties>
151+
<activation>
152+
<os>
153+
<arch>aarch64</arch>
154+
<family>mac</family>
155+
</os>
156+
</activation>
157+
</profile>
158+
</profiles>
159+
145160
<dependencyManagement>
146161
<dependencies>
147162
<dependency>

0 commit comments

Comments
 (0)