Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Go server #2339

Merged
merged 181 commits into from
Mar 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
7321fa8
Remove sdk/go
Feb 6, 2022
3a60926
Add interfaces and overall skeleton (incl working protobufs)
Feb 6, 2022
438343a
Wire up FeatureStore & OnlineStore, implement RedisOnlineStore constr…
Feb 6, 2022
eac86a8
Introduce RepoConfig struct instead of using raw map[string]interface{}
Feb 7, 2022
bd17fbf
Pass feast project name to RedisOnlineStore
Feb 7, 2022
43028e4
Add Redis Online Read Test
Feb 7, 2022
89dfa97
Implement gRPC server start logic
Feb 7, 2022
9665f86
Update OnlineRead interface
Feb 7, 2022
649f64e
Redis reader with hashing implemented
Feb 7, 2022
04e9f89
added implementation for GetOnlineFeatures in featurestore and a simp…
Feb 7, 2022
32d41fb
Iterate on key building
Feb 7, 2022
01d036e
Implement gRPC server
Feb 8, 2022
e5f7884
Fix some warnings
Feb 8, 2022
213a3b5
Fix bugs & tests
Feb 8, 2022
568c0e2
Implement redis key builder and reader
Feb 8, 2022
924d42e
Add more TODO comments
Feb 8, 2022
1ded223
Rebuilt protos
Feb 8, 2022
d47c134
Ignore read test
Feb 8, 2022
4841544
Add more TODO comments
woop Feb 8, 2022
bde31cb
Clean up serialize function
woop Feb 8, 2022
60d1af8
fixed GetOnlineFeatures to so that each EntityKey is a row in the fir…
Feb 8, 2022
9501812
Remove comment
woop Feb 8, 2022
0ce2cd1
return copy of Features from OnlineStore instead of reusing original …
Feb 8, 2022
719c189
Delete go/protos directory from git, since it's in .gitignore
Feb 8, 2022
90a5fb2
Fix go/server compilation
Feb 8, 2022
fb186b7
Add integration test
woop Feb 8, 2022
79c230e
added http json endpoint + add validation for feature names and entit…
Feb 9, 2022
868a358
Call go subprocess from Python
Feb 10, 2022
7c1fdc7
fixed GetOnlineFeatures bug
Feb 10, 2022
51760f9
removed grpc-gateway + add go http server on fs.serve()
Feb 11, 2022
1b4c457
experimenting python connector
Feb 11, 2022
16fb7d3
working version of python connector
Feb 14, 2022
fd27ee1
fixed python connector error + add a script to build plugin binary
Feb 14, 2022
eac6c07
added a simple connector config type to RepoConfig in python sdk to s…
Feb 15, 2022
19583eb
migrating python's sdk get_online_features and its helper functions
Feb 16, 2022
23ddda1
added redis pipeline + passed go tests, haven't tested feature service
Feb 17, 2022
90b8ae8
added integration test w/o odfv + dummy entity
Feb 19, 2022
334eb52
accidentally removed entity from request
Feb 19, 2022
74e39b6
passed integration test
Feb 19, 2022
e024cb3
first go server clean version, keep python functions. Next commit wil…
Feb 22, 2022
6887787
added 'optimized' functions
Feb 22, 2022
a77a73b
added goroutines to OnlineRead
Feb 23, 2022
b416af5
added goroutines to redis OnlineRead, getFeaturesToUse, getEntityMaps…
Feb 23, 2022
467beb2
Ensure the correct tests are run for the go feature server
felixwang9817 Feb 23, 2022
9f3b207
Format and lint
felixwang9817 Feb 23, 2022
4343609
Remove Go feature server implementation of Python feature server
felixwang9817 Feb 23, 2022
6a3dd68
Remove incorrect comments
felixwang9817 Feb 23, 2022
afc33cf
Clean up Go feature server test logic
felixwang9817 Feb 23, 2022
6720d83
Add docstrings for GoServer class
felixwang9817 Feb 23, 2022
2c7db84
Remove unused GoServerError
felixwang9817 Feb 24, 2022
208db63
Remove unused ConnectorOnlineStore
felixwang9817 Feb 24, 2022
a6fdd6d
Run Go feature server tests separately from main integration tests
felixwang9817 Feb 24, 2022
a4752a1
lint-go + cleaned go code + handle BrokenPipeError in go_server.py
Feb 24, 2022
91b7af4
added create ./go/protos to compile-protos-go in Makefile
Feb 24, 2022
1b91083
removed 1 unneeded comment
Feb 24, 2022
00ce5a6
fix small bug in go_server raise if error is not brokenpipe in stop f…
Feb 24, 2022
27c798c
Add Snowflake back in for Go feature server tests
felixwang9817 Feb 24, 2022
0682aab
formatted go
Feb 24, 2022
5c196eb
Add CI for Go integration tests
felixwang9817 Feb 25, 2022
7812632
Modify setup.py to build Go protos and clean up Makefile
felixwang9817 Feb 25, 2022
dc6b9fc
Move go build logic to a different file to not trigger on pip install
felixwang9817 Feb 26, 2022
c3ee7c1
Fix Go protoc command
felixwang9817 Feb 26, 2022
0a92efc
separated create config from json and yaml + changed go server _conne…
Feb 26, 2022
09440bb
added go server lifecycle test + local infra for go server + experime…
Mar 1, 2022
7b1b431
Only run Go tests on FileSource
felixwang9817 Feb 28, 2022
909af37
Fix Makefile commands
felixwang9817 Mar 1, 2022
a1a9c2b
fixed test to use go_feature_server flag in test + added option to 2 …
Mar 1, 2022
e1a15a6
fixed goserverlifecyle test implementation
Mar 1, 2022
63ed132
fixed goserverlifecycle --- still need to review this test
Mar 2, 2022
0f877b5
added a command to test goserver with thread, works in reasonable tim…
Mar 2, 2022
36fe4f2
Print output
felixwang9817 Mar 2, 2022
f87742d
Clean up Makefile and fix errors in setup.py
felixwang9817 Mar 2, 2022
40f3b35
Pin Golang protobuf dependency to specific version
felixwang9817 Mar 2, 2022
e7536f2
Format + lint
felixwang9817 Mar 2, 2022
152fa38
Revert previous change
felixwang9817 Mar 2, 2022
b751ac9
Add back Python version
felixwang9817 Mar 2, 2022
add4836
Fix test errors due to rebase
felixwang9817 Mar 2, 2022
a0261d9
Add Go version to unit test workflow
felixwang9817 Mar 2, 2022
cff4a5c
Fix .gitignore
felixwang9817 Mar 2, 2022
82903d6
Format + lint
felixwang9817 Mar 2, 2022
dd656d9
Add setup Go action to set correct Go version for unit tests
felixwang9817 Mar 2, 2022
dbe2a04
Test Gopath in workflow
felixwang9817 Mar 2, 2022
8154126
Add Github action for installing protoc during unit tests
felixwang9817 Mar 3, 2022
0417590
Print stderr for Go proto generation
felixwang9817 Mar 3, 2022
af36ce0
Check for PATH and GOBIN in unit tests
felixwang9817 Mar 3, 2022
0c1499a
Lint
felixwang9817 Mar 3, 2022
24bd9b0
Switch from using protoc binary for Go protos to grpcio-tools
felixwang9817 Mar 3, 2022
dd3b22c
Add psutil==5.9.0 dependency for test_go_server_life_cycle test
felixwang9817 Mar 3, 2022
657db6f
Specify Go version during Github actions
felixwang9817 Mar 3, 2022
092341d
Add back protoc setup Github action
felixwang9817 Mar 3, 2022
cfe59e7
Add GOPATH to GITHUB_PATH so that protoc-gen-go is discovered
felixwang9817 Mar 3, 2022
8c86bc4
Set PATH so that protoc-gen-go can be found
felixwang9817 Mar 3, 2022
08f6332
Update Python3.7 ci-requirements file
felixwang9817 Mar 3, 2022
ee2015f
Update all requirements
felixwang9817 Mar 3, 2022
90642b7
Fix test
felixwang9817 Mar 3, 2022
d698d86
Fix protoc-gen-go bug for all workflows
felixwang9817 Mar 3, 2022
00364c6
Clean up existing test and mark new test as integration
felixwang9817 Mar 3, 2022
4e721ee
Lint
felixwang9817 Mar 3, 2022
5eaeebc
Correctly set GOPATH in workflows
felixwang9817 Mar 3, 2022
e16551c
Modify AWS Lambda Dockerfile to copy the necessary Go files
felixwang9817 Mar 3, 2022
33c5893
merge infra package into feast package
Mar 4, 2022
2495cfb
optimized go server + address some PR comments
Mar 4, 2022
3219f71
added newServingServiceServer to comply with the rest of the code style
Mar 4, 2022
536cef9
removed an extra err check
Mar 4, 2022
5de88d9
added pre-allocation to online response metadata
Mar 4, 2022
05e3599
Fix protoc compilation for go and use a unix domain socket file
achals Mar 4, 2022
342d233
Use a flag for compilation
achals Mar 5, 2022
c4de236
Change flag in
achals Mar 5, 2022
10d96fc
fix: Remove redis service to prevent more conflicts and add redis nod…
kevjumba Mar 3, 2022
5fe123b
fix: Added additional value types to UI parser and removed references…
mickey-liu Mar 4, 2022
3caf798
fix:revert back to jdk 11 for datatypes package
adchia Mar 4, 2022
c8e28ff
fix:upgrade feast ui packages to fix critical vulnerabilities
adchia Mar 4, 2022
a15e947
ci: Add support for semantic release (#2332)
woop Mar 4, 2022
d7d9d78
feat: Allow all snowflake python connector connection methods to be a…
sfc-gh-madkins Mar 4, 2022
c3a3add
fix: Fix Redshift bug that stops waiting on statements after 5 minute…
Mar 4, 2022
80f7f62
feat: Feast Spark Offline Store (#2349)
kevjumba Mar 4, 2022
f5597cf
ci: Update versions of helm charts + java pom files
adchia Mar 4, 2022
f6fc65a
feat: Event timestamps response (#2355)
Mar 4, 2022
9ae882e
feat: Metadata changes & making data sources top level objects to pow…
adchia Mar 4, 2022
e924b07
ci: Remove buggy branch identification
woop Mar 5, 2022
e2f4ed6
fix action and set go version
achals Mar 5, 2022
0576dd4
Complie python protos correctly
achals Mar 5, 2022
c50b9ca
Set up go in the pr integration test workflow
achals Mar 5, 2022
0ce43bd
Nuke go requirements for python ci (for the moment)
achals Mar 5, 2022
05276b5
Update redis port
achals Mar 5, 2022
f551e6a
ci: Add version bump script
woop Mar 5, 2022
6407a16
ci: Fix broken release preparation
woop Mar 5, 2022
a9cc1cd
ci: Add ci bot as committer and fix typo in dry-run config
feast-ci-bot Mar 5, 2022
39c4de5
chore(release): release 0.19.0
feast-ci-bot Mar 5, 2022
3f23a40
chore: Fix changelog and disable release comments
woop Mar 5, 2022
a07bcf2
fix: Fix unhashable Snowflake and Redshift sources
woop Mar 5, 2022
65ac647
chore: Remove needs-kind and release not requirement
woop Mar 5, 2022
4a21aaf
chore: Remove release note block
woop Mar 5, 2022
73c89a3
ci: Uncheck prerelease status for patch releases
woop Mar 5, 2022
4204e2f
fix: Fix default feast apply path without any extras (#2373)
adchia Mar 6, 2022
f4cea5d
docs: Add short section about github actions (#2315)
kevjumba Mar 7, 2022
1937021
fix: Use the correct dockerhub image tag when building feature server…
achals Mar 7, 2022
07bccc9
compile go as part of python ci setup
achals Mar 7, 2022
89bc3f3
set path with gopath/bin
achals Mar 7, 2022
f52117e
Set path for commands correctly
achals Mar 7, 2022
1097699
Set up go for lint-go
achals Mar 7, 2022
8207017
Remove makefile stuff
achals Mar 7, 2022
c777979
Fix workflows and Makefile commands
achals Mar 7, 2022
b3acdb0
protoc-gen-go-grpc
achals Mar 7, 2022
95c6e1d
install go deps first
achals Mar 7, 2022
cc927fd
Compile go protos as well
achals Mar 8, 2022
c0ba7b5
Remove go mod tidy from the deps target
achals Mar 8, 2022
41889f0
Better python tooling
achals Mar 8, 2022
c87728f
Remove container
achals Mar 8, 2022
3a1efa3
Upgrade lint go as well
achals Mar 8, 2022
79166ca
Upgrade lint go as well
achals Mar 8, 2022
0cdfd0b
More logging for unit-go
achals Mar 8, 2022
3fa7bc3
Install using python setup.py develop
achals Mar 8, 2022
8a71886
install-python-ci-dependencies
achals Mar 8, 2022
1eb0dad
Skip tests that need a feature repo
achals Mar 8, 2022
4323027
Skip a scary forking test
achals Mar 8, 2022
c1afb01
Remove all the crusty port stuff and disable the lifecycle test
achals Mar 8, 2022
d6e1b42
Remove more crusty port stuff
achals Mar 8, 2022
709f8bf
Update skip message
achals Mar 8, 2022
b57616b
Introduce a sleep before reading values
achals Mar 8, 2022
db3dc44
Disable one more test configuration since background thread-based mon…
achals Mar 8, 2022
8975ac2
Disable the test entirely
achals Mar 8, 2022
7e85d6c
ci: Add support for semantic release (#2332)
woop Mar 4, 2022
12aafc2
feat: Feast Spark Offline Store (#2349)
kevjumba Mar 4, 2022
22a611e
ci: Update versions of helm charts + java pom files
adchia Mar 4, 2022
ffb7e74
feat: Metadata changes & making data sources top level objects to pow…
adchia Mar 4, 2022
833305e
ci: Remove buggy branch identification
woop Mar 5, 2022
1c90492
ci: Add version bump script
woop Mar 5, 2022
53b8f90
ci: Fix broken release preparation
woop Mar 5, 2022
df7a43e
ci: Add ci bot as committer and fix typo in dry-run config
feast-ci-bot Mar 5, 2022
07fdcc7
chore(release): release 0.19.0
feast-ci-bot Mar 5, 2022
985eaf1
chore: Fix changelog and disable release comments
woop Mar 5, 2022
09a5cd9
ci: Uncheck prerelease status for patch releases
woop Mar 5, 2022
a75bfad
fix: Fix default feast apply path without any extras (#2373)
adchia Mar 6, 2022
b54c31a
fix: Making a name for data sources not a breaking change (#2379)
adchia Mar 7, 2022
d7710c0
fix: Update some fields optional in UI parser (#2380)
mickey-liu Mar 7, 2022
55c3e87
fix: Fix spark docs (#2382)
kevjumba Mar 8, 2022
f173a1a
feat: Makefile for contrib for Issue #2364 (#2366)
kevjumba Mar 8, 2022
1c92201
Closes threadpool resources upon datastore online_write_batch complet…
ptoman-pa Mar 8, 2022
481b8dd
CR comments
achals Mar 8, 2022
8f3b96a
Merge from master again
achals Mar 8, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 23 additions & 4 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ jobs:
with:
python-version: "3.7"
architecture: x64
- name: Setup Go
id: setup-go
uses: actions/setup-go@v2
with:
go-version: 1.17.7
- name: Upgrade pip version
run: |
pip install --upgrade "pip>=21.3.1"
Expand All @@ -35,16 +40,30 @@ jobs:
- name: Install pip-tools
run: pip install pip-tools
- name: Install dependencies
run: make install-python-ci-dependencies
run: |
make compile-protos-go
make install-python-ci-dependencies
- name: Lint python
run: make lint-python

lint-go:
container: gcr.io/kf-feast/feast-ci:latest
runs-on: [ubuntu-latest]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
id: setup-go
uses: actions/setup-go@v2
with:
go-version: 1.17.7
- name: Setup Python
id: setup-python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Upgrade pip version
run: |
pip install --upgrade "pip>=21.3.1"
- name: Install dependencies
run: make install-go-ci-dependencies
run: make install-go-ci-dependencies
- name: Lint go
run: make lint-go
11 changes: 8 additions & 3 deletions .github/workflows/master_only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,14 @@ jobs:
docker push $ECR_REGISTRY/$ECR_REPOSITORY:${{ steps.image-tag.outputs.DOCKER_IMAGE_TAG }}
outputs:
DOCKER_IMAGE_TAG: ${{ steps.image-tag.outputs.DOCKER_IMAGE_TAG }}
integration-test-python:
integration-test-python-and-go:
needs: build-lambda-docker-image
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: [ 3.7, 3.8, 3.9 ]
go-version: [ 1.17.0 ]
os: [ ubuntu-latest ]
env:
OS: ${{ matrix.os }}
Expand All @@ -73,6 +74,11 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Setup Go
id: setup-go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v0
with:
Expand Down Expand Up @@ -113,13 +119,12 @@ jobs:
- name: Start Redis
uses: supercharge/redis-github-action@1.4.0
with:
redis-version: ${{ matrix.redis-version }}
redis-port: 12345
- name: Setup Redis Cluster
run: |
docker pull vishnunair/docker-redis-cluster:latest
docker run -d -p 6001:6379 -p 6002:6380 -p 6003:6381 -p 6004:6382 -p 6005:6383 -p 6006:6384 --name redis-cluster vishnunair/docker-redis-cluster
- name: Test python
- name: Test python and go
env:
FEAST_SERVER_DOCKER_IMAGE_TAG: ${{ needs.build-lambda-docker-image.outputs.DOCKER_IMAGE_TAG }}
FEAST_USAGE: "False"
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/pr_integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,9 @@ jobs:
- name: Install pip-tools
run: pip install pip-tools
- name: Install dependencies
run: make install-python-ci-dependencies
run: |
make compile-protos-go
make install-python-ci-dependencies
- name: Setup Redis Cluster
run: |
docker pull vishnunair/docker-redis-cluster:latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ jobs:
- name: Release
if: github.event.inputs.dry_run == 'false'
run: |
npx -p @semantic-release/changelog -p @semantic-release/git -p @semantic-release/exec -p semantic-release semantic-release
npx -p @semantic-release/changelog -p @semantic-release/git -p @semantic-release/exec -p semantic-release semantic-release
23 changes: 21 additions & 2 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Setup Go
id: setup-go
uses: actions/setup-go@v2
with:
go-version: 1.17.7
- name: Upgrade pip version
run: |
pip install --upgrade "pip>=21.3.1"
Expand All @@ -40,7 +45,9 @@ jobs:
- name: Install pip-tools
run: pip install pip-tools
- name: Install dependencies
run: make install-python-ci-dependencies
run: |
make compile-protos-go
make install-python-ci-dependencies
- name: Test Python
env:
SNOWFLAKE_CI_DEPLOYMENT: ${{ secrets.SNOWFLAKE_CI_DEPLOYMENT }}
Expand All @@ -61,9 +68,21 @@ jobs:

unit-test-go:
runs-on: ubuntu-latest
container: gcr.io/kf-feast/feast-ci:latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
id: setup-python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Upgrade pip version
run: |
pip install --upgrade "pip>=21.3.1"
- name: Setup Go
id: setup-go
uses: actions/setup-go@v2
with:
go-version: 1.17.7
- name: Install dependencies
run: make install-go-ci-dependencies
- name: Compile protos
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ dmypy.json
sdk/python/docs/html
sdk/python/feast/protos/
sdk/go/protos/
go/protos/

#benchmarks
.benchmarks
Expand Down Expand Up @@ -218,3 +219,5 @@ ui/.vercel
**/yarn-debug.log*
**/yarn-error.log*

# Go subprocess binaries (built during feast pip package building)
sdk/python/feast/binaries/
1 change: 0 additions & 1 deletion .releaserc.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,3 @@ module.exports = {
}],
]
}

42 changes: 25 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
MVN := mvn -f java/pom.xml ${MAVEN_EXTRA_OPTS}
PROTO_TYPE_SUBDIRS = core serving types storage
PROTO_SERVICE_SUBDIRS = core serving
OS := linux
ifeq ($(shell uname -s), Darwin)
OS = osx
Expand All @@ -35,13 +33,11 @@ protos: compile-protos-go compile-protos-python compile-protos-docs

build: protos build-java build-docker build-html

install-ci-dependencies: install-python-ci-dependencies install-java-ci-dependencies install-go-ci-dependencies

# Python SDK

install-python-ci-dependencies:
install-python-ci-dependencies: install-go-ci-dependencies
cd sdk/python && python -m piptools sync requirements/py$(PYTHON)-ci-requirements.txt
cd sdk/python && python setup.py develop
cd sdk/python && COMPILE_GO=true python setup.py develop

lock-python-ci-dependencies:
cd sdk/python && python -m piptools compile -U --extra ci --output-file requirements/py$(PYTHON)-ci-requirements.txt
Expand All @@ -50,8 +46,7 @@ package-protos:
cp -r ${ROOT_DIR}/protos ${ROOT_DIR}/sdk/python/feast/protos

compile-protos-python:
@$(foreach dir,$(PROTO_TYPE_SUBDIRS),cd ${ROOT_DIR}/protos; python -m grpc_tools.protoc -I. --grpc_python_out=../sdk/python/feast/protos/ --python_out=../sdk/python/feast/protos/ --mypy_out=../sdk/python/feast/protos/ feast/$(dir)/*.proto;)
@$(foreach dir,$(PROTO_TYPE_SUBDIRS),grep -rli 'from feast.$(dir)' sdk/python/feast/protos | xargs -I@ sed -i.bak 's/from feast.$(dir)/from feast.protos.feast.$(dir)/g' @;)
python setup.py build_python_protos

install-python:
cd sdk/python && python -m piptools sync requirements/py$(PYTHON)-requirements.txt
Expand Down Expand Up @@ -81,6 +76,14 @@ test-python-universal-local:
test-python-universal:
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration --universal sdk/python/tests

test-python-go-server:
felixwang9817 marked this conversation as resolved.
Show resolved Hide resolved
go build -o ${ROOT_DIR}/sdk/python/feast/binaries/goserver github.com/feast-dev/feast/go/cmd/goserver
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration --goserver sdk/python/tests

test-python-go-server-lifecycle:
go build -o ${ROOT_DIR}/sdk/python/feast/binaries/goserver github.com/feast-dev/feast/go/cmd/goserver
FEAST_USAGE=False IS_TEST=True python -m pytest -n 8 --integration --goserverlifecycle sdk/python/tests

format-python:
# Sort
cd ${ROOT_DIR}/sdk/python; python -m isort feast/ tests/
Expand Down Expand Up @@ -123,20 +126,25 @@ build-java-no-tests:
# Go SDK

install-go-ci-dependencies:
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u golang.org/x/lint/golint
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0

compile-protos-go: install-go-ci-dependencies
pip install grpcio-tools==1.34.0
python sdk/python/setup.py build_go_protos

compile-protos-go:
$(foreach dir,types serving core storage,cd ${ROOT_DIR}/protos; protoc -I/usr/local/include -I. --go_out=plugins=grpc,paths=source_relative:../sdk/go/protos feast/$(dir)/*.proto;)
compile-go-feature-server: compile-protos-go
go mod tidy
go build -o ${ROOT_DIR}/sdk/python/feast/binaries/goserver github.com/feast-dev/feast/go/cmd/goserver

test-go:
cd ${ROOT_DIR}/sdk/go; go test ./...
test-go: install-go-ci-dependencies
go test ./...

format-go:
cd ${ROOT_DIR}/sdk/go; gofmt -s -w *.go
gofmt -s -w go/

lint-go:
cd ${ROOT_DIR}/sdk/go; go vet
lint-go: compile-protos-go
go vet ./go/internal/feast ./go/cmd/goserver

# Docker

Expand Down
54 changes: 22 additions & 32 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,39 +1,29 @@
module github.com/feast-dev/feast

go 1.17

require (
github.com/Masterminds/goutils v1.1.0 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
github.com/feast-dev/feast/sdk/go v0.0.0-20200516052424-09ff3dda724c // indirect
github.com/ghodss/yaml v1.0.0
github.com/gogo/protobuf v1.3.1 // indirect
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
github.com/golang/mock v1.2.0
github.com/go-redis/redis/v8 v8.11.4
github.com/golang/protobuf v1.5.2
github.com/google/go-cmp v0.5.5
github.com/huandu/xstrings v1.2.0 // indirect
github.com/lyft/protoc-gen-validate v0.1.0 // indirect
github.com/mitchellh/copystructure v1.0.0 // indirect
github.com/mitchellh/go-homedir v1.1.0
github.com/mwitkow/go-proto-validators v0.2.0 // indirect
github.com/pseudomuto/protoc-gen-doc v1.3.0 // indirect
github.com/pseudomuto/protokit v0.2.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/spf13/cobra v0.0.4
github.com/spf13/viper v1.4.0
github.com/woop/protoc-gen-doc v1.3.0 // indirect
go.opencensus.io v0.22.3 // indirect
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f
golang.org/x/tools v0.1.8 // indirect
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
google.golang.org/grpc v1.29.1
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/russross/blackfriday.v2 v2.0.0 // indirect
gopkg.in/yaml.v2 v2.2.4
istio.io/gogo-genproto v0.0.0-20191212213402-78a529a42cd8 // indirect
istio.io/tools v0.0.0-20191228030621-c4eb6a11039c // indirect
github.com/google/uuid v1.1.2
github.com/kelseyhightower/envconfig v1.4.0
github.com/spaolacci/murmur3 v1.1.0
github.com/stretchr/testify v1.7.0
google.golang.org/grpc v1.44.0
google.golang.org/protobuf v1.27.1
)

go 1.13
require (
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/google/go-cmp v0.5.7 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 // indirect
golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect
golang.org/x/text v0.3.6 // indirect
google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
)
Loading