mirror of https://github.com/rwf2/Rocket.git
New version: 0.4.0-rc.2.
This commit is contained in:
parent
b405b181a3
commit
90a6749313
80
CHANGELOG.md
80
CHANGELOG.md
|
@ -1,3 +1,83 @@
|
||||||
|
# Version 0.4.0-rc.2 (Nov 30, 2018)
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
This release includes the following new features:
|
||||||
|
|
||||||
|
* Introduced the [`SpaceHelmet`] security and privacy headers fairing.
|
||||||
|
* Private cookies are gated behind a `private-cookies` feature.
|
||||||
|
* Applications can launch without a working directory.
|
||||||
|
* `Option` and `Result` types can be used in `uri!` expressions.
|
||||||
|
* Added [`State::from()`] for constructing `State` values.
|
||||||
|
|
||||||
|
[`SpaceHelmet`]: https://api.rocket.rs/v0.4/rocket_contrib/helmet/index.html
|
||||||
|
[`State::from()`]: https://api.rocket.rs/v0.4/rocket/struct.State.html#method.from
|
||||||
|
|
||||||
|
## Breaking Changes
|
||||||
|
|
||||||
|
This release includes several breaking changes. These changes are listed below
|
||||||
|
along with a short note about how to handle the breaking change in existing
|
||||||
|
applications when applicable.
|
||||||
|
|
||||||
|
* **Minimum required nightly is `2018-11-23`.**
|
||||||
|
|
||||||
|
Update to `nightly-2018-11-23` or later before updating to `rc.2`.
|
||||||
|
|
||||||
|
* **[`UriDisplay`] is parameterized by a [`UriPart`].**
|
||||||
|
|
||||||
|
When implementing `UriDisplay`, decide whether the value is to be displayed
|
||||||
|
in the path part, query part, or both of a URI. Implement `UriDisplay<Path>`
|
||||||
|
and/or `UriDisplay<Query>` appropriately.
|
||||||
|
|
||||||
|
* **[`UriDisplay`] derive was removed in favor of [`UriDisplayQuery`] and
|
||||||
|
[`UriDisplayPath`].**
|
||||||
|
|
||||||
|
To mimic the previous behavior, derive `UriDisplayQuery`.
|
||||||
|
|
||||||
|
* **[`Config::root()`] returns an `Option<&Path>` instead of an `&Path`.**
|
||||||
|
|
||||||
|
For the previous behavior, use `config.root().unwrap()`.
|
||||||
|
|
||||||
|
* **[`Config`] constructors return a `Config` instead of a `Result<Config>`.**
|
||||||
|
|
||||||
|
* **`ConfigError::BadCWD`, `Config.config_path` were removed.**
|
||||||
|
|
||||||
|
[`UriDisplay`]: https://api.rocket.rs/v0.4/rocket/http/uri/trait.UriDisplay.html
|
||||||
|
[`UriPart`]: https://api.rocket.rs/v0.4/rocket/http/uri/trait.UriPart.html
|
||||||
|
[`UriDisplayPath`]: https://api.rocket.rs/v0.4/rocket_codegen/derive.UriDisplayPath.html
|
||||||
|
[`UriDisplayQuery`]: https://api.rocket.rs/v0.4/rocket_codegen/derive.UriDisplayQuery.html
|
||||||
|
[`Config`]: https://api.rocket.rs/v0.4/rocket/struct.Config.html
|
||||||
|
[`Config::root()`]: https://api.rocket.rs/v0.4/rocket/struct.Config.html#method.root
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
Several issues in the first release candidate were addressed in this release:
|
||||||
|
|
||||||
|
* Characters in URIs are properly percent-encoded ([#808]).
|
||||||
|
* Generated variables are properly spanned and prefixed ([#817], [#839]).
|
||||||
|
* [`Client`] regained `Sync` ([#814]).
|
||||||
|
|
||||||
|
[#808]: https://github.com/SergioBenitez/Rocket/issues/808
|
||||||
|
[#817]: https://github.com/SergioBenitez/Rocket/issues/817
|
||||||
|
[#839]: https://github.com/SergioBenitez/Rocket/issues/839
|
||||||
|
[#814]: https://github.com/SergioBenitez/Rocket/issues/814
|
||||||
|
|
||||||
|
## General Improvements
|
||||||
|
|
||||||
|
In addition to new features, Rocket saw the following improvements:
|
||||||
|
|
||||||
|
* Console coloring uses default terminal colors instead of white.
|
||||||
|
* Console coloring is consistent across all messages.
|
||||||
|
* `i128` and `u128` now implement [`FromParam`], [`FromFormValue`].
|
||||||
|
* [`Form`] and [`LenientForm`] can be publicly constructed.
|
||||||
|
* Added ZIP (`application/zip`) as a known media type.
|
||||||
|
* The `base64` dependency was updated to `0.10`.
|
||||||
|
* Private, hidden `http` types are no longer visible in the rustdocs.
|
||||||
|
|
||||||
|
[`FromParam`]: https://api.rocket.rs/v0.4/rocket/request/trait.FromParam.html
|
||||||
|
[`FromFormValue`]: https://api.rocket.rs/v0.4/rocket/request/trait.FromFormValue.html
|
||||||
|
[`Data`]: https://api.rocket.rs/v0.4/rocket/struct.Data.html
|
||||||
|
|
||||||
# Version 0.4.0-rc.1 (Oct 31, 2018)
|
# Version 0.4.0-rc.1 (Oct 31, 2018)
|
||||||
|
|
||||||
## New Features
|
## New Features
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rocket_contrib_codegen"
|
name = "rocket_contrib_codegen"
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
||||||
description = "Procedural macros for the Rocket contrib libraries."
|
description = "Procedural macros for the Rocket contrib libraries."
|
||||||
documentation = "https://api.rocket.rs/v0.4/rocket_contrib/"
|
documentation = "https://api.rocket.rs/v0.4/rocket_contrib/"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rocket_contrib"
|
name = "rocket_contrib"
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
||||||
description = "Community contributed libraries for the Rocket web framework."
|
description = "Community contributed libraries for the Rocket web framework."
|
||||||
documentation = "https://api.rocket.rs/v0.4/rocket_contrib/"
|
documentation = "https://api.rocket.rs/v0.4/rocket_contrib/"
|
||||||
|
@ -36,8 +36,8 @@ redis_pool = ["databases", "redis", "r2d2_redis"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Global dependencies.
|
# Global dependencies.
|
||||||
rocket_contrib_codegen = { version = "0.4.0-rc.1", path = "../codegen", optional = true }
|
rocket_contrib_codegen = { version = "0.4.0-rc.2", path = "../codegen", optional = true }
|
||||||
rocket = { version = "0.4.0-rc.1", path = "../../core/lib/" }
|
rocket = { version = "0.4.0-rc.2", path = "../../core/lib/" }
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
|
||||||
# Serialization and templating dependencies.
|
# Serialization and templating dependencies.
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies.rocket_contrib]
|
//! [dependencies.rocket_contrib]
|
||||||
//! version = "0.4.0-rc.1"
|
//! version = "0.4.0-rc.2"
|
||||||
//! default-features = false
|
//! default-features = false
|
||||||
//! features = ["diesel_sqlite_pool"]
|
//! features = ["diesel_sqlite_pool"]
|
||||||
//! ```
|
//! ```
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies.rocket_contrib]
|
//! [dependencies.rocket_contrib]
|
||||||
//! version = "0.4.0-rc.1"
|
//! version = "0.4.0-rc.2"
|
||||||
//! default-features = false
|
//! default-features = false
|
||||||
//! features = ["json"]
|
//! features = ["json"]
|
||||||
//! ```
|
//! ```
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies.rocket_contrib]
|
//! [dependencies.rocket_contrib]
|
||||||
//! version = 0.4.0-rc.1
|
//! version = 0.4.0-rc.2
|
||||||
//! default-features = false
|
//! default-features = false
|
||||||
//! features = ["handlebars_templates", "tera_templates"]
|
//! features = ["handlebars_templates", "tera_templates"]
|
||||||
//! ```
|
//! ```
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rocket_codegen"
|
name = "rocket_codegen"
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
||||||
description = "Procedural macros for the Rocket web framework."
|
description = "Procedural macros for the Rocket web framework."
|
||||||
documentation = "https://api.rocket.rs/v0.4/rocket_codegen/"
|
documentation = "https://api.rocket.rs/v0.4/rocket_codegen/"
|
||||||
|
@ -17,7 +17,7 @@ proc-macro = true
|
||||||
[dependencies]
|
[dependencies]
|
||||||
indexmap = "1.0"
|
indexmap = "1.0"
|
||||||
quote = "0.6.1"
|
quote = "0.6.1"
|
||||||
rocket_http = { version = "0.4.0-rc.1", path = "../http/" }
|
rocket_http = { version = "0.4.0-rc.2", path = "../http/" }
|
||||||
devise = "0.2"
|
devise = "0.2"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
|
@ -25,5 +25,5 @@ yansi = "0.5"
|
||||||
version_check = "0.1.3"
|
version_check = "0.1.3"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rocket = { version = "0.4.0-rc.1", path = "../lib" }
|
rocket = { version = "0.4.0-rc.2", path = "../lib" }
|
||||||
compiletest_rs = { version = "0.3", features = ["stable"] }
|
compiletest_rs = { version = "0.3", features = ["stable"] }
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies]
|
//! [dependencies]
|
||||||
//! rocket = "0.4.0-rc.1"
|
//! rocket = "0.4.0-rc.2"
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! And to import all macros, attributes, and derives via `#[macro_use]` in the
|
//! And to import all macros, attributes, and derives via `#[macro_use]` in the
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rocket_http"
|
name = "rocket_http"
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
||||||
description = """
|
description = """
|
||||||
Types, traits, and parsers for HTTP requests, responses, and headers.
|
Types, traits, and parsers for HTTP requests, responses, and headers.
|
||||||
|
@ -36,4 +36,4 @@ features = ["server"]
|
||||||
optional = true
|
optional = true
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rocket = { version = "0.4.0-rc.1", path = "../lib" }
|
rocket = { version = "0.4.0-rc.2", path = "../lib" }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rocket"
|
name = "rocket"
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
authors = ["Sergio Benitez <sb@sergio.bz>"]
|
||||||
description = """
|
description = """
|
||||||
Web framework for nightly with a focus on ease-of-use, expressibility, and speed.
|
Web framework for nightly with a focus on ease-of-use, expressibility, and speed.
|
||||||
|
@ -23,8 +23,8 @@ tls = ["rocket_http/tls"]
|
||||||
private-cookies = ["rocket_http/private-cookies"]
|
private-cookies = ["rocket_http/private-cookies"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket_codegen = { version = "0.4.0-rc.1", path = "../codegen" }
|
rocket_codegen = { version = "0.4.0-rc.2", path = "../codegen" }
|
||||||
rocket_http = { version = "0.4.0-rc.1", path = "../http" }
|
rocket_http = { version = "0.4.0-rc.2", path = "../http" }
|
||||||
yansi = "0.5"
|
yansi = "0.5"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
toml = "0.4.7"
|
toml = "0.4.7"
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies]
|
//! [dependencies]
|
||||||
//! rocket = "0.4.0-rc.1"
|
//! rocket = "0.4.0-rc.2"
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! Then, add the following to the top of your `main.rs` file:
|
//! Then, add the following to the top of your `main.rs` file:
|
||||||
|
|
|
@ -24,7 +24,7 @@ function relative() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Full and major version of Rocket
|
# Full and major version of Rocket
|
||||||
ROCKET_VERSION="0.4.0-rc.1"
|
ROCKET_VERSION="0.4.0-rc.2"
|
||||||
ROCKET_MAJOR_VERSION="0.4"
|
ROCKET_MAJOR_VERSION="0.4"
|
||||||
CURRENT_RELEASE=true
|
CURRENT_RELEASE=true
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ For instance, the following set of commands runs the `hello_world` example:
|
||||||
```sh
|
```sh
|
||||||
git clone https://github.com/SergioBenitez/Rocket
|
git clone https://github.com/SergioBenitez/Rocket
|
||||||
cd Rocket
|
cd Rocket
|
||||||
git checkout v0.4.0-rc.1
|
git checkout v0.4.0-rc.2
|
||||||
cd examples/hello_world
|
cd examples/hello_world
|
||||||
cargo run
|
cargo run
|
||||||
```
|
```
|
||||||
|
|
|
@ -43,8 +43,8 @@ Then add the usual Rocket dependencies to the `Cargo.toml` file:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket = "0.4.0-rc.1"
|
rocket = "0.4.0-rc.2"
|
||||||
rocket_codegen = "0.4.0-rc.1"
|
rocket_codegen = "0.4.0-rc.2"
|
||||||
```
|
```
|
||||||
|
|
||||||
And finally, create a skeleton Rocket application to work off of in
|
And finally, create a skeleton Rocket application to work off of in
|
||||||
|
|
|
@ -50,7 +50,7 @@ Now, add Rocket as a dependency in your `Cargo.toml`:
|
||||||
|
|
||||||
```
|
```
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket = "0.4.0-rc.1"
|
rocket = "0.4.0-rc.2"
|
||||||
```
|
```
|
||||||
|
|
||||||
Modify `src/main.rs` so that it contains the code for the Rocket `Hello, world!`
|
Modify `src/main.rs` so that it contains the code for the Rocket `Hello, world!`
|
||||||
|
|
|
@ -510,7 +510,7 @@ so that you depend on `rocket` as follows:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket = { version = "0.4.0-rc.1", default-features = false }
|
rocket = { version = "0.4.0-rc.2", default-features = false }
|
||||||
```
|
```
|
||||||
|
|
||||||
[`ring`]: https://github.com/briansmith/ring
|
[`ring`]: https://github.com/briansmith/ring
|
||||||
|
|
|
@ -215,7 +215,7 @@ databases, you'd write in `Cargo.toml`:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies.rocket_contrib]
|
[dependencies.rocket_contrib]
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["diesel_sqlite_pool"]
|
features = ["diesel_sqlite_pool"]
|
||||||
```
|
```
|
||||||
|
|
|
@ -279,7 +279,7 @@ dependency in your `Cargo.toml` file:
|
||||||
|
|
||||||
```
|
```
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket = { version = "0.4.0-rc.1", features = ["tls"] }
|
rocket = { version = "0.4.0-rc.2", features = ["tls"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
TLS is configured through the `tls` configuration parameter. The value of `tls`
|
TLS is configured through the `tls` configuration parameter. The value of `tls`
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
[release]
|
[release]
|
||||||
version = "0.4.0-rc.1"
|
version = "0.4.0-rc.2"
|
||||||
date = "Oct 31, 2018"
|
date = "Nov 30, 2018"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Top features: displayed in the header under the introductory text.
|
# Top features: displayed in the header under the introductory text.
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Rocket's 2nd v0.4 Release Candidate
|
||||||
|
|
||||||
|
<p class="metadata"><strong>
|
||||||
|
Posted by <a href="https://sergio.bz">Sergio Benitez</a> on November 30, 2018
|
||||||
|
</strong></p>
|
||||||
|
|
||||||
|
After a successful and productive initial v0.4 release candidate, I am happy to
|
||||||
|
announce that the second release candidate for Rocket v0.4 is now available.
|
||||||
|
|
||||||
|
This release candidate fixes issues identified during the first release
|
||||||
|
candidate, introduces further features, and leverages upstream `rustc`
|
||||||
|
contributions for improved diagnostics and stability. As before, this is an
|
||||||
|
opportunity to discover issues with Rocket v0.4 and its documentation before its
|
||||||
|
general release. We encourage all users to migrate their applications to the
|
||||||
|
second release candidate and report any issues to the [GitHub issue tracker].
|
||||||
|
To update to `v0.4.0-rc.2`, manually update `rocket` in your `Cargo.toml` file:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[dependencies]
|
||||||
|
rocket = "0.4.0-rc.2"
|
||||||
|
```
|
||||||
|
|
||||||
|
Barring any major issues, of which none are expected, the general release of
|
||||||
|
Rocket v0.4 is planned for Wednesday, December 5th, when we'll post a full news
|
||||||
|
article covering the biggest features and changes in Rocket v0.4. Until then,
|
||||||
|
the [CHANGELOG] contains every feature addition, change, and improvement since
|
||||||
|
v0.4.0-rc.1 and v0.3, as well as information on migrating your applications to
|
||||||
|
v0.4. All documentation, including the [guide] and [API docs], has been updated
|
||||||
|
in full for the second release candidate.
|
||||||
|
|
||||||
|
We're excited for your feedback, and we look forward to seeing you again on
|
||||||
|
Wednesday, December 5th for the general release!
|
||||||
|
|
||||||
|
[GitHub issue tracker]: https://github.com/SergioBenitez/Rocket/issues
|
||||||
|
[API docs]: https://api.rocket.rs/v0.4/rocket/
|
||||||
|
[guide]: ../../guide
|
||||||
|
[CHANGELOG]: https://github.com/SergioBenitez/Rocket/tree/v0.4/CHANGELOG.md#version-040-rc2-nov-30-2018
|
||||||
|
|
||||||
|
## About Rocket
|
||||||
|
|
||||||
|
Rocket is a web framework for Rust with a focus on ease of use, expressibility,
|
||||||
|
and speed. Rocket makes it simple to write fast web applications without
|
||||||
|
sacrificing flexibility or type safety. All with minimal code.
|
||||||
|
|
||||||
|
Not already using Rocket? Join the tens of thousands of users and hundreds of
|
||||||
|
companies happily using Rocket today! Rocket's extensive documentation makes it
|
||||||
|
easy. Get started now by [reading through the guide](../../guide) or learning
|
||||||
|
more from [the overview](../../overview).
|
|
@ -1,3 +1,23 @@
|
||||||
|
[[articles]]
|
||||||
|
title = "Rocket's 2nd v0.4 Release Candidate"
|
||||||
|
slug = "2018-11-30-version-0.4-rc-2"
|
||||||
|
author = "Sergio Benitez"
|
||||||
|
author_url = "https://sergio.bz"
|
||||||
|
date = "November 30, 2018"
|
||||||
|
snippet = """
|
||||||
|
After a successful and productive initial v0.4 release candidate, I am happy to
|
||||||
|
announce that the second release candidate for Rocket v0.4 is now available.
|
||||||
|
|
||||||
|
This release candidate fixes issues identified during the first release
|
||||||
|
candidate, introduces further features, and leverages upstream `rustc`
|
||||||
|
contributions for improved diagnostics and stability. As before, this is an
|
||||||
|
opportunity to discover issues with Rocket v0.4 and its documentation before its
|
||||||
|
general release. We encourage all users to migrate their applications to the
|
||||||
|
second release candidate and report any issues to the [GitHub issue tracker].
|
||||||
|
|
||||||
|
[GitHub issue tracker]: https://github.com/SergioBenitez/Rocket/issues
|
||||||
|
"""
|
||||||
|
|
||||||
[[articles]]
|
[[articles]]
|
||||||
title = "Rocket v0.4 Release Candidate"
|
title = "Rocket v0.4 Release Candidate"
|
||||||
slug = "2018-10-31-version-0.4-rc"
|
slug = "2018-10-31-version-0.4-rc"
|
||||||
|
|
Loading…
Reference in New Issue