Skip to content

Commit

Permalink
New version: 0.4.0-rc.2.
Browse files Browse the repository at this point in the history
  • Loading branch information
SergioBenitez committed Dec 1, 2018
1 parent b405b18 commit 90a6749
Show file tree
Hide file tree
Showing 21 changed files with 175 additions and 27 deletions.
80 changes: 80 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)

## New Features
Expand Down
2 changes: 1 addition & 1 deletion contrib/codegen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rocket_contrib_codegen"
version = "0.4.0-rc.1"
version = "0.4.0-rc.2"
authors = ["Sergio Benitez <[email protected]>"]
description = "Procedural macros for the Rocket contrib libraries."
documentation = "https://api.rocket.rs/v0.4/rocket_contrib/"
Expand Down
6 changes: 3 additions & 3 deletions contrib/lib/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rocket_contrib"
version = "0.4.0-rc.1"
version = "0.4.0-rc.2"
authors = ["Sergio Benitez <[email protected]>"]
description = "Community contributed libraries for the Rocket web framework."
documentation = "https://api.rocket.rs/v0.4/rocket_contrib/"
Expand Down Expand Up @@ -36,8 +36,8 @@ redis_pool = ["databases", "redis", "r2d2_redis"]

[dependencies]
# Global dependencies.
rocket_contrib_codegen = { version = "0.4.0-rc.1", path = "../codegen", optional = true }
rocket = { version = "0.4.0-rc.1", path = "../../core/lib/" }
rocket_contrib_codegen = { version = "0.4.0-rc.2", path = "../codegen", optional = true }
rocket = { version = "0.4.0-rc.2", path = "../../core/lib/" }
log = "0.4"

# Serialization and templating dependencies.
Expand Down
2 changes: 1 addition & 1 deletion contrib/lib/src/databases.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
//!
//! ```toml
//! [dependencies.rocket_contrib]
//! version = "0.4.0-rc.1"
//! version = "0.4.0-rc.2"
//! default-features = false
//! features = ["diesel_sqlite_pool"]
//! ```
Expand Down
2 changes: 1 addition & 1 deletion contrib/lib/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
//!
//! ```toml
//! [dependencies.rocket_contrib]
//! version = "0.4.0-rc.1"
//! version = "0.4.0-rc.2"
//! default-features = false
//! features = ["json"]
//! ```
Expand Down
2 changes: 1 addition & 1 deletion contrib/lib/src/templates/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
//!
//! ```toml
//! [dependencies.rocket_contrib]
//! version = 0.4.0-rc.1
//! version = 0.4.0-rc.2
//! default-features = false
//! features = ["handlebars_templates", "tera_templates"]
//! ```
Expand Down
6 changes: 3 additions & 3 deletions core/codegen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rocket_codegen"
version = "0.4.0-rc.1"
version = "0.4.0-rc.2"
authors = ["Sergio Benitez <[email protected]>"]
description = "Procedural macros for the Rocket web framework."
documentation = "https://api.rocket.rs/v0.4/rocket_codegen/"
Expand All @@ -17,13 +17,13 @@ proc-macro = true
[dependencies]
indexmap = "1.0"
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"

[build-dependencies]
yansi = "0.5"
version_check = "0.1.3"

[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"] }
2 changes: 1 addition & 1 deletion core/codegen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
//!
//! ```toml
//! [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
Expand Down
4 changes: 2 additions & 2 deletions core/http/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rocket_http"
version = "0.4.0-rc.1"
version = "0.4.0-rc.2"
authors = ["Sergio Benitez <[email protected]>"]
description = """
Types, traits, and parsers for HTTP requests, responses, and headers.
Expand Down Expand Up @@ -36,4 +36,4 @@ features = ["server"]
optional = true

[dev-dependencies]
rocket = { version = "0.4.0-rc.1", path = "../lib" }
rocket = { version = "0.4.0-rc.2", path = "../lib" }
6 changes: 3 additions & 3 deletions core/lib/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rocket"
version = "0.4.0-rc.1"
version = "0.4.0-rc.2"
authors = ["Sergio Benitez <[email protected]>"]
description = """
Web framework for nightly with a focus on ease-of-use, expressibility, and speed.
Expand All @@ -23,8 +23,8 @@ tls = ["rocket_http/tls"]
private-cookies = ["rocket_http/private-cookies"]

[dependencies]
rocket_codegen = { version = "0.4.0-rc.1", path = "../codegen" }
rocket_http = { version = "0.4.0-rc.1", path = "../http" }
rocket_codegen = { version = "0.4.0-rc.2", path = "../codegen" }
rocket_http = { version = "0.4.0-rc.2", path = "../http" }
yansi = "0.5"
log = "0.4"
toml = "0.4.7"
Expand Down
2 changes: 1 addition & 1 deletion core/lib/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
//!
//! ```toml
//! [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:
Expand Down
2 changes: 1 addition & 1 deletion scripts/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ function relative() {
}

# 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"
CURRENT_RELEASE=true

Expand Down
2 changes: 1 addition & 1 deletion site/guide/1-quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ For instance, the following set of commands runs the `hello_world` example:
```sh
git clone https://github.com/SergioBenitez/Rocket
cd Rocket
git checkout v0.4.0-rc.1
git checkout v0.4.0-rc.2
cd examples/hello_world
cargo run
```
Expand Down
4 changes: 2 additions & 2 deletions site/guide/10-pastebin.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ Then add the usual Rocket dependencies to the `Cargo.toml` file:

```toml
[dependencies]
rocket = "0.4.0-rc.1"
rocket_codegen = "0.4.0-rc.1"
rocket = "0.4.0-rc.2"
rocket_codegen = "0.4.0-rc.2"
```

And finally, create a skeleton Rocket application to work off of in
Expand Down
2 changes: 1 addition & 1 deletion site/guide/2-getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Now, add Rocket as a dependency in your `Cargo.toml`:

```
[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!`
Expand Down
2 changes: 1 addition & 1 deletion site/guide/4-requests.md
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ so that you depend on `rocket` as follows:

```toml
[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
Expand Down
2 changes: 1 addition & 1 deletion site/guide/6-state.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ databases, you'd write in `Cargo.toml`:

```toml
[dependencies.rocket_contrib]
version = "0.4.0-rc.1"
version = "0.4.0-rc.2"
default-features = false
features = ["diesel_sqlite_pool"]
```
Expand Down
2 changes: 1 addition & 1 deletion site/guide/9-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ dependency in your `Cargo.toml` file:

```
[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`
Expand Down
4 changes: 2 additions & 2 deletions site/index.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
###############################################################################

[release]
version = "0.4.0-rc.1"
date = "Oct 31, 2018"
version = "0.4.0-rc.2"
date = "Nov 30, 2018"

###############################################################################
# Top features: displayed in the header under the introductory text.
Expand Down
48 changes: 48 additions & 0 deletions site/news/2018-11-30-version-0.4-rc-2.md
Original file line number Diff line number Diff line change
@@ -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).
20 changes: 20 additions & 0 deletions site/news/index.toml
Original file line number Diff line number Diff line change
@@ -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]]
title = "Rocket v0.4 Release Candidate"
slug = "2018-10-31-version-0.4-rc"
Expand Down

0 comments on commit 90a6749

Please sign in to comment.