Skip to content

Commit

Permalink
Merge pull request #139 from ExpediaGroup/feast_merge_sep_2024
Browse files Browse the repository at this point in the history
fix: Merged changes from feast open source
  • Loading branch information
EXPEbdodla authored Sep 27, 2024
2 parents 4fd7b29 + d62a4cb commit 2a5cfed
Show file tree
Hide file tree
Showing 321 changed files with 18,197 additions and 4,208 deletions.
13 changes: 13 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM mcr.microsoft.com/vscode/devcontainers/python:3.9-buster

USER vscode
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
RUN curl -fsSL https://pixi.sh/install.sh | bash
ENV PATH=$PATH:/home/vscode/.cargo/bin
ENV PYTHON=3.9
RUN uv venv ~/.local
ENV VIRTUAL_ENV=~/.local
ENV PATH=$VIRTUAL_ENV/bin:$PATH
USER root


42 changes: 31 additions & 11 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-dockerfile
{
"name": "feast-devcontainer",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "latest"
},
"ghcr.io/devcontainers/features/python:1": {
"version": "3.9"
}
},
"postCreateCommand": "pip install -e '.[dev]' && make compile-protos-python"
"name": "feast-devcontainer",
"build": {
// Sets the run context to one level up instead of the .devcontainer folder.
"context": "..",
// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
"dockerfile": "Dockerfile"
},

// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "latest"
},
"ghcr.io/devcontainers-contrib/features/maven-sdkman:2": {
"jdkVersion": "11.0.24-amzn"
}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Uncomment the next line to run commands after the container is created.
"postCreateCommand": "make install-python-ci-dependencies-uv-venv"

// Configure tool-specific properties.
// "customizations": {},

// Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
9 changes: 6 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<!-- Thanks for sending a pull request! Here are some tips for you:
1. Ensure that your code follows our code conventions: https://github.com/feast-dev/feast/blob/master/CONTRIBUTING.md#code-style--linting
1. Ensure that your code follows our code conventions: https://github.com/feast-dev/feast/blob/master/CONTRIBUTING.md#code-style-and-linting
2. Run unit tests and ensure that they are passing: https://github.com/feast-dev/feast/blob/master/CONTRIBUTING.md#unit-tests
3. If your change introduces any API changes, make sure to update the integration tests here: https://github.com/feast-dev/feast/tree/master/sdk/python/tests
4. Make sure documentation is updated for your PR!
5. Make sure your commits are signed: https://github.com/feast-dev/feast/blob/master/CONTRIBUTING.md#signing-off-commits
6. Make sure your PR title follows conventional commits (e.g. fix: [description] vs feat: [description])
6. Make sure your PR title follows conventional commits (e.g. fix: [Description of ...], feat: [Description of ...], chore: [Description of ...], refactor: [Description of ...])
-->

Expand All @@ -21,4 +21,7 @@ Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->


# Fixes
# Misc
<!--
Feel free to leave additional thoughts or tag people as you see fit
-->
4 changes: 1 addition & 3 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,11 @@ jobs:
node-version: '17.x'
registry-url: 'https://registry.npmjs.org'
- name: Build and install dependencies
# There's a `git restore` in here because `make install-go-ci-dependencies` is actually messing up go.mod & go.sum.
run: |
pip install -U pip setuptools wheel twine
make install-protoc-dependencies
make build-ui
git status
git restore go.mod go.sum
git restore sdk/python/feast/ui/yarn.lock
- name: Build
run: |
Expand Down Expand Up @@ -160,7 +158,7 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4.1.7
with:
name: wheels
path: dist
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ jobs:
runs-on: ubuntu-latest
needs: [build_wheels]
steps:
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4.1.7
with:
name: wheels
path: dist
Expand Down
1 change: 1 addition & 0 deletions .releaserc.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ module.exports = {
"CHANGELOG.md",
"java/pom.xml",
"infra/charts/**/*.*",
"infra/feast-operator/**/*",
"ui/package.json",
"sdk/python/feast/ui/package.json",
"sdk/python/feast/ui/yarn.lock"
Expand Down
38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# Changelog

# [0.40.0](https://github.com/feast-dev/feast/compare/v0.39.0...v0.40.0) (2024-07-31)


### Bug Fixes

* Added missing type ([#4315](https://github.com/feast-dev/feast/issues/4315)) ([86af60a](https://github.com/feast-dev/feast/commit/86af60ad87d537b17e4ce6ec7a5eac0d637fb32d))
* Avoid XSS attack from Jinjin2's Environment(). ([#4355](https://github.com/feast-dev/feast/issues/4355)) ([40270e7](https://github.com/feast-dev/feast/commit/40270e754660d0a8f57cc8a3bbfb1e1e346c3d86))
* CGO Memory leak issue in GO Feature server ([#4291](https://github.com/feast-dev/feast/issues/4291)) ([43e198f](https://github.com/feast-dev/feast/commit/43e198f6945c5e868ade341309f2c5ca39ac563e))
* Deprecated the datetime.utcfromtimestamp(). ([#4306](https://github.com/feast-dev/feast/issues/4306)) ([21deec8](https://github.com/feast-dev/feast/commit/21deec8495a101442e78cabc9a30cb5fbee5382f))
* Fix SQLite import issue ([#4294](https://github.com/feast-dev/feast/issues/4294)) ([398ea3b](https://github.com/feast-dev/feast/commit/398ea3b86c83605963124404ff4baa95162dc1f4))
* Increment operator to v0.39.0 ([#4368](https://github.com/feast-dev/feast/issues/4368)) ([3ddb4fb](https://github.com/feast-dev/feast/commit/3ddb4fb90d845bb3113cc51c484938579668d2c5))
* Minor typo in the unit test. ([#4296](https://github.com/feast-dev/feast/issues/4296)) ([6c75e84](https://github.com/feast-dev/feast/commit/6c75e84b036f84910dcbd7f1733ebd0d8839ab6c))
* OnDemandFeatureView type inference for array types ([#4310](https://github.com/feast-dev/feast/issues/4310)) ([c45ff72](https://github.com/feast-dev/feast/commit/c45ff72f821404c595477e696ab4be1b888090cc))
* Remove redundant batching in PostgreSQLOnlineStore.online_write_batch and fix progress bar ([#4331](https://github.com/feast-dev/feast/issues/4331)) ([0d89d15](https://github.com/feast-dev/feast/commit/0d89d1519fc6b8ddd05a2588138e2e85f5a921b1))
* Remove typo. ([#4351](https://github.com/feast-dev/feast/issues/4351)) ([92d17de](https://github.com/feast-dev/feast/commit/92d17def8cdff2bebfa622a4b3846d5bdc3e58d8))
* Retire the datetime.utcnow(). ([#4352](https://github.com/feast-dev/feast/issues/4352)) ([a8bc696](https://github.com/feast-dev/feast/commit/a8bc696010fa94fa0be44fba2570bee0eab83ba2))
* Update dask version to support pandas 1.x ([#4326](https://github.com/feast-dev/feast/issues/4326)) ([a639d61](https://github.com/feast-dev/feast/commit/a639d617c047030f75c6950e9bfa6e5cfe63daaa))
* Update Feast object metadata in the registry ([#4257](https://github.com/feast-dev/feast/issues/4257)) ([8028ae0](https://github.com/feast-dev/feast/commit/8028ae0f39e706637bc2781850a3b7d8925a87f7))
* Using one single function call for utcnow(). ([#4307](https://github.com/feast-dev/feast/issues/4307)) ([98ff63c](https://github.com/feast-dev/feast/commit/98ff63cd389207998b3452ec46e5a2f0fc70485c))


### Features

* Add async feature retrieval for Postgres Online Store ([#4327](https://github.com/feast-dev/feast/issues/4327)) ([cea52e9](https://github.com/feast-dev/feast/commit/cea52e9fb02cb9e0b8f48206278474f5a5fa167e))
* Add Async refresh to Sql Registry ([#4251](https://github.com/feast-dev/feast/issues/4251)) ([f569786](https://github.com/feast-dev/feast/commit/f5697863669a6bb9dbd491f79192e8ddd0073388))
* Add SingleStore as an OnlineStore ([#4285](https://github.com/feast-dev/feast/issues/4285)) ([2c38946](https://github.com/feast-dev/feast/commit/2c3894693e9079b8ad7873b139b30440c919e913))
* Add Tornike to maintainers.md ([#4339](https://github.com/feast-dev/feast/issues/4339)) ([8e8c1f2](https://github.com/feast-dev/feast/commit/8e8c1f2ff9a77738e71542cbaab9531f321842a4))
* Bump psycopg2 to psycopg3 for all Postgres components ([#4303](https://github.com/feast-dev/feast/issues/4303)) ([9451d9c](https://github.com/feast-dev/feast/commit/9451d9ca15f234e8e16e81351294fd63b33c1af2))
* Entity key deserialization ([#4284](https://github.com/feast-dev/feast/issues/4284)) ([83fad15](https://github.com/feast-dev/feast/commit/83fad152ffe01a3b2691095a45b90eb30044c859))
* Ignore paths feast apply ([#4276](https://github.com/feast-dev/feast/issues/4276)) ([b4d54af](https://github.com/feast-dev/feast/commit/b4d54afaa83cb3e1391d62f4243e7d63a698064c))
* Move get_online_features to OnlineStore interface ([#4319](https://github.com/feast-dev/feast/issues/4319)) ([7072fd0](https://github.com/feast-dev/feast/commit/7072fd0e2e1d2f4d9a3e8f02d04ae042b3d9c0d4))
* Port mssql contrib offline store to ibis ([#4360](https://github.com/feast-dev/feast/issues/4360)) ([7914cbd](https://github.com/feast-dev/feast/commit/7914cbdaffeade727cf3cee538cf128cbfd86e06))


### Reverts

* Revert "fix: Avoid XSS attack from Jinjin2's Environment()." ([#4357](https://github.com/feast-dev/feast/issues/4357)) ([cdeab48](https://github.com/feast-dev/feast/commit/cdeab486970ccb8c716499610f927a6e8eb14457)), closes [#4355](https://github.com/feast-dev/feast/issues/4355)

# [0.39.0](https://github.com/feast-dev/feast/compare/v0.38.0...v0.39.0) (2024-06-18)


Expand Down
36 changes: 4 additions & 32 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
# for more info about CODEOWNERS file

# Core Interfaces
/sdk/python/feast/infra/offline_stores/offline_store.py @feast-dev/maintainers @sfc-gh-madkins
/sdk/python/feast/infra/online_stores/online_store.py @feast-dev/maintainers @DvirDukhan
/sdk/python/feast/infra/materialization_engine/batch_materialization_engine.py @feast-dev/maintainers @whoahbot @sfc-gh-madkins
/sdk/python/feast/infra/offline_stores/offline_store.py @feast-dev/maintainers
/sdk/python/feast/infra/online_stores/online_store.py @feast-dev/maintainers
/sdk/python/feast/infra/materialization_engine/batch_materialization_engine.py @feast-dev/maintainers

# ==== Offline Stores ====
# Core utils
/sdk/python/feast/infra/offline_stores/offline_utils.py @feast-dev/maintainers @sfc-gh-madkins
/sdk/python/feast/infra/offline_stores/offline_utils.py @feast-dev/maintainers

# Offline interfaces
/sdk/python/feast/infra/offline_stores/offline_store.py @feast-dev/maintainers
Expand All @@ -18,38 +18,10 @@
/sdk/python/feast/infra/offline_stores/bigquery_source.py @sudohainguyen
/sdk/python/tests/integration/feature_repos/universal/data_sources/bigquery.py @sudohainguyen

# Snowflake
/sdk/python/feast/infra/offline_stores/snowflake* @sfc-gh-madkins

# Athena (contrib)
/sdk/python/feast/infra/offline_stores/contrib/athena_offline_store/ @toping4445

# Azure SQL (contrib)
/sdk/python/feast/infra/offline_stores/contrib/mssql_offline_store/ @kevjumba

# Spark (contrib)
/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/ @niklasvm @kevjumba

# ==== Online Stores ====

# HBase
/sdk/python/feast/infra/online_stores/hbase.py @sudohainguyen
/sdk/python/feast/infra/online_stores/contrib/hbase_online_store @sudohainguyen

# Redis
/sdk/python/feast/infra/online_stores/redis.py @DvirDukhan
/java/feast/serving/connectors/redis/ @DvirDukhan

# Snowflake
/sdk/python/feast/infra/online_stores/snowflake.py @sfc-gh-madkins

# Cassandra (contrib)
/sdk/python/feast/infra/online_stores/cassandra_online_store/ @hemidactylus

# ==== Batch Materialization Engines ====

# Snowflake
/sdk/python/feast/infra/materialization/snowflake* @sfc-gh-madkins

# AWS Lambda
/sdk/python/feast/infra/materialization/contrib/aws_lambda/ @achals
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<h1>Development Guide: Main Feast Repository</h1>

> Please see [Development Guide](https://docs.feast.dev/project/development-guide) for project level development instructions, including instructions for Maintainers.
> Please see [Development Guide](docs/project/development-guide.md) for project level development instructions, including instructions for Maintainers.
44 changes: 44 additions & 0 deletions GIT_MERGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Steps to Sync the Fork from the Upstream Repository (feast-dev/feast)

This guide provides step-by-step instructions to sync your fork with the upstream repository changes.

## Step 1: Create a New Branch
```sh
git checkout -b GIT_BRANCH_NAME
```
## Step 2: Add the Upstream Remote Repository
```sh
git remote add upstream https://github.com/feast-dev/feast.git
git fetch upstream
```
## Step 3: Find the Common Ancestor
```sh
git merge-base GIT_BRANCH_NAME upstream/master
```
## Step 4: Merge to a Specific Commit
You don't need to merge all pending commits. You can pick a commit and repeat this process until you complete all the pending commits.
```sh
git merge GIT_COMMIT_HASH
```
## Step 5: Resolve the Merge Conflicts
IntelliJ IDE has a good Merge conflict resolution tool.
## Step 6: Regenerate requirements file
```sh
make lock-python-dependencies-all # Unable to run pixi commands on Mac
or
pip install uv
make lock-python-dependencies-uv-all
```
## Step 7: Create a virtual environment and Run the tests locally. Resolve the issues identified.
```sh
python -m venv .venv
source .venv/bin/activate
make install-python-ci-dependencies-uv-venv
make test-python-unit
make test-python-universal # Snowflake tests may fail. Rest all should pass.
```
## Step 8: Push the Changes to Your Fork and create Pull Request for Review
```sh
git push origin GIT_BRANCH_NAME
```
## Step 9: Review and Merge your changes (not Squash Merge)
Loading

0 comments on commit 2a5cfed

Please sign in to comment.