Skip to content
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

docs/setup_new_repo: add some staging guidelines #153

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

stsquad
Copy link
Contributor

@stsquad stsquad commented Oct 19, 2023

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:

  • All commits in this PR are signed (with git commit -s), and the commit
    message has max 60 characters for the summary and max 75 characters for each
    description line.
  • All added/changed functionality has a corresponding unit/integration
    test.
  • [n/a] All added/changed public-facing functionality has entries in the "Upcoming
    Release" section of CHANGELOG.md (if no such section exists, please create one).
  • [n/a] Any newly added unsafe code is properly documented.

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.

Signed-off-by: Alex Bennée <[email protected]>
@Ablu
Copy link

Ablu commented Oct 19, 2023

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

Copy link
Member

@stefano-garzarella stefano-garzarella left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

I just wonder if it makes sense to add links to vhost-device as an example to follow (even for CI part using custom-pipelines)

@stefano-garzarella
Copy link
Member

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
Copy link
Contributor Author

stsquad commented Oct 19, 2023

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
Copy link

Ablu commented Oct 19, 2023

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
Copy link

Ablu commented Oct 19, 2023

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
Copy link
Contributor Author

stsquad commented Oct 19, 2023

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
Copy link

Ablu commented Oct 19, 2023

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 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants