Skip to content

Commit

Permalink
feat: Update the go feature server from Expedia code repo. (#4665)
Browse files Browse the repository at this point in the history
* feat: Update the go feature server from Expedia code repo.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Add go package definition to RegistryServer and Grpcserver.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Fix the make build-go

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Fix makefile to make test-go work.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Removed and commented out DataDog related observability instrumentation code.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* doc: Update the README to mention the contirbution from  Expedia Group.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Remove the HTTP based Registry.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Use a general string to represent the transformation service endpoint.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Set the transformation service endpoint defintion to feature_store.yaml file instead of OS env.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

* fix: Fix few format issues.

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>

---------

Signed-off-by: Shuchu Han <shuchu.han@gmail.com>
  • Loading branch information
shuchu authored Dec 4, 2024
1 parent 1115d96 commit 6406625
Show file tree
Hide file tree
Showing 45 changed files with 1,733 additions and 2,317 deletions.
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ prune infra
prune examples

graft sdk/python/feast/ui/build
graft sdk/python/feast/embedded_go/lib
44 changes: 44 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -545,3 +545,47 @@ build-helm-docs:
# Note: requires node and yarn to be installed
build-ui:
cd $(ROOT_DIR)/sdk/python/feast/ui && yarn upgrade @feast-dev/feast-ui --latest && yarn install && npm run build --omit=dev



# Go SDK & embedded
install-protoc-dependencies:
pip install "protobuf>=4.24.0,<5.0.0" "grpcio-tools>=1.56.2,<2" "mypy-protobuf>=3.1"

install-go-proto-dependencies:
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0

#install-go-ci-dependencies:
# go install golang.org/x/tools/cmd/goimports
# python -m pip install "pybindgen==0.22.1" "grpcio-tools>=1.56.2,<2" "mypy-protobuf>=3.1"

build-go:
compile-protos-go
go build -o feast ./go/main.go

install-feast-ci-locally:
pip install -e ".[ci]"

test-go:
compile-protos-go
compile-protos-python
install-feast-ci-locally
CGO_ENABLED=1 go test -coverprofile=coverage.out ./... && go tool cover -html=coverage.out -o coverage.html

format-go:
gofmt -s -w go/

lint-go:
compile-protos-go
go vet ./go/internal/feast

build-go-docker-dev:
docker buildx build --build-arg VERSION=dev \
-t feastdev/feature-server-go:dev \
-f go/infra/docker/feature-server/Dockerfile --load .

compile-protos-go:
install-go-proto-dependencies
install-protoc-dependencies
python setup.py build_go_protos
64 changes: 34 additions & 30 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,50 +1,54 @@
module github.com/feast-dev/feast

go 1.17
go 1.22.0

replace github.com/go-python/gopy v0.4.4 => github.com/feast-dev/gopy v0.4.1-0.20220714211711-252048177d85
toolchain go1.22.5

require (
github.com/apache/arrow/go/v8 v8.0.0
github.com/apache/arrow/go/v17 v17.0.0
github.com/ghodss/yaml v1.0.0
github.com/go-redis/redis/v8 v8.11.4
github.com/golang/protobuf v1.5.3
github.com/google/uuid v1.3.0
github.com/mattn/go-sqlite3 v1.14.12
github.com/golang/protobuf v1.5.4
github.com/google/uuid v1.6.0
github.com/mattn/go-sqlite3 v1.14.23
github.com/pkg/errors v0.9.1
github.com/redis/go-redis/v9 v9.6.1
github.com/rs/zerolog v1.33.0
github.com/spaolacci/murmur3 v1.1.0
github.com/stretchr/testify v1.7.0
google.golang.org/grpc v1.56.3
google.golang.org/protobuf v1.33.0
github.com/stretchr/testify v1.9.0
google.golang.org/grpc v1.67.0
google.golang.org/protobuf v1.34.2
)

require (
github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect
github.com/andybalholm/brotli v1.0.4 // indirect
github.com/apache/thrift v0.15.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/andybalholm/brotli v1.1.0 // indirect
github.com/apache/thrift v0.21.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/goccy/go-json v0.9.6 // indirect
github.com/goccy/go-json v0.10.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/flatbuffers v2.0.6+incompatible // indirect
github.com/google/flatbuffers v24.3.25+incompatible // indirect
github.com/klauspost/asmfmt v1.3.2 // indirect
github.com/klauspost/compress v1.15.1 // indirect
github.com/klauspost/cpuid/v2 v2.0.12 // indirect
github.com/klauspost/compress v1.17.9 // indirect
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect
github.com/pierrec/lz4/v4 v4.1.14 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/pierrec/lz4/v4 v4.1.21 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4 // indirect
golang.org/x/mod v0.8.0 // indirect
golang.org/x/net v0.23.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/tools v0.6.0 // indirect
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
golang.org/x/mod v0.21.0 // indirect
golang.org/x/net v0.29.0 // indirect
golang.org/x/sync v0.8.0 // indirect
golang.org/x/sys v0.25.0 // indirect
golang.org/x/text v0.18.0 // indirect
golang.org/x/tools v0.25.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Loading

0 comments on commit 6406625

Please sign in to comment.