On Fri, Jan 13, 2023 at 08:23:05PM +0000, Richard W.M. Jones wrote:>On Fri, Jan 13, 2023 at 01:06:09PM -0700, alan somers wrote: >> Which files get overwritten by libvirt-ci ? > >I think it's everything except ci/manifest.yml, possibly. >Eric and Martin (CC'd) know more about this. > >The libvirt-ci page is: >https://libvirt.org/ci.html > >And the command I use to regenerate everything is: >../libvirt-ci/bin/lcitool manifest ci/manifest.yml >I came back, went through the thread and upstream MRs and here are some things I came up with: The predicates crate since version 1.0.4 do not support rust older than 1.60.0, so it should be decided whether nbdkit wants to support Debian?11, whether nbdkit wants to support the rust plugin on systems with older rust versions and so on. Based on that decision there are ways to fix this issue. Not supporting Debian 11 is easy to achieve, of course, but probably not wanted. Not supporting older rust would just need disabling rust plugin builds with old rust in configure.ac and then on those specific systems in CI. If you want to make this work in all currently tested scenarios, then I guess adding: predicates-core = "=1.0.3" predicates-tree = "=1.0.3" to the [dev-dependencies] in Cargo.toml. That would however be applicable to all systems and necessitate future update(s). If you want to do something in the CI then the easiest place is ci/build.sh. For Cirrus CI I think it could be erased since most of it is also checked elsewhere, although not all things have been migrated to the other CI solution, like clippy, if I am correct. But another thing is, why is the minimum rust version in .cirrus.yml set to rust 1.46.0? Increasing that would clearly fix the cirrus version issue. During the adoption of libvirt-ci I knew a bit more about it, but it also keeps changing faster than me keeping eye on it. So I'm not sure about most recent changes. Hopefully what I documented in ci/ is either still true or was updated together with an lcitool update. But in hindsight I think moving the build instructions into ci/build.sh was the right choice. What lcitool does really well is abstract lot of the managing of distros, versions and package naming to make it consistent.>Rich. > >-- >Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones >Read my programming and virtualization blog: http://rwmj.wordpress.com >virt-top is 'top' for virtual machines. Tiny program with many >powerful monitoring features, net stats, disk stats, logging, etc. >http://people.redhat.com/~rjones/virt-top >-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: <http://listman.redhat.com/archives/libguestfs/attachments/20230116/cb0100ea/attachment.sig>
On Mon, Jan 16, 2023 at 01:04:03PM +0100, Martin Kletzander wrote:> On Fri, Jan 13, 2023 at 08:23:05PM +0000, Richard W.M. Jones wrote: > > On Fri, Jan 13, 2023 at 01:06:09PM -0700, alan somers wrote: > > > Which files get overwritten by libvirt-ci ? > > > > I think it's everything except ci/manifest.yml, possibly. > > Eric and Martin (CC'd) know more about this. > > > > The libvirt-ci page is: > > https://libvirt.org/ci.html > > > > And the command I use to regenerate everything is: > > ../libvirt-ci/bin/lcitool manifest ci/manifest.yml > > > > I came back, went through the thread and upstream MRs and here are some > things I came up with: > > The predicates crate since version 1.0.4 do not support rust older than > 1.60.0, so it should be decided whether nbdkit wants to support > Debian?11, whether nbdkit wants to support the rust plugin on systems > with older rust versions and so on. Based on that decision there are > ways to fix this issue. > > Not supporting Debian 11 is easy to achieve, of course, but probably not > wanted. > > Not supporting older rust would just need disabling rust plugin builds > with old rust in configure.ac and then on those specific systems in CI. > > If you want to make this work in all currently tested scenarios, then I > guess adding: > > predicates-core = "=1.0.3" > predicates-tree = "=1.0.3" > > to the [dev-dependencies] in Cargo.toml. That would however be > applicable to all systems and necessitate future update(s). > > If you want to do something in the CI then the easiest place is > ci/build.sh. For Cirrus CI I think it could be erased since most of it > is also checked elsewhere, although not all things have been migrated to > the other CI solution, like clippy, if I am correct. >What would be the thing you're suggesting for ci/build.sh? It's merely calling configure and then make, so as long as the Rust build needs to be addressed, then ci/build.sh isn't the place as it's only supposed to automate some build steps not fix them IIUC. Erik
Richard W.M. Jones
2023-Jan-16 12:38 UTC
[Libguestfs] Cargo edition problem with Debian 11
Thanks everyone. Just a note that nbdkit CI is passing right now. I disabled the rust plugin (only) for the troublesome distros. Also I fixed a bunch of other things that were broken. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
On Mon, Jan 16, 2023 at 5:04 AM Martin Kletzander <mkletzan at redhat.com> wrote:> > On Fri, Jan 13, 2023 at 08:23:05PM +0000, Richard W.M. Jones wrote: > >On Fri, Jan 13, 2023 at 01:06:09PM -0700, alan somers wrote: > >> Which files get overwritten by libvirt-ci ? > > > >I think it's everything except ci/manifest.yml, possibly. > >Eric and Martin (CC'd) know more about this. > > > >The libvirt-ci page is: > >https://libvirt.org/ci.html > > > >And the command I use to regenerate everything is: > >../libvirt-ci/bin/lcitool manifest ci/manifest.yml > > > > I came back, went through the thread and upstream MRs and here are some > things I came up with: > > The predicates crate since version 1.0.4 do not support rust older than > 1.60.0, so it should be decided whether nbdkit wants to support > Debian 11, whether nbdkit wants to support the rust plugin on systems > with older rust versions and so on. Based on that decision there are > ways to fix this issue. > > Not supporting Debian 11 is easy to achieve, of course, but probably not > wanted. > > Not supporting older rust would just need disabling rust plugin builds > with old rust in configure.ac and then on those specific systems in CI. > > If you want to make this work in all currently tested scenarios, then I > guess adding: > > predicates-core = "=1.0.3" > predicates-tree = "=1.0.3" > > to the [dev-dependencies] in Cargo.toml. That would however be > applicable to all systems and necessitate future update(s).We shouldn't do that, because it would prevent any consumers from using newer versions of those crates.> > If you want to do something in the CI then the easiest place is > ci/build.sh. For Cirrus CI I think it could be erased since most of it > is also checked elsewhere, although not all things have been migrated to > the other CI solution, like clippy, if I am correct. > > But another thing is, why is the minimum rust version in .cirrus.yml set > to rust 1.46.0? Increasing that would clearly fix the cirrus version > issue.That was a reasonable value at the time we set it. But that was more than a year ago. There's no "right" answer for what the MSRV ought to be. The best guideline is that it should be no newer than the version of the Rust package shipped by the oldest OS we care about. By that logic, we can raise it to 1.48.0 but no higher.> > During the adoption of libvirt-ci I knew a bit more about it, but it > also keeps changing faster than me keeping eye on it. So I'm not sure > about most recent changes. Hopefully what I documented in ci/ is either > still true or was updated together with an lcitool update. But in > hindsight I think moving the build instructions into ci/build.sh was the > right choice. What lcitool does really well is abstract lot of the > managing of distros, versions and package naming to make it consistent. > > >Rich. > > > >-- > >Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones > >Read my programming and virtualization blog: http://rwmj.wordpress.com > >virt-top is 'top' for virtual machines. Tiny program with many > >powerful monitoring features, net stats, disk stats, logging, etc. > >http://people.redhat.com/~rjones/virt-top > >