rust-vmm / community

rust-vmm community content
499 stars 28 forks source link

docs/setup_new_repo: add some staging guidelines #153

Open stsquad opened 1 year ago

stsquad commented 1 year ago

We have introduced a staging area in vhost-device to facilitate the development of pre-production code alongside the wider project. Lets formalise the approach with some guidelines for how staging areas should operate in rust-vmm.

Requirements

Before submitting your PR, please make sure you addressed the following requirements:

Ablu commented 1 year ago

referencing https://github.com/rust-vmm/community/issues/133#issuecomment-1770767171: Do we want to allow public releases to crates.io for libraries under staging? :thinking:

stefano-garzarella commented 1 year ago

referencing #133 (comment): Do we want to allow public releases to crates.io for libraries under staging? 🤔

Good point!

I would be in favor, but maybe with restrictions, for example we could allow only 0.0.z releases when a crate is in staging and allow 0.1.0 only after it has been promoted.

stsquad commented 1 year ago

referencing #133 (comment): Do we want to allow public releases to crates.io for libraries under staging? 🤔

I guess there is more of an argument for libraries (we explicitly said no for binaries). However what does it gain? It's not like its hard to import a crate from a git tree.

Ablu commented 1 year ago

referencing #133 (comment): Do we want to allow public releases to crates.io for libraries under staging? 🤔

I guess there is more of an argument for libraries (we explicitly said no for binaries). However what does it gain? It's not like its hard to import a crate from a git tree.

Yep. I think I agree.

But I think this probably rules this out as a mechanism for vhost-user-frontend. There we probably want a release so that cloud-hypervisor can switch over.

Ablu commented 1 year ago

I would be in favor, but maybe with restrictions, for example we could allow only 0.0.z releases when a crate is in staging and allow 0.1.0 only after it has been promoted.

Also sounds reasonable to me. I got no strong opinion here.

stsquad commented 1 year ago

referencing #133 (comment): Do we want to allow public releases to crates.io for libraries under staging? 🤔

I guess there is more of an argument for libraries (we explicitly said no for binaries). However what does it gain? It's not like its hard to import a crate from a git tree.

Yep. I think I agree.

But I think this probably rules this out as a mechanism for vhost-user-frontend. There we probably want a release so that cloud-hypervisor can switch over.

Does cloud-hypervisor want to switch over given we are going to immediately start making changes and updates? I would have thought they could track via git trees if they are interested in testing where the changes go and then just switch when we get to production state?

If we publish an initial release they will still have the pain if there are API changes between 0.1 and 0.2.

Ablu commented 1 year ago

Does cloud-hypervisor want to switch over given we are going to immediately start making changes and updates? I would have thought they could track via git trees if they are interested in testing where the changes go and then just switch when we get to production state?

Let's discuss that on the other ticket :)