zerocopy icon indicating copy to clipboard operation
zerocopy copied to clipboard

Test in CI that we have the same MSRV in all source files

Open joshlf opened this issue 3 years ago • 2 comments

Our MSRV is used in a number of places:

  • Doc comment in src/lib.rs
  • .github/workflows/ci.yml
  • tests/trybuild.rs (added in #60, which hasn't merged as of this writing)
  • zerocopy-derive/tests/trybuild.rs

Since they all need to be updated manually, it's easy for them to get out of sync. We should add a CI test that does some basic grep'ing to verify that they're in sync.

Appendix: Other approaches

I also tried to keep a single source of truth - an MSRV.txt file in the repository root that was sourced by other files. I ran into a few problems:

  • I was able to do the following to use that file to generate the crate-level doc comment:
    //! # Minimum Supported Rust Version (MSRV)
    //! 
    #![doc = concat!("zerocopy's MSRV is ", include_str!("../MSRV.txt"), ".")]
    
    ...unfortunately, the cargo readme tool we use to generate our README.md is not able to parse this, and so simply stops parsing the doc comment as soon as it encounters the #![doc = ...] line.
  • In zerocopy-derive/tests/trybuild.rs, I wasn't able to replace #[rustversion::stable(1.61.0)] with an equivalent which used MSRV.txt

joshlf avatar Oct 09 '22 23:10 joshlf

I'll have a go at this!

memark avatar Oct 16 '22 12:10 memark

Awesome, thanks @memark ! Welcome to zerocopy 😃

joshlf avatar Oct 16 '22 18:10 joshlf