Standard Release Process
Following procedure is generic description of release process of firmware for supported hardware platforms. Precise steps and any difference from standard process are described in platform specific documentation.
The development process may differ depending on used firmware framework. Select the applicable tab for your framework below:
Process steps
- Checkout new branch
<platform>_rel_vX.Y.Z
from recent commit ondasharo
branch - to understand versioning scheme please read Versioning section - Merge current platform development branches to
<platform>_rel_vX.Y.Z
- (Optional) Create a release candidate by tagging
<platform>_vX.Y.Z-rcN
- Run platform regression test suite
- Fix all required issues and repeat from point 3 until fixed - this doesn't mean all tests pass, this mean that approved set passed
- If results are accepted merge it to
dasharo
branch -
Add tag, which should trigger CI and publish binaries. Tag should be annotated and signed. For example:
git tag -a -s -m "<platform>_vX.Y.Z" <platform>_vX.Y.Z
Heads development process is a little different and works closer to upstream repositories:
- Checkout the latest Heads upstream revision
- Create release branch for your platform
<platform>_rel_vX.Y.Z
-
Inside the
site-local
directory, create fileconfig
with the following contents:BRAND_NAME=Dasharo ifeq "novacustom-v560tu" "$(BOARD)" export CONFIG_COREBOOT_LOCALVERSION="\(coreboot+heads\) v[Enter version number here]" export CONFIG_COREBOOT_SMBIOS_PRODUCT_NAME="[Enter SMBIOS product name here]" endif
-
Download Dasharo bootsplash from dasharo-blobs
-
Convert Dasharo bootsplash from BMP to JPEG format:
magick bootsplash.bmp bootsplash.jpg
-
Copy Dasharo logo in JPEG format to
branding/Dasharo/bootsplash.jpg
- Commit your changes and push to Dasharo Heads fork for review
Bugfixes
When developing patches, submit changes to upstream first:
- Checkout latest Heads upstream version
- Create branch for your bugfix
- Push branch to Dasharo Heads fork
- Submit PR to upstream Heads repository for review
-
Once merged, rebase your release branch onto the merged upstream commit:
git checkout master git pull git checkout <platform>_rel_vX.Y.Z git rebase master
There should be no conflicts, because all changes are in
site-local
directory, which is always empty in upstream branches.
Tagging the release
Once testing is complete, remove -rcX
suffix from the version number,
and then tag the release:
git tag <platform>_vX.Y.Z -s
git push origin <platform>_vX.Y.Z
You may now delete branch <platform>_rel_vX.Y.Z
on GitHub. Because the
release is tagged, GitHub garbage collection will not automatically delete
the commit.