kvark / obj

Basic Wavefront OBJ loader
Apache License 2.0
29 stars 12 forks source link

MSRV 1.37.0 -> 1.40.0 in 0.10.2 #27

Open kentfredric opened 3 years ago

kentfredric commented 3 years ago

This ticket doesn't require action, its just for your information.

Testing indicates that 0.10.2 changes the effective MSRV from 1.37.0 to 1.40.0

https://kentfredric.github.io/rust-vmatrix/crates-o/ob/obj/ snapshot_20201201_132832

The failure on Rust <1.40.0 is:

error[E0658]: use of unstable library feature 'option_flattening'
   --> /tmp/7kHsF5P36b/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/obj-0.10.2/src/obj.rs:623:61
    |
623 |                 t.map(|t| normalize(t, self.texture.len())).flatten(),
    |                                                             ^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/60258

error[E0658]: use of unstable library feature 'option_flattening'
   --> /tmp/7kHsF5P36b/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/obj-0.10.2/src/obj.rs:624:60
    |
624 |                 n.map(|n| normalize(n, self.normal.len())).flatten(),
    |                                                            ^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/60258

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0658`.
error: could not compile `obj`.

And it seems Option.flatten() was stabilized in rust 1.40.0, and the commit that introduced this regression may have been https://github.com/kvark/obj/commit/02d2c60489caaed1a71b76f5a55d7d3fec5fb7a0#diff-3d0e4f350a2eb55b7d8d4c76ff6985e72306fab4046d2bf88911202e50eb95eeR625

I believe there is sometimes some value in incrementing semver when changing minimum supported rust.

Though documenting the minimum supported rust somewhere top-level (README) also goes a long way.

Setting up a CI server to check your documented MSRV sticks is also quite welcome.

In the event this issue is not helpful, just let me know and I'll try to avoid filing similar issues on this crate in future.

NB: I don't directly use obj, I'm just doing build testing across the ecosystem.

kvark commented 3 years ago

Thank you for the info! We generally try to establish and test MSRV for important crates. obj so far has been on the sidelines, so we didn't pay attention. Perhaps, we still should.