rust-vmm / vmm-reference

A VMM implementation based of rust-vmm components
Apache License 2.0
146 stars 61 forks source link

Update Rust dependencies to their latest version #238

Open andreeaflorescu opened 1 year ago

andreeaflorescu commented 1 year ago

The purpose of this issue is to make the CI pass on main. Right now it fails because of a cargo audit failure.

Steps for solving this issue:

  1. Identify what versions are outdated (probably most of them). To check what versions are outdated, you can install cargo outdated and run the command.
cargo install cargo-outdated
cargo outdated
  1. Update the versions of the crates in the corresponding Cargo.toml files keeping in mind that we should use the latest everywhere. If a crate is a dependency of 2 local vmm-reference crates, then both of them should point to the same value.
  2. Run cargo outdated to make sure you didn't miss any updates.

At the end of this work cargo audit should pass in the CI.

eddie-m-m commented 1 year ago

I'm new (like, really new) to VCS. I updated all the Cargo.toml files I could find (after some premature and meandering commits). My rust-analyzer tells me all crates are updated and the cargo outdated does as well. I'm still breaking the build though (?).

I have been trying to build on Windows. I believe that may be problematic. I replicated the work on WSL Debian and still am breaking the build.

andreeaflorescu commented 1 year ago

Hey @eddiemMenefee, just updating the Cargo.toml to the latest versions is not enough. You have to also look at what the failures are and address them. Some APIs have changed and the calls to those APIs need to be updated. One of the big changes is the virtio queue one where the memory is now passed directly to the methods that need it as opposed to having it as part of the Queue object. This particular change I think is a bit harder to tackle, I might be able to provide a commit that fixes that. For the rest, if they're rust-vmm crates, you can look at the changelog to see what changed between the version that you're upgrading to compared to the previous version, and understand what needs to be changed.