Firmware releases are done from 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 underneath for a full detailed checklist for handling of full fw releases and release candidates.
- Tag the crazyflie-firmware and the crazyflie2-nrf-firmware github repo with a release candidate tag in the form of “2022.03-rc1”
- In github: Collect pull requests and issues (optional) of both repositories in the “next-release” milestone.
- In github: Rename the milestones to the real release, for instance “2022.03”
- In github actions on both firmware's repos:
- 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 workflows has been finalized
- Make to two pre-releases of the two repositories public
- Locally clone this repository (crazyflie-release)
- Change the version.json file to include the candidate releases tags
- Tag the crazyflie-release repository with the candidate release tag (2022.03-rc1)
- Then got 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. If you want you can try out the zipfolder generated if it flashes
- If everything looks okay publish the release as a pre-release in github.
- Do all the Crazyflie release testing
- If all is good, continue!
- If there is something wrong, fix the issues, and start again to generate a new version 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 crazyflie-firmware and crazyflie2-nrf firmware,
- Use the release actions with that tag
- Go to the draft release and input the generate the release notes by
tb ghrn bitcraze/crazyflie-firmware 2022.03
or the automatic functionality in github. - Add a section containing all deprecated functionality in the code base (search for "deprecated").
- Add an summary release notes that are easier to read
- Publish the firmware releases (no pre-release checkbox selected)
- Tag the crazyflie-release with the version (2022.03)
- Use the action workflow to create a draft release
- Go to the draft release:
- add some general, human readable notes about the release (based on the release notes for both the firmware)
- uncheck the pre-release check
- press the green button publish
- Double check with the zip files if they are in working order (flash them from the cfclient)
- In github: Close the milestones and make a 'next release' milestone for the next
- In github: remove all candidate releases (all firmware repos)
- Now write a blogpost about the release!