From 7f04079439433557dc10ec9c30b7569eaa278431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Thu, 19 Oct 2023 11:59:03 +0100 Subject: [PATCH] docs/setup_new_repo: add some staging guidelines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- docs/setup_new_repo.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/setup_new_repo.md b/docs/setup_new_repo.md index b1f2477..2a23506 100644 --- a/docs/setup_new_repo.md +++ b/docs/setup_new_repo.md @@ -101,3 +101,27 @@ Below you can see a configuration example: - Enable "Build pull requests from third-party forked repositories" - Update commit statuses -> Show blocked builds in GitHub as -> Pending - Don't forget to click on "Save GitHub Settings" + +### Staging workspace + +Sometimes a repository might find it easier to bring in new code by +use of a staging area. This can allow the same workflow for reviewing +and discussion of the code without having to meet all the requirements +of the production crates. A staging area should not become permanent +dumping ground, eventually all code should either be moved into +production or removed from the repository. + +The staging area should have its own README.md describing the contents +and what criteria need to be met for code to be included. + +Building staging code should be an explicit operation, the default +`cargo build` should only build production crates. + +While enabling CI for staging is encouraged so that tests can be +developed it should be split from the production testing. Code +proposed for staging should still not fail any part of CI but there +might be acceptable exceptions to DCO and commit format requirements +to allow the importing of messy early history as is. The staging area +may choose to relax the requirements on keeping code coverage on the +understanding code will eventually have to meet those requirements to +be promoted to production.