Workaround
cargo install eza --locked
Symptom
cargo install eza fails while compiling palette:
error[E0433]: failed to resolve: could not find `lms` in the crate root
--> .../palette-0.7.5/src/hsl.rs:46:28
|
46 | #[derive(Debug, ArrayCast, FromColorUnclamped, WithAlpha)]
| ^^^^^^^^^^^^^^^^^^ could not find `lms` in the crate root
|
= note: this error originates in the derive macro `FromColorUnclamped`
error[E0433]: failed to resolve: could not find `meta` in `xyz`
...
error: could not compile `palette` (lib) due to 34 previous errors
error: failed to compile `eza v0.23.5`
34 errors, all of these two shapes, across hsl.rs, hsluv.rs, hsv.rs, hwb.rs, lab.rs, lch.rs, lchuv.rs, luma/luma.rs, luv.rs, okhsl.rs, okhsv.rs, okhwb.rs, oklab.rs, oklch.rs, rgb/rgb.rs, xyz.rs, yxy.rs.
Cause
eza pins palette = "=0.7.5", but palette_derive is a transitive dependency and palette 0.7.5 requires it as "0.7.5" — a caret requirement. Pinning palette therefore does not hold palette_derive back.
Without a lockfile, palette_derive resolves to 0.7.7, whose derive macros expand to paths (crate::lms, xyz::meta) that do not exist in the 0.7.5 library. --locked works because the committed lockfile keeps palette_derive at a version that still compiles against 0.7.5.
Fix
PR #1910 pins palette_derive directly so that a fresh resolution produces a working pair.
Note that the same gap also meant the palette pin was not achieving its original purpose — see the PR for details.
Workaround
Symptom
cargo install ezafails while compilingpalette:34 errors, all of these two shapes, across
hsl.rs,hsluv.rs,hsv.rs,hwb.rs,lab.rs,lch.rs,lchuv.rs,luma/luma.rs,luv.rs,okhsl.rs,okhsv.rs,okhwb.rs,oklab.rs,oklch.rs,rgb/rgb.rs,xyz.rs,yxy.rs.Cause
eza pins
palette = "=0.7.5", butpalette_deriveis a transitive dependency andpalette0.7.5 requires it as"0.7.5"— a caret requirement. Pinningpalettetherefore does not holdpalette_deriveback.Without a lockfile,
palette_deriveresolves to 0.7.7, whose derive macros expand to paths (crate::lms,xyz::meta) that do not exist in the 0.7.5 library.--lockedworks because the committed lockfile keepspalette_deriveat a version that still compiles against 0.7.5.Fix
PR #1910 pins
palette_derivedirectly so that a fresh resolution produces a working pair.Note that the same gap also meant the
palettepin was not achieving its original purpose — see the PR for details.