-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate GitHub Actions #19
base: master
Are you sure you want to change the base?
Conversation
Define a GitHub Actions CI pipeline that builds for Linux on MSRV, stable, and next, and makes a half-arsed attempt at verifying MSRV on Windows. Because several dependencies rely on wildcards the de facto MSRVs are a fair bit higher than advertised: - getopts unceremoniously abandoned MSRV pretence in 0.2.20 and raised MSRV from 1.18 to 1.27, then again to 1.31 in 0.2.21. - libloading 0.6.0 for "unix" uses MaybeUninit, which requires 1.36. - libloading 0.6.0 for "windows" uses pointer::cast(), which requires 1.38, and the non_exhaustive feature, which requires 1.40. Of course, the original MSRVs can be restored by fixing dependencies. I've retained the Linux/Windows MSRV split out of precedence. It makes some sense given the build dependency difference, though I'd argue for simplifying communication by maintaining only one MSRV.
I guess |
... but I screwed up the message for 15b8588 -_-. |
See commit bcfd45d ("Integrate GitHub Actions", 2020-04-14) for details about this bump.
15b8588
to
669dc3e
Compare
Thanks for your contribution, although you may have realised that the floating versions on |
Effectively impossible. I was going to submit another change to pin the remaining dependency versions for precisely that reason but hadn't gotten to it yet. Why do you want to avoid that? I'm not personally inconvenienced by the minimum Rust version here (except for tracing it through a few misleading dependencies to determine it...). You could, for instance, just say "stable and nightly only", and get complete freedom from core Rust. That wouldn't prevent breakage by API changes in dependencies, though. It's quite trivial to make different build steps for And at the end of the day you can always just reject this. :) |
Define a GitHub Actions CI pipeline that builds for Linux on MSRV,
stable, and next, and makes a half-arsed attempt at verifying MSRV on
Windows.
Because several dependencies rely on wildcards the de facto MSRVs are a
fair bit higher than advertised:
getopts
unceremoniously abandoned MSRV pretence in 0.2.20 and raisedMSRV from 1.18 to 1.27, then again to 1.31 in 0.2.21.
libloading
0.6.0 for "unix" usesMaybeUninit
, which requires 1.36.libloading
0.6.0 for "windows" usespointer::cast()
, which requires1.38, and the
non_exhaustive
feature, which requires 1.40.Of course, the original MSRVs can be restored by fixing dependencies.
I've retained the Linux/Windows MSRV split out of precedence. It makes
some sense given the build dependency difference, though I'd argue for
simplifying communication by maintaining only one MSRV.