Bump MSRV (Minimum Supported Rust Version) to 1.54.0 (#703)

1.51.0 clippy has been giving me trouble (not reporting all problems),
and so I take the easy way out and just bump MSRV.

We will upgrade to 1.56.0 once it comes around anyway
to get access to that sweet disjoint capture in closures
(https://doc.rust-lang.org/nightly/edition-guide/rust-2021/disjoint-capture-in-closures.html)
This commit is contained in:
Emil Ernerfeldt 2021-09-09 00:16:06 +02:00 committed by GitHub
parent ae6418edf3
commit f37180f7dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 27 additions and 125 deletions

View file

@ -17,7 +17,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: sudo apt-get install libspeechd-dev - run: sudo apt-get install libspeechd-dev
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@ -32,7 +32,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: sudo apt-get install libspeechd-dev - run: sudo apt-get install libspeechd-dev
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@ -48,7 +48,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: rustup target add wasm32-unknown-unknown - run: rustup target add wasm32-unknown-unknown
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@ -64,7 +64,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: rustup target add wasm32-unknown-unknown - run: rustup target add wasm32-unknown-unknown
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@ -80,7 +80,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev - run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@ -96,7 +96,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: rustup component add rustfmt - run: rustup component add rustfmt
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@ -112,7 +112,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: rustup component add clippy - run: rustup component add clippy
- run: sudo apt-get install libspeechd-dev - run: sudo apt-get install libspeechd-dev
@ -129,7 +129,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: sudo apt-get install libspeechd-dev - run: sudo apt-get install libspeechd-dev
- run: cargo doc -p emath -p epaint -p egui -p eframe -p epi -p egui_web -p egui_glium --lib --no-deps --all-features - run: cargo doc -p emath -p epaint -p egui -p eframe -p epi -p egui_web -p egui_glium --lib --no-deps --all-features
@ -142,7 +142,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.51.0 toolchain: 1.54.0
override: true override: true
- run: sudo apt-get install libspeechd-dev - run: sudo apt-get install libspeechd-dev
- run: rustup target add wasm32-unknown-unknown - run: rustup target add wasm32-unknown-unknown

View file

@ -18,6 +18,7 @@ NOTE: [`eframe`](eframe/CHANGELOG.md), [`egui_web`](egui_web/CHANGELOG.md) and [
* All `Ui`:s must now have a finite `max_rect`. * All `Ui`:s must now have a finite `max_rect`.
* Deprecated: `max_rect_finite`, `available_size_before_wrap_finite` and `available_rect_before_wrap_finite`. * Deprecated: `max_rect_finite`, `available_size_before_wrap_finite` and `available_rect_before_wrap_finite`.
* `Painter`/`Fonts`: text layout now expect color when creating a `Galley`. You may override that color with `Painter::galley_with_color`. * `Painter`/`Fonts`: text layout now expect color when creating a `Galley`. You may override that color with `Painter::galley_with_color`.
* MSRV (Minimum Supported Rust Version) is now `1.54.0`.
### Fixed 🐛 ### Fixed 🐛
* Fix wrongly sized multiline `TextEdit` in justified layouts. * Fix wrongly sized multiline `TextEdit` in justified layouts.

View file

@ -13,15 +13,8 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn(clippy::all, missing_docs, rust_2018_idioms)] #![warn(clippy::all, missing_crate_level_docs, missing_docs, rust_2018_idioms)]
pub use {egui, epi}; pub use {egui, epi};

View file

@ -3,7 +3,7 @@
//! Try the live web demo: <https://emilk.github.io/egui/index.html>. Read more about egui at <https://github.com/emilk/egui>. //! Try the live web demo: <https://emilk.github.io/egui/index.html>. Read more about egui at <https://github.com/emilk/egui>.
//! //!
//! `egui` is in heavy development, with each new version having breaking changes. //! `egui` is in heavy development, with each new version having breaking changes.
//! You need to have rust 1.51.0 or later to use `egui`. //! You need to have rust 1.54.0 or later to use `egui`.
//! //!
//! To quickly get started with egui, you can take a look at [`egui_template`](https://github.com/emilk/egui_template) //! To quickly get started with egui, you can take a look at [`egui_template`](https://github.com/emilk/egui_template)
//! which uses [`eframe`](https://docs.rs/eframe). //! which uses [`eframe`](https://docs.rs/eframe).
@ -267,13 +267,6 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn( #![warn(
clippy::all, clippy::all,
@ -336,6 +329,7 @@
clippy::verbose_file_reads, clippy::verbose_file_reads,
clippy::zero_sized_map_values, clippy::zero_sized_map_values,
future_incompatible, future_incompatible,
missing_crate_level_docs,
nonstandard_style, nonstandard_style,
rust_2018_idioms rust_2018_idioms
)] )]

View file

@ -1,12 +1,5 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn(clippy::all, rust_2018_idioms)] #![warn(clippy::all, rust_2018_idioms)]

View file

@ -1,12 +1,5 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn(clippy::all, rust_2018_idioms)] #![warn(clippy::all, rust_2018_idioms)]

View file

@ -4,13 +4,6 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn( #![warn(
clippy::all, clippy::all,
@ -73,6 +66,7 @@
clippy::verbose_file_reads, clippy::verbose_file_reads,
clippy::zero_sized_map_values, clippy::zero_sized_map_values,
future_incompatible, future_incompatible,
missing_crate_level_docs,
nonstandard_style, nonstandard_style,
rust_2018_idioms rust_2018_idioms
)] )]

View file

@ -7,15 +7,8 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn(clippy::all, rust_2018_idioms)] #![warn(clippy::all, missing_crate_level_docs, rust_2018_idioms)]
#![allow(clippy::manual_range_contains, clippy::single_match)] #![allow(clippy::manual_range_contains, clippy::single_match)]
mod backend; mod backend;

View file

@ -11,15 +11,8 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn(clippy::all, rust_2018_idioms)] #![warn(clippy::all, missing_crate_level_docs, rust_2018_idioms)]
pub mod backend; pub mod backend;
mod painter; mod painter;

View file

@ -1,31 +0,0 @@
precision mediump float;
uniform vec2 u_screen_size;
attribute vec2 a_pos;
attribute vec2 a_tc;
attribute vec4 a_srgba;
varying vec4 v_rgba;
varying vec2 v_tc;
// 0-1 linear from 0-255 sRGB
vec3 linear_from_srgb(vec3 srgb) {
bvec3 cutoff = lessThan(srgb, vec3(10.31475));
vec3 lower = srgb / vec3(3294.6);
vec3 higher = pow((srgb + vec3(14.025)) / vec3(269.025), vec3(2.4));
return mix(higher, lower, vec3(cutoff));
}
// 0-1 linear from 0-255 sRGBA
vec4 linear_from_srgba(vec4 srgba) {
return vec4(linear_from_srgb(srgba.rgb), srgba.a / 255.0);
}
void main() {
gl_Position = vec4(
2.0 * a_pos.x / u_screen_size.x - 1.0,
1.0 - 2.0 * a_pos.y / u_screen_size.y,
0.0,
1.0);
// egui encodes vertex colors in gamma spaces, so we must decode the colors here:
v_rgba = linear_from_srgba(a_srgba);
v_tc = a_tc;
}

View file

@ -64,12 +64,12 @@ impl WebGlPainter {
let srgb_supported = matches!(gl.get_extension("EXT_sRGB"), Ok(Some(_))); let srgb_supported = matches!(gl.get_extension("EXT_sRGB"), Ok(Some(_)));
let (texture_format, program, post_process) = if srgb_supported {
let vert_shader = compile_shader( let vert_shader = compile_shader(
&gl, &gl,
Gl::VERTEX_SHADER, Gl::VERTEX_SHADER,
include_str!("shader/main_vertex_100es.glsl"), include_str!("shader/main_vertex_100es.glsl"),
)?; )?;
let (texture_format, program, post_process) = if srgb_supported {
let frag_shader = compile_shader( let frag_shader = compile_shader(
&gl, &gl,
Gl::FRAGMENT_SHADER, Gl::FRAGMENT_SHADER,
@ -82,11 +82,6 @@ impl WebGlPainter {
(ExtSRgb::SRGB_ALPHA_EXT, program, Some(post_process)) (ExtSRgb::SRGB_ALPHA_EXT, program, Some(post_process))
} else { } else {
let vert_shader = compile_shader(
&gl,
Gl::VERTEX_SHADER,
include_str!("shader/vertex_100es.glsl"),
)?;
let frag_shader = compile_shader( let frag_shader = compile_shader(
&gl, &gl,
Gl::FRAGMENT_SHADER, Gl::FRAGMENT_SHADER,

View file

@ -11,13 +11,6 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn( #![warn(
clippy::all, clippy::all,
@ -80,6 +73,7 @@
clippy::verbose_file_reads, clippy::verbose_file_reads,
clippy::zero_sized_map_values, clippy::zero_sized_map_values,
future_incompatible, future_incompatible,
missing_crate_level_docs,
nonstandard_style, nonstandard_style,
rust_2018_idioms rust_2018_idioms
)] )]

View file

@ -2,13 +2,6 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn( #![warn(
clippy::all, clippy::all,
@ -71,6 +64,7 @@
clippy::verbose_file_reads, clippy::verbose_file_reads,
clippy::zero_sized_map_values, clippy::zero_sized_map_values,
future_incompatible, future_incompatible,
missing_crate_level_docs,
nonstandard_style, nonstandard_style,
rust_2018_idioms rust_2018_idioms
)] )]

View file

@ -8,13 +8,6 @@
// Forbid warnings in release builds: // Forbid warnings in release builds:
#![cfg_attr(not(debug_assertions), deny(warnings))] #![cfg_attr(not(debug_assertions), deny(warnings))]
// Disabled so we can support rust 1.51:
// #![deny(
// rustdoc::broken_intra_doc_links,
// rustdoc::invalid_codeblock_attributes,
// rustdoc::missing_crate_level_docs,
// rustdoc::private_intra_doc_links
// )]
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
#![warn( #![warn(
clippy::all, clippy::all,
@ -77,11 +70,13 @@
clippy::verbose_file_reads, clippy::verbose_file_reads,
clippy::zero_sized_map_values, clippy::zero_sized_map_values,
future_incompatible, future_incompatible,
missing_crate_level_docs,
nonstandard_style, nonstandard_style,
rust_2018_idioms rust_2018_idioms
)] )]
#![allow(clippy::float_cmp)] #![allow(clippy::float_cmp)]
#![allow(clippy::manual_range_contains)] #![allow(clippy::manual_range_contains)]
#![warn(missing_docs)] // Let's keep `epi` well-documented.
pub use egui; // Re-export for user convenience pub use egui; // Re-export for user convenience
@ -312,6 +307,7 @@ pub trait TextureAllocator {
/// Abstraction for platform dependent texture reference /// Abstraction for platform dependent texture reference
pub trait NativeTexture { pub trait NativeTexture {
/// The native texture type.
type Texture; type Texture;
/// Bind native texture to egui texture /// Bind native texture to egui texture

View file

@ -5,6 +5,6 @@
# to the user in the error, instead of "error: invalid channel name '[toolchain]'". # to the user in the error, instead of "error: invalid channel name '[toolchain]'".
[toolchain] [toolchain]
channel = "1.51.0" channel = "1.54.0"
components = [ "rustfmt", "clippy" ] components = [ "rustfmt", "clippy" ]
targets = [ "wasm32-unknown-unknown" ] targets = [ "wasm32-unknown-unknown" ]