Firmware releases are performed through Github Actions. The overall process is to first tag the repo and then build it on Github Actions. The build will run tests, build binaries, generate a release in GitHub and upload binaries.
Continue to read here for a full detailed checklist for handling of full fw releases and release candidates.
Note: For releasing Python libraries we currently follow instructions in an internal document.
- Tag the to-be-released GitHub repositories with a release candidate tag in the form of
2022.03-rc1
. - In GitHub Actions in each repository:
- Select the 'release' flow.
- Press the down arrow on 'run workflow'.
- Select the release candidate tag (see screenshot under).
- Press the green button 'Run workflow'.
- Wait until the workflow has been finalized.
- Make the pre-releases of the repositories public.
- Locally clone this repository (
git clone [email protected]:bitcraze/crazyflie-release.git
) - Modify the
versions.json
file:- Ensure the
crazyflie-release-version
reflects the overall release version (e.g.,2022.03-rc1
for the first release candidate). - Update all relevant firmware versions to their respective release candidate tags.
- Ensure the
- Tag the crazyflie-release repository with the candidate release tag (e.g.,
2022.03-rc1
). The tag must be identical to thecrazyflie-release-version
specified inversions.json
to maintain versioning consistency. - Go to the actions tab, select release, start the workflow with the candidate release tag (like with the other repositories)
- Wait until workflow has been finalized, go to the draft release. Use the zip folder to flash the release candidate.
- Perofrm all the release testing
- If all is good, continue!
- If there is something wrong, fix the issues, and start again to generate a new version (e.g.
2022.03-rc2
) of the release candidate for both the firmware and again of the full crazyflie-release
- Now getting ready for the real release: set the real release tag (like
2022.03
) on the to-be-released GitHub repositories. - Use the release actions with that tag
- On Github go to Releases, click the latest draft release, select the current and previous release's tags and click "Generate release notes".
- Add a section containing all deprecated functionality in the code base (search for "deprecated").
- Publish the firmware releases ("Set as latest release" checkbox selected)
- Tag the
crazyflie-release
repository with the release version (e.g.2022.03
) - Use the 'release' workflow to generate a draft release
- Go to the draft release:
- add some general, human readable notes about the release (based on the release notes for the firmwares)
- check the "set as latest release" checkbox
- publish
- Flash the release .zip files to check if they are working
- Don't forget to write a blogpost about the release