Bump to version 0.16 (#659)

* Bump to version 0.16

Signed-off-by: Xuanwo <github@xuanwo.io>

* Fix lonk

Signed-off-by: Xuanwo <github@xuanwo.io>

Signed-off-by: Xuanwo <github@xuanwo.io>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 82e173f..9856a1e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,41 @@
 The format is based on [Keep a Changelog](https://keepachangelog.com/)
 and this project adheres to [Semantic Versioning](https://semver.org/).
 
+## [v0.16.0] - 2022-09-12
+
+### Added
+
+- feat: Implement tests for read-only services (#634)
+- feat(services/ftp): Implemented multi connection (#637)
+- feat: Finalize FTP read operation  (#644)
+- feat: Implement service for IPFS HTTP Gateway (#645)
+- feat: Add ImmutableIndexLayer (#651)
+- feat: derive Hash for Scheme (#653)
+- feat(services/ftp): Setup integration tests (#648)
+
+### Changed
+
+- refactor: Migrate all behavior tests to capability based (#635)
+- refactor: Remove list support from http service  (#639)
+- refactor: Replace isahc with reqwest and ureq (#642)
+
+## Deps
+
+- deps: Bump reqsign to v0.4 (#643)
+- deps: Remove not used features (#658)
+- chore(deps): Update criterion requirement from 0.3 to 0.4 (#656)
+- chore(deps): Update quick-xml requirement from 0.24 to 0.25 (#657)
+
+### Docs
+
+- docs: Add docs for ipfs (#649)
+- docs: Fix typo (#650)
+- docs: Add docs for ftp services (#655)
+
+## RFCs
+
+- RFC-0623: Redis Service (#623)
+
 ## [v0.15.0] - 2022-09-05
 
 ### Added
@@ -649,6 +684,7 @@
 
 Hello, OpenDAL!
 
+[v0.16.0]: https://github.com/datafuselabs/opendal/compare/v0.15.0...v0.16.0
 [v0.15.0]: https://github.com/datafuselabs/opendal/compare/v0.14.1...v0.15.0
 [v0.14.1]: https://github.com/datafuselabs/opendal/compare/v0.14.0...v0.14.1
 [v0.14.0]: https://github.com/datafuselabs/opendal/compare/v0.13.1...v0.14.0
diff --git a/Cargo.toml b/Cargo.toml
index 0b9bcd5..90fd8cc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,7 +9,7 @@
 license = "Apache-2.0"
 name = "opendal"
 repository = "https://github.com/datafuselabs/opendal"
-version = "0.15.0"
+version = "0.16.0"
 
 [package.metadata.docs.rs]
 all-features = true
diff --git a/docs/upgrade.md b/docs/upgrade.md
index 519c1ae..d581ae2 100644
--- a/docs/upgrade.md
+++ b/docs/upgrade.md
@@ -2,6 +2,33 @@
 
 This document intends to record upgrade and migrate procedures while OpenDAL meets breaking changes.
 
+## Upgrade to v0.16
+
+OpenDAL v0.16 refactor the internal implementation of `http` service. Since v0.16, http service can be used directly without enabling `services-http` feature. Accompany by these changes, http service has the following breaking changes:
+
+- `services-http` feature has been deprecated. Enabling `services-http` is a no-op now.
+- http service is read only services and can't be used to `list` or `write`.
+
+OpenDAL introduces a new layer `ImmutableIndexLayer` that can add `list` capability for services:
+
+```rust
+use opendal::layers::ImmutableIndexLayer;
+use opendal::Operator;
+use opendal::Scheme;
+
+async fn main() {
+    let mut iil = ImmutableIndexLayer::default();
+
+    for i in ["file", "dir/", "dir/file", "dir_without_prefix/file"] {
+        iil.insert(i.to_string())
+    }
+
+    let op = Operator::from_env(Scheme::Http)?.layer(iil);
+}
+```
+
+For more information about this change, please refer to [RFC-0627: Split Capabilities](https://opendal.databend.rs/rfcs/0627-split-capabilities.html).
+
 ## Upgrade to v0.14
 
 OpenDAL v0.14 removed all deprecated APIs in previous versions, including:
diff --git a/oay/Cargo.lock b/oay/Cargo.lock
index d513a5a..47d4b91 100644
--- a/oay/Cargo.lock
+++ b/oay/Cargo.lock
@@ -1092,7 +1092,7 @@
 
 [[package]]
 name = "oay"
-version = "0.15.0"
+version = "0.16.0"
 dependencies = [
  "actix-web",
  "anyhow",
@@ -1114,7 +1114,7 @@
 
 [[package]]
 name = "opendal"
-version = "0.15.0"
+version = "0.16.0"
 dependencies = [
  "anyhow",
  "async-compat",
diff --git a/oay/Cargo.toml b/oay/Cargo.toml
index 074de1b..b66a683 100644
--- a/oay/Cargo.toml
+++ b/oay/Cargo.toml
@@ -8,7 +8,7 @@
 license = "Apache-2.0"
 name = "oay"
 repository = "https://github.com/datafuselabs/opendal"
-version = "0.15.0"
+version = "0.16.0"
 
 [dependencies]
 actix-web = "4.1"
@@ -17,7 +17,7 @@
 env_logger = "0.9"
 futures = "0.3"
 log = "0.4"
-opendal = "0.15.0"
+opendal = "0.16.0"
 percent-encoding = "2.1"
 sluice = "0.5.5"
 tokio = { version = "1.20", features = ["rt-multi-thread", "macros"] }
diff --git a/oli/Cargo.lock b/oli/Cargo.lock
index 5c19cb8..418f62e 100644
--- a/oli/Cargo.lock
+++ b/oli/Cargo.lock
@@ -753,7 +753,7 @@
 
 [[package]]
 name = "oli"
-version = "0.15.0"
+version = "0.16.0"
 dependencies = [
  "anyhow",
  "clap",
@@ -770,7 +770,7 @@
 
 [[package]]
 name = "opendal"
-version = "0.15.0"
+version = "0.16.0"
 dependencies = [
  "anyhow",
  "async-compat",
diff --git a/oli/Cargo.toml b/oli/Cargo.toml
index 0b8ffeb..5f23c2a 100644
--- a/oli/Cargo.toml
+++ b/oli/Cargo.toml
@@ -8,14 +8,14 @@
 license = "Apache-2.0"
 name = "oli"
 repository = "https://github.com/datafuselabs/opendal"
-version = "0.15.0"
+version = "0.16.0"
 
 [dependencies]
 anyhow = "1.0"
 clap = { version = "3.2", features = ["cargo"] }
 env_logger = "0.9"
 log = "0.4"
-opendal = "0.15.0"
+opendal = "0.16.0"
 
 # Please comment the following patch while releasing.
 [patch.crates-io]