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

Support printing features and returning keys when getting features from registry #886

Merged
merged 33 commits into from
Dec 16, 2022
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
33e16d9
Support printing features function when getting features from registry
Nov 29, 2022
87dea4b
Add a new compute model to Feathr (#820)
rakeshkashyap123 Nov 30, 2022
2d6da56
Add job_tag to materialization job submission. Change get_result_df's…
loomlike Dec 1, 2022
4ad70f2
Bump minimatch and recursive-readdir in /ui (#889)
dependabot[bot] Dec 1, 2022
66165ca
Merge branch 'main' into enya/print-features
Dec 1, 2022
5a3dbf1
Merge branch 'main' into enya/print-features
Dec 1, 2022
892d5d0
Add return keys function
Dec 1, 2022
8bd5cc6
Add return keys function
Dec 1, 2022
1e6aebb
quick fix
Dec 1, 2022
3e3fe7e
quick fix
Dec 1, 2022
cae6a99
Add docs for checking/improving test coverage (#884)
enya-yx Dec 1, 2022
69849b5
add composite keys in test cases
Dec 1, 2022
d2be7d9
add composite keys in test cases
Dec 1, 2022
858f88f
Expose deletion API for projects/features (#852)
aabbasi-hbo Dec 1, 2022
0c00490
Add KeyError for Key and Feature Type (#877)
Yuqing-cat Dec 2, 2022
71462ac
use logger to print
Dec 2, 2022
f5ee741
use logger to print
Dec 2, 2022
9077f00
add sql credential pass through doc (#883)
Yuqing-cat Dec 2, 2022
bb36583
update registry test, modify log (#892)
Yuqing-cat Dec 2, 2022
1233653
Fix empty job tag (#895)
loomlike Dec 2, 2022
0955d15
Add feature embedding example (#881)
loomlike Dec 2, 2022
8da9af7
quick change
Dec 2, 2022
c4ce150
quick change
Dec 2, 2022
0614863
quick fix
Dec 2, 2022
24c5a59
quick fix
Dec 2, 2022
457566c
Bump decode-uri-component from 0.2.0 to 0.2.2 in /ui (#896)
dependabot[bot] Dec 2, 2022
2ee97ce
Add 'postfixPath' to support time pattern in the middle of paths (#858)
enya-yx Dec 2, 2022
d196023
Merge branch 'main' into enya/print-features
Dec 2, 2022
8a3066a
Merge branch 'main' into enya/print-features
Dec 2, 2022
e3d9ae7
Merge branch 'enya/print-features' of https://github.com/enya-yx/feat…
Dec 13, 2022
ddce381
Merge branch 'main' into enya/print-features
Dec 13, 2022
0b65caa
Quick fix and merge with main
Dec 13, 2022
ede7f70
Remove extra files
Dec 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# These are explicitly windows files and should use crlf
*.bat text eol=crlf

10 changes: 5 additions & 5 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow builds the docker container and publishes to dockerhub with appropriate tag
# It has two triggers,
# It has two triggers,
# 1. daily i.e. runs everyday at specific time.
# 2. Anytime a new branch is created under releases

Expand All @@ -22,19 +22,19 @@ jobs:
steps:
- name: Check out the repo
uses: actions/checkout@v3

- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: feathrfeaturestore/feathr-registry

- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
Expand Down Expand Up @@ -72,4 +72,4 @@ jobs:
id: deploy-to-feathr-registry-sql-rbac
uses: distributhor/workflow-webhook@v3.0.1
env:
webhook_url: ${{ secrets.AZURE_WEBAPP_FEATHR_REGISTRY_SQL_RBAC_WEBHOOK }}
webhook_url: ${{ secrets.AZURE_WEBAPP_FEATHR_REGISTRY_SQL_RBAC_WEBHOOK }}
15 changes: 7 additions & 8 deletions .github/workflows/publish-to-maven.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: Publish package to the Maven Central Repository
on:
on:
push:
# This pipeline will get triggered everytime there is a new tag created.
# It is required
# It is required
tags: ["*"]

jobs:
publish-to-maven:
runs-on: ubuntu-latest

steps:
- name: Checkout source
uses: actions/checkout@v2

# Setting up JDK 8, this is required to build Feathr
- name: Set up JDK 8
uses: actions/setup-java@v2
Expand All @@ -27,10 +27,9 @@ jobs:

# CI release command defaults to publishSigned
# Sonatype release command defaults to sonaTypeBundleRelease
# https://github.com/sbt/sbt-ci-release
- name: Sbt ci release
run: |
sbt ci-release
- name: Gradle publish
if: startsWith(github.head_ref, 'release/v')
run: gradle clean publish
env:
PGP_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
PGP_SECRET: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
Expand Down
38 changes: 20 additions & 18 deletions .github/workflows/pull_request_push_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ on:
- cron: '00 13 * * *'

jobs:
sbt_test:
gradle_test:
runs-on: ubuntu-latest
if: github.event_name == 'schedule' || github.event_name == 'push' || github.event_name == 'pull_request' || (github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe to test'))
steps:
Expand All @@ -41,7 +41,7 @@ jobs:
java-version: "8"
distribution: "temurin"
- name: Run tests
run: sbt clean && sbt test
run: ./gradlew clean && ./gradlew test

python_lint:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -75,15 +75,15 @@ jobs:
with:
java-version: "8"
distribution: "temurin"
- name: Build JAR
- name: Gradle build
run: |
sbt assembly
./gradlew build
# remote folder for CI upload
echo "CI_SPARK_REMOTE_JAR_FOLDER=feathr_jar_github_action_$(date +"%H_%M_%S")" >> $GITHUB_ENV
# get local jar name without paths so version change won't affect it
echo "FEATHR_LOCAL_JAR_NAME=$(ls target/scala-2.12/*.jar| xargs -n 1 basename)" >> $GITHUB_ENV
echo "FEATHR_LOCAL_JAR_NAME=$(ls build/libs/*.jar| xargs -n 1 basename)" >> $GITHUB_ENV
# get local jar name without path
echo "FEATHR_LOCAL_JAR_FULL_NAME_PATH=$(ls target/scala-2.12/*.jar)" >> $GITHUB_ENV
echo "FEATHR_LOCAL_JAR_FULL_NAME_PATH=$(ls build/libs/*.jar)" >> $GITHUB_ENV
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
Expand Down Expand Up @@ -142,15 +142,16 @@ jobs:
with:
java-version: "8"
distribution: "temurin"
- name: Build JAR

- name: Gradle build
run: |
sbt assembly
./gradlew build
# remote folder for CI upload
echo "CI_SPARK_REMOTE_JAR_FOLDER=feathr_jar_github_action_$(date +"%H_%M_%S")" >> $GITHUB_ENV
# get local jar name without paths so version change won't affect it
echo "FEATHR_LOCAL_JAR_NAME=$(ls target/scala-2.12/*.jar| xargs -n 1 basename)" >> $GITHUB_ENV
echo "FEATHR_LOCAL_JAR_NAME=$(ls build/libs/*.jar| xargs -n 1 basename)" >> $GITHUB_ENV
# get local jar name without path
echo "FEATHR_LOCAL_JAR_FULL_NAME_PATH=$(ls target/scala-2.12/*.jar)" >> $GITHUB_ENV
echo "FEATHR_LOCAL_JAR_FULL_NAME_PATH=$(ls build/libs/*.jar)" >> $GITHUB_ENV
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
Expand Down Expand Up @@ -196,7 +197,7 @@ jobs:
run: |
# skip databricks related test as we just ran the test; also seperate databricks and synapse test to make sure there's no write conflict
# run in 6 parallel jobs to make the time shorter
pytest -n 6 --cov-report term-missing --cov=feathr_project/feathr feathr_project/test --cov-config=.github/workflows/.coveragerc_sy
pytest -n 6 -m "not databricks" --cov-report term-missing --cov=feathr_project/feathr feathr_project/test --cov-config=.github/workflows/.coveragerc_sy

local_spark_test:
runs-on: ubuntu-latest
Expand All @@ -210,15 +211,16 @@ jobs:
with:
java-version: "8"
distribution: "temurin"
- name: Build JAR

- name: Gradle build
run: |
sbt assembly
./gradlew build
# remote folder for CI upload
echo "CI_SPARK_REMOTE_JAR_FOLDER=feathr_jar_github_action_$(date +"%H_%M_%S")" >> $GITHUB_ENV
# get local jar name without paths so version change won't affect it
echo "FEATHR_LOCAL_JAR_NAME=$(ls target/scala-2.12/*.jar| xargs -n 1 basename)" >> $GITHUB_ENV
echo "FEATHR_LOCAL_JAR_NAME=$(ls build/libs/*.jar| xargs -n 1 basename)" >> $GITHUB_ENV
# get local jar name without path
echo "FEATHR_LOCAL_JAR_FULL_NAME_PATH=$(ls target/scala-2.12/*.jar)" >> $GITHUB_ENV
echo "FEATHR_LOCAL_JAR_FULL_NAME_PATH=$(ls build/libs/*.jar)" >> $GITHUB_ENV
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
Expand Down Expand Up @@ -258,7 +260,7 @@ jobs:

failure_notification:
# If any failure, warning message will be sent
needs: [sbt_test, python_lint, databricks_test, azure_synapse_test, local_spark_test]
needs: [gradle_test, python_lint, databricks_test, azure_synapse_test, local_spark_test]
runs-on: ubuntu-latest
if: failure() && github.event_name == 'schedule'
steps:
Expand All @@ -268,12 +270,12 @@ jobs:

notification:
# Final Daily Report with all job status
needs: [sbt_test, python_lint, databricks_test, azure_synapse_test, local_spark_test]
needs: [gradle_test, python_lint, databricks_test, azure_synapse_test, local_spark_test]
runs-on: ubuntu-latest
if: always() && github.event_name == 'schedule'
steps:
- name: Get Date
run: echo "NOW=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Notification
run: |
curl -H 'Content-Type: application/json' -d '{"text": "${{env.NOW}} Daily Report: 1. SBT Test ${{needs.sbt_test.result}}, 2. Python Lint Test ${{needs.python_lint.result}}, 3. Databricks Test ${{needs.databricks_test.result}}, 4. Synapse Test ${{needs.azure_synapse_test.result}} , 5. LOCAL SPARK TEST ${{needs.local_spark_test.result}}. Link: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' ${{ secrets.TEAMS_WEBHOOK }}
curl -H 'Content-Type: application/json' -d '{"text": "${{env.NOW}} Daily Report: 1. Gradle Test ${{needs.gradle_test.result}}, 2. Python Lint Test ${{needs.python_lint.result}}, 3. Databricks Test ${{needs.databricks_test.result}}, 4. Synapse Test ${{needs.azure_synapse_test.result}} , 5. LOCAL SPARK TEST ${{needs.local_spark_test.result}}. Link: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' ${{ secrets.TEAMS_WEBHOOK }}
15 changes: 11 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
.AppleDouble
.LSOverride
metastore_db
src/integTest
feathr-impl/src/integTest
test-output
temp

Expand Down Expand Up @@ -189,30 +189,37 @@ cython_debug/
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

target/
.idea
.project/target
.project/project
.DS_store
.DS_Store
*.jar
src/main/scala/META-INF/MANIFEST.MF
feathr-impl/src/main/scala/META-INF/MANIFEST.MF
*.MF
feathr_project/feathr_cli.egg-info/*
*.pyc
*.iml

# VS Code
.vscode

#Local Build
null/*

# Ignore Gradle project-specific cache directory
.gradle

# Ignore Gradle build output directory
build

# For Metal Server
.metals/
.bloop/
project/.bloop
metals.sbt

.bsp/sbt.json

# Feathr output debug folder
**/debug/

2 changes: 1 addition & 1 deletion .husky/pre-commit
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged
npx lint-staged
2 changes: 1 addition & 1 deletion FeathrRegistry.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ RUN npm install && npm run build
FROM python:3.9

## Install dependencies
RUN apt-get update -y && apt-get install -y nginx
RUN apt-get update -y && apt-get install -y nginx freetds-dev
COPY ./registry /usr/src/registry
WORKDIR /usr/src/registry/sql-registry
RUN pip install -r requirements.txt
Expand Down
Loading