zerocopy icon indicating copy to clipboard operation
zerocopy copied to clipboard

Fix breakage stemming from Syn MSRV bump

Open jswrenn opened this issue 1 year ago • 2 comments

Starting with #1081, our nightly toolchain roller began to fail. The cause was syn increasing its MSRV to 1.60 from 1.56. Our MSRV remains at 1.56, so CI builds on that toolchain began to fail to resolve a suitable version of syn.

The timeline of events on syn's side is a little confusing:

  1. March 21: Raise required compiler to rust 1.60
  2. March 23: Release 2.0.54
  3. March 23: Restore compatibility with rustc 1.56 through 1.59
  4. March 23: Release 2.0.55
  5. March 29: chore: bump msrv to 1.60 in https://github.com/dtolnay/syn/pull/1608
  6. March 29: Release 2.0.56

Not yet sure how we should proceed with this. A few possibilities that spring to mind:

  • We build in CI with -Z minimal-versions
  • We downgrade to syn 1.x (MSRV is 1.31)
  • We vendor (or reimplement) the parts of syn relevant to zerocopy-derive
  • We delete our MSRV policy on zerocopy-derive; we cannot guarantee an MSRV for that crate, since it has dependencies with different MSRV policies.
  • Ask syn to adopt a more conservative MSRV policy.

jswrenn avatar Apr 02 '24 12:04 jswrenn

Could also consider committing a MSRV compatible Cargo.lock, so it becomes a source of true of what is buildable. And Optionally have a non-blocking "latest version" job for verification purpose.

See also Verifying rust-version and Verifying Latest Dependencies for some CI pracitices.

weihanglo avatar Apr 02 '24 13:04 weihanglo

I've put up a PR to temporarily pin syn to a known-good version so that we can unblock CI: https://github.com/google/zerocopy/pull/1089. That's obviously not a complete fix, so I've filed https://github.com/google/zerocopy/issues/1088 and blocked releasing 0.8 (https://github.com/google/zerocopy/issues/671) on it.

joshlf avatar Apr 02 '24 20:04 joshlf

Update: this is now affecting 0.7 after syn 2.0.68 bumped its MSRV from 1.60 (which is zerocopy 0.7's MSRV) to 1.61.

joshlf avatar Jun 25 '24 16:06 joshlf