-
Notifications
You must be signed in to change notification settings - Fork 630
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What to do in 0.24 #1433
Comments
I think it is a good time to start thinking about a My sense is that the biggest items for this release would/should be iterating the APIs for |
The |
I'd like to see more use of Option and Result return types where feasible to avoid panicking and make interfaces more ergonomic for users. There are several public facing APIs with recoverable states such as I know efforts were made for Another thing I've seen in a TODO in |
Feel free to use #1243 for it. And Ive edited your points into the initial comment. |
Regarding the MSRV policy, how will we handle it and which version should we choose. The situation changed a bit compared to our last choice:
|
Under Implementation is breaking, as a sub-point to
#1500 added functions that returned |
Should DynamicImage be made NonExhaustive? Apparently it's not at the moment (Mentioned in #1552), but it looks like the kind of enum we'd want to extend without it being a breaking change. |
Are there plans to do another 0.23.x release? I'm mostly interested because of #1538. |
+1 on another 0.23.x release. Looks like there's been a bunch of additions since the last release; in particular I'd love to see #1624 supported in a version on crates.io (jaredforth/webp#7 (comment) for context). |
1068: Upgrade sic to Rust edition 2021 r=foresterre a=foresterre With a new edition also comes a new MSRV, namely Rust 1.56, the first release which added support for edition 2021. In addition, the new MSRV is necessary for image 0.24: image-rs/image#1433 https://github.com/image-rs/image/blob/master/CHANGES.md Co-authored-by: Martijn Gribnau <[email protected]>
1068: Upgrade sic to Rust edition 2021 r=foresterre a=foresterre With a new edition also comes a new MSRV, namely Rust 1.56, the first release which added support for edition 2021. In addition, the new MSRV is necessary for image 0.24: image-rs/image#1433 https://github.com/image-rs/image/blob/master/CHANGES.md Co-authored-by: Martijn Gribnau <[email protected]>
We have collected some amount of cruft that could be fixed in a new major version. There is no single issue that is a pressing concern, some have workaround, but I'd want to arrive at somewhat of a consensus or plan nevertheless as in total it is awkward. In particular the Rust compiler has moved forward quite a bit. I'd make a
next
branch like last time, which I believe worked out quite well.The main issues that could be addressed:
Pure renames and restructing
imageproc
that are now more flexible (Tracking: imageops:: and DynImage::crop()/crop_imm() breakage #1201)math
(Removemath::{nq, utils}
#1434)Design issues
DynamicImage
, or a rework that would allow addressing this in a future minor changeextern crate alloc;
async
(Async image decoding #1397) but we'd need a sketch firstGenericImage
trait that makes it object safe (Make GenericImage/GenericImageView object-safe #784, MakeGenericImageView
&GenericImage
traits object safe #1406, RFC: Rethink GenericImage #1118)Implementation is breaking
simplify the pixel trait (Simplify Pixel trait #1099, Add alpha count associated constant to Pixel trait #956)GenericImage
(renameunsafe_get_pixel
toget_pixel_unchecked
? #1340,ImageDecoderExt
is named incorrectly #1046, Streaming Image encoders #1219) (Rename ImageDecoderExt #1611)Seek
trait on readers: (farbfeld seeking could be more efficient if it used seek_relative() #1183)ImageOutputFormat::Unknown
variant (Add TIFF variant to ImageOutputFormat #1453 (comment))'static
bound onPixel
(Remove 'static bound from traits and impls #1597 )get_pixel
methods (and more clarity on assert vs. Result)buffer
aboutslice::copy_within
usagereplace
andoverlay
signature (Overlay and replace with negative position #1575)*Encoder::new
(Signature difference between PngEncoder::new and JpegEncoder::new #1605)DynamicImage
asnon_exhaustive
would be more future-proofUnanswered questions
build.rs
file that enables specific features for specific versions only but I'm somewhat concerned for the testability of such a design. Apart from const-generics, is there any particularly relevant Rust feature that we'd be willing to wait for?The text was updated successfully, but these errors were encountered: