diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0eb1ee3df60..fa6f3018c92 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,85 @@
# Changelog
+## [v0.9.0](https://github.com/feast-dev/feast/tree/v0.9.0) (2021-01-28)
+
+[Full Changelog](https://github.com/feast-dev/feast/compare/v0.8.4...v0.9.0)
+
+**Implemented enhancements:**
+
+- Enable user to provide spark job template as input for jobservice deployment [\#1285](https://github.com/feast-dev/feast/pull/1285) ([khorshuheng](https://github.com/khorshuheng))
+- Add feature table name filter to jobs list api [\#1282](https://github.com/feast-dev/feast/pull/1282) ([terryyylim](https://github.com/terryyylim))
+- Report observed value for aggregated checks in pre-ingestion feature validation [\#1278](https://github.com/feast-dev/feast/pull/1278) ([pyalex](https://github.com/pyalex))
+- Add docs page for Azure setup [\#1276](https://github.com/feast-dev/feast/pull/1276) ([jklegar](https://github.com/jklegar))
+- Azure example terraform [\#1274](https://github.com/feast-dev/feast/pull/1274) ([jklegar](https://github.com/jklegar))
+
+
+**Fixed bugs:**
+
+- make EMR jar uploader work the same as k8s one [\#1284](https://github.com/feast-dev/feast/pull/1284) ([oavdeev](https://github.com/oavdeev))
+- Don't error when azure vars not set [\#1277](https://github.com/feast-dev/feast/pull/1277) ([jklegar](https://github.com/jklegar))
+- Prevent ingestion job config parser from unwanted fieldMapping transformation [\#1261](https://github.com/feast-dev/feast/pull/1261) ([pyalex](https://github.com/pyalex))
+- Features are not being ingested due to max age overflow [\#1209](https://github.com/feast-dev/feast/pull/1209) ([pyalex](https://github.com/pyalex))
+- Feature Table is not being update when only max\_age was changed [\#1208](https://github.com/feast-dev/feast/pull/1208) ([pyalex](https://github.com/pyalex))
+- Truncate staging timestamps in entities dataset to ms [\#1207](https://github.com/feast-dev/feast/pull/1207) ([pyalex](https://github.com/pyalex))
+- Bump terraform rds module version [\#1204](https://github.com/feast-dev/feast/pull/1204) ([oavdeev](https://github.com/oavdeev))
+
+
+**Merged pull requests:**
+
+- Use date partitioning column in FileSource [\#1293](https://github.com/feast-dev/feast/pull/1293) ([pyalex](https://github.com/pyalex))
+- Add EMR CI/CD entrypoint script [\#1290](https://github.com/feast-dev/feast/pull/1290) ([oavdeev](https://github.com/oavdeev))
+- Online serving optimizations [\#1286](https://github.com/feast-dev/feast/pull/1286) ([pyalex](https://github.com/pyalex))
+- Make third party grpc packages recognizable as python module [\#1283](https://github.com/feast-dev/feast/pull/1283) ([khorshuheng](https://github.com/khorshuheng))
+- Report observed values in feature validation as Gauge [\#1280](https://github.com/feast-dev/feast/pull/1280) ([pyalex](https://github.com/pyalex))
+- Keep same amount of partitions after repartitioning in IngestionJob [\#1279](https://github.com/feast-dev/feast/pull/1279) ([pyalex](https://github.com/pyalex))
+- Add request feature counter metric [\#1272](https://github.com/feast-dev/feast/pull/1272) ([terryyylim](https://github.com/terryyylim))
+- Use SEND\_INTERRUPT to cancel EMR jobs [\#1271](https://github.com/feast-dev/feast/pull/1271) ([oavdeev](https://github.com/oavdeev))
+- Fix historical test flakiness [\#1270](https://github.com/feast-dev/feast/pull/1270) ([jklegar](https://github.com/jklegar))
+- Allow https url for spark ingestion jar [\#1266](https://github.com/feast-dev/feast/pull/1266) ([jklegar](https://github.com/jklegar))
+- Add project name to feature validation metric [\#1264](https://github.com/feast-dev/feast/pull/1264) ([pyalex](https://github.com/pyalex))
+- Use dataproc console url instead of gcs for log uri [\#1263](https://github.com/feast-dev/feast/pull/1263) ([khorshuheng](https://github.com/khorshuheng))
+- Make nodes priority \(for redis cluster\) configurable in Serving [\#1260](https://github.com/feast-dev/feast/pull/1260) ([pyalex](https://github.com/pyalex))
+- Enhance job api to return associated feature table and start time [\#1259](https://github.com/feast-dev/feast/pull/1259) ([khorshuheng](https://github.com/khorshuheng))
+- Reporting metrics from validation UDF [\#1256](https://github.com/feast-dev/feast/pull/1256) ([pyalex](https://github.com/pyalex))
+- Allow use the same timestamp column for both created & even timestamp in Historical Retrieval [\#1255](https://github.com/feast-dev/feast/pull/1255) ([pyalex](https://github.com/pyalex))
+- Apply grpc tracing interceptor on Feast SDK [\#1243](https://github.com/feast-dev/feast/pull/1243) ([khorshuheng](https://github.com/khorshuheng))
+- Apply grpc tracing interceptor on online serving [\#1242](https://github.com/feast-dev/feast/pull/1242) ([khorshuheng](https://github.com/khorshuheng))
+- Python UDF in Ingestion being used for feature validation [\#1234](https://github.com/feast-dev/feast/pull/1234) ([pyalex](https://github.com/pyalex))
+- Add spark k8s operator launcher [\#1225](https://github.com/feast-dev/feast/pull/1225) ([oavdeev](https://github.com/oavdeev))
+- Add deadletter/read-from-source metrics to batch and stream ingestion [\#1223](https://github.com/feast-dev/feast/pull/1223) ([terryyylim](https://github.com/terryyylim))
+- Implement AbstractStagingClient for azure blob storage [\#1218](https://github.com/feast-dev/feast/pull/1218) ([jklegar](https://github.com/jklegar))
+- Configurable materialization destination for view in BigQuerySource [\#1201](https://github.com/feast-dev/feast/pull/1201) ([pyalex](https://github.com/pyalex))
+- Update Feast Core list features method [\#1176](https://github.com/feast-dev/feast/pull/1176) ([terryyylim](https://github.com/terryyylim))
+- S3 endpoint configuration \#1169 [\#1172](https://github.com/feast-dev/feast/pull/1172) ([mike0sv](https://github.com/mike0sv))
+- Increase kafka consumer waiting time in e2e tests [\#1268](https://github.com/feast-dev/feast/pull/1268) ([pyalex](https://github.com/pyalex))
+- E2E tests support for jobservice's control loop [\#1267](https://github.com/feast-dev/feast/pull/1267) ([pyalex](https://github.com/pyalex))
+- Optimize memory footprint for Spark Ingestion Job [\#1265](https://github.com/feast-dev/feast/pull/1265) ([pyalex](https://github.com/pyalex))
+- Fix historical test for azure [\#1262](https://github.com/feast-dev/feast/pull/1262) ([jklegar](https://github.com/jklegar))
+- Change azure https to wasbs and add azure creds to spark [\#1258](https://github.com/feast-dev/feast/pull/1258) ([jklegar](https://github.com/jklegar))
+- Docs, fixes and scripts to run e2e tests in minikube [\#1254](https://github.com/feast-dev/feast/pull/1254) ([oavdeev](https://github.com/oavdeev))
+- Fix azure blob storage access in e2e tests [\#1253](https://github.com/feast-dev/feast/pull/1253) ([jklegar](https://github.com/jklegar))
+- Update python version requirements to 3.7 for Dataproc launcher [\#1251](https://github.com/feast-dev/feast/pull/1251) ([pyalex](https://github.com/pyalex))
+- Fix build-ingestion-py-dependencies script [\#1250](https://github.com/feast-dev/feast/pull/1250) ([pyalex](https://github.com/pyalex))
+- Add datadog\(statsd\) client to python package for IngestionJob [\#1249](https://github.com/feast-dev/feast/pull/1249) ([pyalex](https://github.com/pyalex))
+- Add prow job for azure e2e test [\#1244](https://github.com/feast-dev/feast/pull/1244) ([jklegar](https://github.com/jklegar))
+- Azure e2e test [\#1241](https://github.com/feast-dev/feast/pull/1241) ([jklegar](https://github.com/jklegar))
+- Add Feast Serving histogram metrics [\#1240](https://github.com/feast-dev/feast/pull/1240) ([terryyylim](https://github.com/terryyylim))
+- CI should work on python 3.6 [\#1237](https://github.com/feast-dev/feast/pull/1237) ([pyalex](https://github.com/pyalex))
+- Integration test for k8s spark operator support [\#1236](https://github.com/feast-dev/feast/pull/1236) ([oavdeev](https://github.com/oavdeev))
+- Add prow config for spark k8s operator integration testing [\#1235](https://github.com/feast-dev/feast/pull/1235) ([oavdeev-tt](https://github.com/oavdeev-tt))
+- Upgrading spark to 3.0.1 [\#1227](https://github.com/feast-dev/feast/pull/1227) ([pyalex](https://github.com/pyalex))
+- Support TFRecord as one of the output formats for historical feature retrieval [\#1222](https://github.com/feast-dev/feast/pull/1222) ([khorshuheng](https://github.com/khorshuheng))
+- Remove stage\_dataframe from the launcher interface [\#1220](https://github.com/feast-dev/feast/pull/1220) ([oavdeev](https://github.com/oavdeev))
+- Refactor staging client uploader and use it in EMR launcher [\#1219](https://github.com/feast-dev/feast/pull/1219) ([oavdeev](https://github.com/oavdeev))
+- Remove unused EMR code [\#1217](https://github.com/feast-dev/feast/pull/1217) ([oavdeev](https://github.com/oavdeev))
+- Remove job id from ingested row counter metric [\#1216](https://github.com/feast-dev/feast/pull/1216) ([terryyylim](https://github.com/terryyylim))
+- Quickstart link fixed [\#1213](https://github.com/feast-dev/feast/pull/1213) ([szczeles](https://github.com/szczeles))
+- Delete v1 concepts [\#1194](https://github.com/feast-dev/feast/pull/1194) ([terryyylim](https://github.com/terryyylim))
+- Dont write defaults to config [\#1188](https://github.com/feast-dev/feast/pull/1188) ([mike0sv](https://github.com/mike0sv))
+- Refactor tests which utilizes feature sets [\#1186](https://github.com/feast-dev/feast/pull/1186) ([terryyylim](https://github.com/terryyylim))
+- Refactor configurable options and add sphinx docs [\#1174](https://github.com/feast-dev/feast/pull/1174) ([terryyylim](https://github.com/terryyylim))
+- Remove unnecessary Google Auth dependency [\#1170](https://github.com/feast-dev/feast/pull/1170) ([woop](https://github.com/woop))
+
+
## [v0.8.2](https://github.com/feast-dev/feast/tree/v0.8.2) (2020-12-01)
[Full Changelog](https://github.com/feast-dev/feast/compare/v0.8.1...v0.8.2)
diff --git a/datatypes/java/README.md b/datatypes/java/README.md
index 4064e2ae665..c926926f209 100644
--- a/datatypes/java/README.md
+++ b/datatypes/java/README.md
@@ -16,7 +16,7 @@ Dependency Coordinates
dev.feast
datatypes-java
- 0.9.0-SNAPSHOT
+ 0.9.0
```
diff --git a/docs/advanced/audit-logging.md b/docs/advanced/audit-logging.md
index 886dfe1bc51..7f80f105ef9 100644
--- a/docs/advanced/audit-logging.md
+++ b/docs/advanced/audit-logging.md
@@ -48,7 +48,7 @@ Audit Logs produced by Feast are written to the console similar to normal logs b
"service": "CoreService",
"component": "feast-core",
"id": "45329ea9-0d48-46c5-b659-4604f6193711",
- "version": "0.9.0-SNAPSHOT"
+ "version": "0.9.0"
},
"hostname": "feast.core"
"timestamp": "2020-10-20T04:45:24Z",
diff --git a/docs/contributing/development-guide.md b/docs/contributing/development-guide.md
index c10067f0698..b52c66c1e3d 100644
--- a/docs/contributing/development-guide.md
+++ b/docs/contributing/development-guide.md
@@ -109,10 +109,10 @@ Feast Serving has a dependency on Feast Core, thus always start Feast Core first
```bash
# Start Feast Core locally
-java -jar core/target/feast-core-0.9.0-SNAPSHOT-exec.jar
+java -jar core/target/feast-core-0.9.0-exec.jar
# Start Feast Serving locally
-java -jar serving/target/feast-serving-0.9.0-SNAPSHOT-exec.jar
+java -jar serving/target/feast-serving-0.9.0-exec.jar
```
Test whether Feast Core, Feast Serving are started and running correctly:
@@ -123,8 +123,8 @@ feast version --core-url="localhost:6565" --serving-url="localhost:6566"
```javascript
{
- 'serving': {'url': 'localhost:6566', 'version': '0.9.0-SNAPSHOT'},
- 'core': {'url': 'localhost:6565', 'version': '0.9.0-SNAPSHOT'}
+ 'serving': {'url': 'localhost:6566', 'version': '0.9.0'},
+ 'core': {'url': 'localhost:6565', 'version': '0.9.0'}
}
```
diff --git a/infra/charts/feast/Chart.yaml b/infra/charts/feast/Chart.yaml
index 2fdf4299540..354847f1a81 100644
--- a/infra/charts/feast/Chart.yaml
+++ b/infra/charts/feast/Chart.yaml
@@ -1,4 +1,4 @@
apiVersion: v1
description: Feature store for machine learning.
name: feast
-version: 0.9.0-SNAPSHOT
+version: 0.9.0
diff --git a/infra/charts/feast/README.md b/infra/charts/feast/README.md
index e5b540fc1cc..2b64b49a97d 100644
--- a/infra/charts/feast/README.md
+++ b/infra/charts/feast/README.md
@@ -1,7 +1,7 @@
feast
=====
-Feature store for machine learning. Current chart version is `0.9.0-SNAPSHOT`
+Feature store for machine learning. Current chart version is `0.9.0`
## Installation
@@ -11,9 +11,9 @@ https://docs.feast.dev/v/master/getting-started/deploying-feast/kubernetes
| Repository | Name | Version |
|------------|------|---------|
-| | feast-core | 0.9.0-SNAPSHOT |
-| | feast-jupyter | 0.9.0-SNAPSHOT |
-| | feast-serving | 0.9.0-SNAPSHOT |
+| | feast-core | 0.9.0 |
+| | feast-jupyter | 0.9.0 |
+| | feast-serving | 0.9.0 |
| | prometheus-statsd-exporter | 0.1.2 |
| https://charts.bitnami.com/bitnami/ | kafka | 11.8.8 |
| https://kubernetes-charts.storage.googleapis.com/ | grafana | 5.0.5 |
diff --git a/infra/charts/feast/charts/feast-core/Chart.yaml b/infra/charts/feast/charts/feast-core/Chart.yaml
index 5ec54874014..e8ce2818f97 100644
--- a/infra/charts/feast/charts/feast-core/Chart.yaml
+++ b/infra/charts/feast/charts/feast-core/Chart.yaml
@@ -1,4 +1,4 @@
apiVersion: v1
description: Feast Core registers feature specifications.
name: feast-core
-version: 0.9.0-SNAPSHOT
+version: 0.9.0
diff --git a/infra/charts/feast/charts/feast-core/README.md b/infra/charts/feast/charts/feast-core/README.md
index ac0bb14531a..c64fa0689c7 100644
--- a/infra/charts/feast/charts/feast-core/README.md
+++ b/infra/charts/feast/charts/feast-core/README.md
@@ -2,7 +2,7 @@ feast-core
==========
Feast Core registers feature specifications.
-Current chart version is `0.9.0-SNAPSHOT`
+Current chart version is `0.9.0`
diff --git a/infra/charts/feast/charts/feast-jobservice/Chart.yaml b/infra/charts/feast/charts/feast-jobservice/Chart.yaml
index 37c22fb3a45..5f8943fbada 100644
--- a/infra/charts/feast/charts/feast-jobservice/Chart.yaml
+++ b/infra/charts/feast/charts/feast-jobservice/Chart.yaml
@@ -1,4 +1,4 @@
apiVersion: v1
description: Feast Job Service manage ingestion jobs.
name: feast-jobservice
-version: 0.9.0-SNAPSHOT
+version: 0.9.0
diff --git a/infra/charts/feast/charts/feast-jobservice/README.md b/infra/charts/feast/charts/feast-jobservice/README.md
index 1758a600676..cd788adfac1 100644
--- a/infra/charts/feast/charts/feast-jobservice/README.md
+++ b/infra/charts/feast/charts/feast-jobservice/README.md
@@ -2,7 +2,7 @@ feast-jobservice
================
Feast Job Service manage ingestion jobs.
-Current chart version is `0.9.0-SNAPSHOT`
+Current chart version is `0.9.0`
diff --git a/infra/charts/feast/charts/feast-jupyter/Chart.yaml b/infra/charts/feast/charts/feast-jupyter/Chart.yaml
index aacb6f99b7d..3df73756ae8 100644
--- a/infra/charts/feast/charts/feast-jupyter/Chart.yaml
+++ b/infra/charts/feast/charts/feast-jupyter/Chart.yaml
@@ -1,4 +1,4 @@
apiVersion: v1
description: Feast Jupyter provides a Jupyter server with pre-installed Feast SDK
name: feast-jupyter
-version: 0.9.0-SNAPSHOT
+version: 0.9.0
diff --git a/infra/charts/feast/charts/feast-jupyter/README.md b/infra/charts/feast/charts/feast-jupyter/README.md
index c9f433daf0e..18d7207d29e 100644
--- a/infra/charts/feast/charts/feast-jupyter/README.md
+++ b/infra/charts/feast/charts/feast-jupyter/README.md
@@ -2,7 +2,7 @@ feast-jupyter
=============
Feast Jupyter provides a Jupyter server with pre-installed Feast SDK
-Current chart version is `0.9.0-SNAPSHOT`
+Current chart version is `0.9.0`
diff --git a/infra/charts/feast/charts/feast-serving/Chart.yaml b/infra/charts/feast/charts/feast-serving/Chart.yaml
index 78f8dbf3e9f..d753d4b3609 100644
--- a/infra/charts/feast/charts/feast-serving/Chart.yaml
+++ b/infra/charts/feast/charts/feast-serving/Chart.yaml
@@ -1,4 +1,4 @@
apiVersion: v1
description: Feast Serving serves low-latency latest features and historical batch features.
name: feast-serving
-version: 0.9.0-SNAPSHOT
+version: 0.9.0
diff --git a/infra/charts/feast/charts/feast-serving/README.md b/infra/charts/feast/charts/feast-serving/README.md
index dd0668756ce..1c926a7e0ba 100644
--- a/infra/charts/feast/charts/feast-serving/README.md
+++ b/infra/charts/feast/charts/feast-serving/README.md
@@ -2,7 +2,7 @@ feast-serving
=============
Feast Serving serves low-latency latest features and historical batch features.
-Current chart version is `0.9.0-SNAPSHOT`
+Current chart version is `0.9.0`
diff --git a/infra/charts/feast/charts/prometheus-statsd-exporter/README.md b/infra/charts/feast/charts/prometheus-statsd-exporter/README.md
index d7460eaf5da..61f8ffe64e3 100644
--- a/infra/charts/feast/charts/prometheus-statsd-exporter/README.md
+++ b/infra/charts/feast/charts/prometheus-statsd-exporter/README.md
@@ -38,7 +38,7 @@ $ helm delete my-release
|`extraArgs` | key:value list of extra arguments to give the binary | `{}` |
|`image.pullPolicy` | Image pull policy | `IfNotPresent` |
|`image.repository` | Image repository | `prom/statsd-exporter` |
-|`image.tag` | Image tag | `v0.9.0-SNAPSHOT` |
+|`image.tag` | Image tag | `v0.9.0` |
|`ingress.enabled` | enable ingress | `false` |
|`ingress.path` | ingress base path | `/` |
|`ingress.host` | Ingress accepted hostnames | `nil` |
diff --git a/infra/charts/feast/requirements.lock b/infra/charts/feast/requirements.lock
index a7d3a5252b2..8a87c90b5c3 100644
--- a/infra/charts/feast/requirements.lock
+++ b/infra/charts/feast/requirements.lock
@@ -1,13 +1,13 @@
dependencies:
- name: feast-core
repository: ""
- version: 0.9.0-SNAPSHOT
+ version: 0.9.0
- name: feast-serving
repository: ""
- version: 0.9.0-SNAPSHOT
+ version: 0.9.0
- name: feast-jupyter
repository: ""
- version: 0.9.0-SNAPSHOT
+ version: 0.9.0
- name: postgresql
repository: https://kubernetes-charts.storage.googleapis.com/
version: 8.6.1
diff --git a/infra/charts/feast/requirements.yaml b/infra/charts/feast/requirements.yaml
index 63a55cfa408..26a8ab7bcc0 100644
--- a/infra/charts/feast/requirements.yaml
+++ b/infra/charts/feast/requirements.yaml
@@ -1,13 +1,13 @@
dependencies:
- name: feast-core
- version: 0.9.0-SNAPSHOT
+ version: 0.9.0
condition: feast-core.enabled
- name: feast-serving
alias: feast-online-serving
- version: 0.9.0-SNAPSHOT
+ version: 0.9.0
condition: feast-online-serving.enabled
- name: feast-jupyter
- version: 0.9.0-SNAPSHOT
+ version: 0.9.0
condition: feast-jupyter.enabled
- name: postgresql
version: 8.6.1
diff --git a/pom.xml b/pom.xml
index 3c73517da0e..49fc65454eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
- 0.9.0-SNAPSHOT
+ 0.9.0
https://github.com/feast-dev/feast
UTF-8
diff --git a/spark/ingestion/src/main/scala/feast/ingestion/IngestionJob.scala b/spark/ingestion/src/main/scala/feast/ingestion/IngestionJob.scala
index 86af18d07e6..290dc07fbfd 100644
--- a/spark/ingestion/src/main/scala/feast/ingestion/IngestionJob.scala
+++ b/spark/ingestion/src/main/scala/feast/ingestion/IngestionJob.scala
@@ -31,7 +31,7 @@ object IngestionJob {
val parser = new scopt.OptionParser[IngestionJobConfig]("IngestionJob") {
// ToDo: read version from Manifest
- head("feast.ingestion.IngestionJob", "0.9.0-SNAPSHOT")
+ head("feast.ingestion.IngestionJob", "0.9.0")
opt[Modes]("mode")
.action((x, c) => c.copy(mode = x))