Closed ripytide closed 2 months ago
The mss_saliency
crate didn't work without the legacy From
impls, because it depends on RGB<u32>: From<RGB<u8>>
.
use rgb::*; use rgb::alt::*; GRAY8
breaks, because it's defined in two places differently.
Those two issues seem like they would require major rework to fix, is it worth the effort to fix those backwards incompatibilities or can we simply expect users to fix those issues themselves after we release v0.8.90
?
I think we should release v0.8.90
as is, given we've attempted backwards compatibility on a best-effort basis, how about you?
I've removed spaces from Display
.
Unfortunately Rust can't display deprecations for uses of Deref
, so moving users away from Gray's deref will be tricky.
Hopefully the Deref
issue won't be that bad as eventually Gray_v08
will be deprecated so they can migrate away from Deref
at the same time they migrate to Gray_v09
.
Now it's impossible to future-proof access to Gray
due to the .0
field and lack of Deref. Maybe both types should get .v()
or .value()
getter?
There's also no Rgb::from(gray)
I've tested some of the most popular reverse dependencies of
rgb
to test the main branch's backwards compatibility:inferno
: Compiles but some tests fail due to formatting differences, not a big deal as inferno can re-generate it's test results but we could also revert our formatting back to no-spaces.Diff < left / right > : <Flame Graph
image
: Compiles and all tests pass.gif-dispose
: Compiles and all tests pass.ravif
: Compiles and all tests pass, gives deprecation warnings about types being renamed.resvg
: Compiles, has no tests.femtovg
: Compiles, fails the same tests with and without patching with the newrgb
branch so seems like an unrelated bug or user-error on my part.lodepng
: Compiles, fails the same test with and without patching with the newrgb
branch so seems like an unrelated bug or user-error on my part.csscolorparser
+rust-rgb
feature: Compiles and all tests pass, gives deprecation warnings about types being renamed.ansi_colours
: Bingo! Spits out two types of compiler errors when using the newrgb
branch:into_u8
found for reference&Gray<C>
in the current scope --> src/impls.rs:78:36Component
defines an iteminto_u8
, perhaps you need to implement it --> src/impls.rs:28:1into
with a similar name