mirror of https://github.com/rwf2/Rocket.git
Enable compilation with stable Rust.
To the Rust teams, Rust's contributors, Rocket's contributors, the entire Rust and Rocket communities, my colleagues at Stanford and beyond, and Jeb: thank you all. Sincerely. To the next ~4 years of Rocket! Closes #19.
This commit is contained in:
parent
b47d1b8f0f
commit
56a6172625
|
@ -1,4 +1,4 @@
|
||||||
name: Test
|
name: CI
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
@ -7,28 +7,39 @@ env:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
name: "${{ matrix.os.name }} ${{ matrix.test.name }}"
|
name: "${{ matrix.os.name }} ${{ matrix.test.name }} (${{ matrix.toolchain }})"
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- name: Linux
|
- { name: Linux, distro: ubuntu-latest }
|
||||||
distro: ubuntu-latest
|
- { name: Windows, distro: windows-latest }
|
||||||
- name: Windows
|
- { name: macOS, distro: macOS-latest }
|
||||||
distro: windows-latest
|
|
||||||
- name: macOS
|
|
||||||
distro: macOS-latest
|
|
||||||
toolchain:
|
|
||||||
- nightly
|
|
||||||
test:
|
test:
|
||||||
- name: Debug
|
- { name: Debug, flag: }
|
||||||
flag:
|
- { name: Contrib, flag: "--contrib" }
|
||||||
- name: Release
|
toolchain: [stable]
|
||||||
flag: "--release"
|
allow-failures: [false]
|
||||||
- name: Core
|
include:
|
||||||
flag: "--core"
|
- toolchain: stable
|
||||||
- name: Contrib
|
os: { name: Linux, distro: ubuntu-latest }
|
||||||
flag: "--contrib"
|
test: { name: Core, flag: "--core" }
|
||||||
|
allow-failures: false
|
||||||
|
- toolchain: stable
|
||||||
|
os: { name: Linux, distro: ubuntu-latest }
|
||||||
|
test: { name: Release, flag: "--release" }
|
||||||
|
allow-failures: false
|
||||||
|
- toolchain: nightly
|
||||||
|
os: { name: Linux, distro: ubuntu-latest }
|
||||||
|
test: { name: Debug, flag: }
|
||||||
|
allow-failures: true
|
||||||
|
- toolchain: nightly
|
||||||
|
os: { name: Linux, distro: ubuntu-latest }
|
||||||
|
test: { name: Contrib, flag: "--contrib" }
|
||||||
|
allow-failures: true
|
||||||
|
|
||||||
|
continue-on-error: ${{ matrix.allow-failures }}
|
||||||
|
|
||||||
runs-on: ${{ matrix.os.distro }}
|
runs-on: ${{ matrix.os.distro }}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Rocket
|
# Rocket
|
||||||
|
|
||||||
[![Build Status](https://github.com/SergioBenitez/Rocket/workflows/Test/badge.svg)](https://github.com/SergioBenitez/Rocket/actions)
|
[![Build Status](https://github.com/SergioBenitez/Rocket/workflows/CI/badge.svg)](https://github.com/SergioBenitez/Rocket/actions)
|
||||||
[![Rocket Homepage](https://img.shields.io/badge/web-rocket.rs-red.svg?style=flat&label=https&colorB=d33847)](https://rocket.rs)
|
[![Rocket Homepage](https://img.shields.io/badge/web-rocket.rs-red.svg?style=flat&label=https&colorB=d33847)](https://rocket.rs)
|
||||||
[![Current Crates.io Version](https://img.shields.io/crates/v/rocket.svg)](https://crates.io/crates/rocket)
|
[![Current Crates.io Version](https://img.shields.io/crates/v/rocket.svg)](https://crates.io/crates/rocket)
|
||||||
[![Matrix: #rocket:mozilla.org](https://img.shields.io/badge/style-%23rocket:mozilla.org-blue.svg?style=flat&label=[m])](https://chat.mozilla.org/#/room/#rocket:mozilla.org)
|
[![Matrix: #rocket:mozilla.org](https://img.shields.io/badge/style-%23rocket:mozilla.org-blue.svg?style=flat&label=[m])](https://chat.mozilla.org/#/room/#rocket:mozilla.org)
|
||||||
|
|
|
@ -9,7 +9,6 @@ repository = "https://github.com/SergioBenitez/Rocket"
|
||||||
readme = "../../README.md"
|
readme = "../../README.md"
|
||||||
keywords = ["rocket", "contrib", "code", "generation", "proc-macro"]
|
keywords = ["rocket", "contrib", "code", "generation", "proc-macro"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
build = "build.rs"
|
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -22,10 +21,6 @@ proc-macro = true
|
||||||
quote = "1.0"
|
quote = "1.0"
|
||||||
devise = { git = "https://github.com/SergioBenitez/Devise.git", rev = "1e42a2691" }
|
devise = { git = "https://github.com/SergioBenitez/Devise.git", rev = "1e42a2691" }
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
yansi = "0.5"
|
|
||||||
version_check = "0.9.1"
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rocket = { version = "0.5.0-dev", path = "../../core/lib" }
|
rocket = { version = "0.5.0-dev", path = "../../core/lib" }
|
||||||
rocket_contrib = { version = "0.5.0-dev", path = "../lib", features = ["diesel_sqlite_pool"] }
|
rocket_contrib = { version = "0.5.0-dev", path = "../lib", features = ["diesel_sqlite_pool"] }
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
//! Ensures Rocket isn't compiled with an incompatible version of Rust.
|
|
||||||
|
|
||||||
extern crate yansi;
|
|
||||||
extern crate version_check;
|
|
||||||
|
|
||||||
use yansi::{Paint, Color::{Red, Yellow, Blue}};
|
|
||||||
|
|
||||||
// Specifies the minimum nightly version needed to compile Rocket.
|
|
||||||
const MIN_DATE: &'static str = "2020-05-20";
|
|
||||||
const MIN_VERSION: &'static str = "1.45.0-nightly";
|
|
||||||
|
|
||||||
macro_rules! err {
|
|
||||||
($version:expr, $date:expr, $msg:expr) => (
|
|
||||||
eprintln!("{} {}", Red.paint("Error:").bold(), Paint::new($msg).bold());
|
|
||||||
eprintln!("Installed version: {}", Yellow.paint(format!("{} ({})", $version, $date)));
|
|
||||||
eprintln!("Minimum required: {}", Yellow.paint(format!("{} ({})", MIN_VERSION, MIN_DATE)));
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
if let Some((version, channel, date)) = version_check::triple() {
|
|
||||||
if !channel.supports_features() {
|
|
||||||
err!(version, date, "Rocket requires a 'dev' or 'nightly' version of rustc.");
|
|
||||||
|
|
||||||
eprint!("{}", Blue.paint("See the getting started guide ("));
|
|
||||||
eprint!("https://rocket.rs/v0.5/guide/getting-started/");
|
|
||||||
eprintln!("{}", Blue.paint(") for more information."));
|
|
||||||
|
|
||||||
panic!("Aborting compilation due to incompatible compiler.")
|
|
||||||
}
|
|
||||||
|
|
||||||
if !version.at_least(MIN_VERSION) || !date.at_least(MIN_DATE) {
|
|
||||||
err!(version, date, "Rocket requires a more recent version of rustc.");
|
|
||||||
panic!("Aborting compilation due to incompatible compiler.")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
println!("cargo:warning={}", "Rocket was unable to check rustc compiler compatibility.");
|
|
||||||
println!("cargo:warning={}", "Build may fail due to incompatible rustc version.");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -9,7 +9,6 @@ repository = "https://github.com/SergioBenitez/Rocket"
|
||||||
readme = "../../README.md"
|
readme = "../../README.md"
|
||||||
keywords = ["rocket", "web", "framework", "code", "generation"]
|
keywords = ["rocket", "web", "framework", "code", "generation"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
build = "build.rs"
|
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@ -22,10 +21,6 @@ rocket_http = { version = "0.5.0-dev", path = "../http/" }
|
||||||
devise = { git = "https://github.com/SergioBenitez/Devise.git", rev = "1e42a2691" }
|
devise = { git = "https://github.com/SergioBenitez/Devise.git", rev = "1e42a2691" }
|
||||||
glob = "0.3"
|
glob = "0.3"
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
yansi = "0.5"
|
|
||||||
version_check = "0.9.1"
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rocket = { version = "0.5.0-dev", path = "../lib" }
|
rocket = { version = "0.5.0-dev", path = "../lib" }
|
||||||
version_check = "0.9"
|
version_check = "0.9"
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
//! Ensures Rocket isn't compiled with an incompatible version of Rust.
|
|
||||||
|
|
||||||
use yansi::{Paint, Color::{Red, Yellow, Blue}};
|
|
||||||
|
|
||||||
// Specifies the minimum nightly version needed to compile Rocket.
|
|
||||||
const MIN_DATE: &'static str = "2020-05-20";
|
|
||||||
const MIN_VERSION: &'static str = "1.45.0-nightly";
|
|
||||||
|
|
||||||
macro_rules! err {
|
|
||||||
($version:expr, $date:expr, $msg:expr) => (
|
|
||||||
eprintln!("{} {}", Red.paint("Error:").bold(), Paint::new($msg).bold());
|
|
||||||
eprintln!("Installed version: {}", Yellow.paint(format!("{} ({})", $version, $date)));
|
|
||||||
eprintln!("Minimum required: {}", Yellow.paint(format!("{} ({})", MIN_VERSION, MIN_DATE)));
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
if let Some((version, channel, date)) = version_check::triple() {
|
|
||||||
if !channel.supports_features() {
|
|
||||||
err!(version, date, "Rocket (codegen) requires a 'dev' or 'nightly' version of rustc.");
|
|
||||||
|
|
||||||
eprint!("{}", Blue.paint("See the getting started guide ("));
|
|
||||||
eprint!("https://rocket.rs/v0.5/guide/getting-started/");
|
|
||||||
eprintln!("{}", Blue.paint(") for more information."));
|
|
||||||
|
|
||||||
panic!("Aborting compilation due to incompatible compiler.")
|
|
||||||
}
|
|
||||||
|
|
||||||
if !version.at_least(MIN_VERSION) || !date.at_least(MIN_DATE) {
|
|
||||||
err!(version, date, "Rocket (codegen) requires a more recent version of rustc.");
|
|
||||||
panic!("Aborting compilation due to incompatible compiler.")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
println!("cargo:warning={}", "Rocket was unable to check rustc compiler compatibility.");
|
|
||||||
println!("cargo:warning={}", "Build may fail due to incompatible rustc version.");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +1,21 @@
|
||||||
//! Ensures Rocket isn't compiled with an incompatible version of Rust.
|
//! Ensures Rocket isn't compiled with an incompatible version of Rust.
|
||||||
|
|
||||||
use yansi::{Paint, Color::{Red, Yellow, Blue}};
|
use yansi::{Paint, Color::{Red, Yellow}};
|
||||||
|
|
||||||
// Specifies the minimum nightly version needed to compile Rocket.
|
const MIN_VERSION: &'static str = "1.45.0";
|
||||||
|
|
||||||
const MIN_DATE: &'static str = "2020-05-20";
|
|
||||||
const MIN_VERSION: &'static str = "1.45.0-nightly";
|
|
||||||
|
|
||||||
macro_rules! err {
|
macro_rules! err {
|
||||||
($version:expr, $date:expr, $msg:expr) => (
|
($version:expr, $msg:expr) => (
|
||||||
eprintln!("{} {}", Red.paint("Error:").bold(), Paint::new($msg).bold());
|
eprintln!("{} {}", Red.paint("Error:").bold(), Paint::new($msg).bold());
|
||||||
eprintln!("Installed version: {}", Yellow.paint(format!("{} ({})", $version, $date)));
|
eprintln!("Installed version: {}", Yellow.paint(format!("{}", $version)));
|
||||||
eprintln!("Minimum required: {}", Yellow.paint(format!("{} ({})", MIN_VERSION, MIN_DATE)));
|
eprintln!("Minimum required: {}", Yellow.paint(format!("{}", MIN_VERSION)));
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
if let Some((version, channel, date)) = version_check::triple() {
|
if let Some(version) = version_check::Version::read() {
|
||||||
if !channel.supports_features() {
|
if !version.at_least(MIN_VERSION) {
|
||||||
err!(version, date, "Rocket (core) requires a 'dev' or 'nightly' version of rustc.");
|
err!(version, "Rocket requires a more recent version of rustc.");
|
||||||
|
|
||||||
eprint!("{}", Blue.paint("See the getting started guide ("));
|
|
||||||
eprint!("https://rocket.rs/v0.5/guide/getting-started/");
|
|
||||||
eprintln!("{}", Blue.paint(") for more information."));
|
|
||||||
|
|
||||||
panic!("Aborting compilation due to incompatible compiler.")
|
|
||||||
}
|
|
||||||
|
|
||||||
if !version.at_least(MIN_VERSION) || !date.at_least(MIN_DATE) {
|
|
||||||
err!(version, date, "Rocket (core) requires a more recent version of rustc.");
|
|
||||||
panic!("Aborting compilation due to incompatible compiler.")
|
panic!("Aborting compilation due to incompatible compiler.")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue