From eabf93f3d5f505c849a8becf6e4acf0cb3ab1a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 16 Oct 2023 14:33:12 +0100 Subject: [PATCH] README.md: clearer language on staging devices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lets be super clear and explicit about what it takes to include a backend in the repository as well as the minimum requirements for being included in staging. Signed-off-by: Alex Bennée --- README.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5b7c5a4..3549bf1 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,12 @@ This repository hosts various 'vhost-user' device backends in their own crates. See their individual README.md files for specific information about those crates. +To be included here device backends must: + + - be based on a published [VIRTIO specification](https://github.com/oasis-tcs/virtio-spec) + - fulfil basic functionality requirements (in conjunction with a implemented driver) + - meet the [rust-vmm dev requirements](https://github.com/rust-vmm/community#publishing-on-cratesio---requirements-list) + Here is the list of device backends that we support: - [GPIO](https://github.com/rust-vmm/vhost-device/blob/main/vhost-device-gpio/README.md) @@ -15,9 +21,20 @@ Here is the list of device backends that we support: - [SCSI](https://github.com/rust-vmm/vhost-device/blob/main/vhost-device-scsi/README.md) - [VSOCK](https://github.com/rust-vmm/vhost-device/blob/main/vhost-device-vsock/README.md) -For `vhost-user` device backends that have no final specification merged into -the [VIRTIO specification](https://github.com/oasis-tcs/virtio-spec), or have partial functionality, we have a [staging -workspace](./staging/). +### Staging Devices + +Implementing a proper VirtIO device requires co-ordination between the +specification, drivers and backend implementations. As these can all +be in flux during development it was decided introducing a staging +workspace which would allow developers to work within the main rust-vmm +project while clearly marking the backends as not production ready. + +To be included in the staging workspace there must at least be: + + - A public proposal to extend the [VIRTIO specification](https://github.com/oasis-tcs/virtio-spec) + - A public implementation of a device driver + - Documentation pointing to the above + More information may be found in its [README file](./staging/README.md). Here is the list of device backends in **staging**: