Skip to content

Commit b3b738f

Browse files
committed
update environment setup docs
Signed-off-by: Matt Green <emgeee@users.noreply.github.com>
1 parent d06fb2a commit b3b738f

2 files changed

Lines changed: 26 additions & 40 deletions

File tree

docs/how-to-guides/customizing-feast/adding-a-new-offline-store.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -440,11 +440,10 @@ test-python-universal-spark:
440440

441441
### 7. Dependencies
442442

443-
Add any dependencies for your offline store to our `sdk/python/setup.py` under a new `<OFFLINE_STORE>__REQUIRED` list with the packages and add it to the setup script so that if your offline store is needed, users can install the necessary python packages. These packages should be defined as extras so that they are not installed by users by default. You will need to regenerate our requirements files. To do this, create separate pyenv environments for python 3.8, 3.9, and 3.10. In each environment, run the following commands:
443+
Add any dependencies for your offline store to our `sdk/python/setup.py` under a new `<OFFLINE_STORE>__REQUIRED` list with the packages and add it to the setup script so that if your offline store is needed, users can install the necessary python packages. These packages should be defined as extras so that they are not installed by users by default. You will need to regenerate our requirements files:
444444

445445
```
446-
export PYTHON=<version>
447-
make lock-python-ci-dependencies
446+
make lock-python-ci-dependencies-all
448447
```
449448

450449
### 8. Add Documentation

docs/project/development-guide.md

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ See [Contribution process](./contributing.md) and [Community](../community.md) f
5454
## Making a pull request
5555
We use the convention that the assignee of a PR is the person with the next action.
5656

57-
If the assignee is empty it means that no reviewer has been found yet.
58-
If a reviewer has been found, they should also be the assigned the PR.
57+
If the assignee is empty it means that no reviewer has been found yet.
58+
If a reviewer has been found, they should also be the assigned the PR.
5959
Finally, if there are comments to be addressed, the PR author should be the one assigned the PR.
6060

6161
PRs that are submitted by the general public need to be identified as `ok-to-test`. Once enabled, [Prow](https://github.com/kubernetes/test-infra/tree/master/prow) will run a range of tests to verify the submission, after which community members will help to review the pull request.
@@ -120,51 +120,39 @@ Note that this means if you are midway through working through a PR and rebase,
120120

121121
## Feast Python SDK and CLI
122122
### Environment Setup
123-
Setting up your development environment for Feast Python SDK and CLI:
124-
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.
123+
#### Tools
124+
- Docker: Docker is used to provision service dependencies during testing, and build images for feature servers and other components.
125125
- Please note that we use [Docker with BuiltKit](https://docs.docker.com/develop/develop-images/build_enhancements/).
126126
- _Alternatively_ - To use [podman](https://podman.io/) on a Fedora or RHEL machine, follow this [guide](https://github.com/feast-dev/feast/issues/4190)
127-
2. Ensure that you have `make` and Python (3.9 or above) installed.
128-
3. _Recommended:_ Create a virtual environment to isolate development dependencies to be installed
129-
```sh
130-
# create & activate a virtual environment
131-
python -m venv venv/
132-
source venv/bin/activate
133-
```
134-
4. (M1 Mac only): Follow the [dev guide](https://github.com/feast-dev/feast/issues/2105)
135-
5. Install uv. It is recommended to use uv for managing python dependencies.
127+
- `make` is used to run various scripts
128+
- [uv](https://docs.astral.sh/) for managing python dependencies. [installation instructions](https://docs.astral.sh/uv/getting-started/installation/)
129+
- (M1 Mac only): Follow the [dev guide if you have issues](https://github.com/feast-dev/feast/issues/2105)
130+
- (Optional): Node & Yarn (needed for building the feast UI)
131+
- (Optional): [Pixi](https://pixi.sh/latest/) for recompile python lock files. Only when you make changes to requirements or simply want to update python lock files to reflect latest versioons.
132+
133+
### Quick start
134+
- create a new virtual env: `uv venv --python 3.11` (Replace the python version with your desired version)
135+
- activate the venv: `source venv/bin/activate`
136+
- Install dependencies `make install-python-dependencies-dev`
137+
138+
### building the UI
136139
```sh
137-
curl -LsSf https://astral.sh/uv/install.sh | sh
138-
```
139-
or
140-
```ssh
141-
pip install uv
142-
```
143-
6. (Optional): Install Node & Yarn. Then run the following to build Feast UI artifacts for use in `feast ui`
144-
```
145140
make build-ui
146141
```
147-
7. (Optional) install pixi. pixi is necessary to run step 8 for all python versions at once.
148-
```sh
149-
curl -fsSL https://pixi.sh/install.sh | bash
150-
```
151-
8. (Optional): Recompile python lock files. Only when you make changes to requirements or simply want to update python lock files to reflect latest versioons.
152-
```sh
153-
make lock-python-dependencies-all
154-
```
155-
9. Install development dependencies for Feast Python SDK and CLI. This will install package versions from the lock file, install editable version of feast and compile protobufs.
156142

157-
If running inside a virtual environment:
143+
### Recompiling python lock files
144+
Recompile python lock files. This only needs to be run when you make changes to requirements or simply want to update python lock files to reflect latest versions.
145+
158146
```sh
159-
make install-python-ci-dependencies-uv-venv
147+
make lock-python-dependencies-all
160148
```
161149

162-
Otherwise:
150+
### Building protos
163151
```sh
164-
make install-python-ci-dependencies-uv
152+
make compile-protos-python
165153
```
166154

167-
10. Spin up Docker Image
155+
### Building a docker image for development
168156
```sh
169157
docker build -t docker-whale -f ./sdk/python/feast/infra/feature_servers/multicloud/Dockerfile .
170158
```
@@ -405,7 +393,7 @@ It will:
405393
406394
### Testing with Github Actions workflows
407395
408-
Please refer to the maintainers [doc](maintainers.md) if you would like to locally test out the github actions workflow changes.
396+
Please refer to the maintainers [doc](maintainers.md) if you would like to locally test out the github actions workflow changes.
409397
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.
410398
411399
## Feast Data Storage Format
@@ -414,4 +402,3 @@ Feast data storage contracts are documented in the following locations:
414402
415403
* [Feast Offline Storage Format](https://github.com/feast-dev/feast/blob/master/docs/specs/offline_store_format.md): Used by BigQuery, Snowflake \(Future\), Redshift \(Future\).
416404
* [Feast Online Storage Format](https://github.com/feast-dev/feast/blob/master/docs/specs/online_store_format.md): Used by Redis, Google Datastore.
417-

0 commit comments

Comments
 (0)