From c36f973fe129cc054d4d2936c51205086c420221 Mon Sep 17 00:00:00 2001 From: Caleb Whitehead Date: Mon, 20 May 2024 13:51:33 -0700 Subject: [PATCH] Revised release workflow to resolve misalignment between sw/rtl repos --- doc/HWReleaseProcess.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/HWReleaseProcess.md b/doc/HWReleaseProcess.md index 6bce6ca..75dc015 100644 --- a/doc/HWReleaseProcess.md +++ b/doc/HWReleaseProcess.md @@ -19,10 +19,11 @@ ## Major Releases -1. The RTL team will consume the **release collateral** generated by the **Nightly Workflow** and verify it in the DV environment. The verification should include RTL synthesis using the chosen tool from the Caliptra WG. -2. Upon success of the DV verification a new release will be made on the **caliptra** repo - - A ZIP file containing the release collateral will be included as part of the release. -4. The **caliptra-rtl** and **caliptra-sw** repos will be tagged with a **release** version tag. +1. Before finalizing an RTL release, the hardware team will follow the procedure described in [CaliptraReleaseChecklist.md](https://github.com/chipsalliance/caliptra-rtl/blob/cc37991e50f9213219d13f2e0d99b0ba5c7460e0/docs/CaliptraReleaseChecklist.md). +2. Upon finalizing all release checklist items, the hardware team will generate a release tag on the RTL **main** branch, following the naming convention **v.**. +3. When this is completed, the RTL team will create a new branch following the naming convention **patch_v.**. This branch will exactly match the contents of the major release tag. Any future fixes that must be applied as patches to this release version will be committed to the **patch_v.** branch. Branch **main** will continue to receive updated code for the subsequent planned release, and is not guaranteed to contain a valid release except as tagged. +4. The software team will follow the submodule update [steps](#RTL-Submodule-Pointer-Update) to revise the RTL submodule pointer to consume the code from branch **patch_v.** instead of from branch **main**. +4. The **caliptra-sw** repo will be tagged with a **release** version tag. As a result of the submodule flow, this release will contain a snapshot of the code from **caliptra-rtl** repo that has already been tagged with the release version. ## Fail Case @@ -35,7 +36,7 @@ - A dev branch will be created from the tip of the RTL main branch, and WA fixes will be applied as individual commits - The RTL Sumbodule pointer in the **caliptra sw** repo will manually be updated to point to the dev branch. - The nightly release workflow will generate all individual patches as part of the collateral archive and list them in the release notes. - 4. Once the issue is fixed, the RTL dev branch will be deleted and the RTL submodule pointer will be repositioned to the HEAD of the RTL main branch. + 3. Once the issue is fixed, the RTL dev branch will be deleted and the RTL submodule pointer will be repositioned to the HEAD of the RTL main branch. ## Release Collateral @@ -67,6 +68,7 @@ - All releases will come from the main branch with nightly cadence. - Once a release is made the **nightly release branch** SHALL be deleted. +- Code from the **caliptra-rtl** repo that is included in a major release tag on the **caliptra-sw** repo must exactly match the major release tag that was made in the **caliptra-rtl** repo.
*Caliptra Release Flow* ![Caliptra Release Flow Chart](doc/images/Caliptra_release_flow.svg)