Releases
This is a guide on preparing and releasing new ESBMC versions.
Warning
This guide is meant for developers of ESBMC with permissions for releasing new versions. It will not work if you don’t have appropriate permissions.
To create a new ESBMC release on GitHub, follow these steps:
Create a Branch for the Release
Create a branch appropriately named for this release and switch to it, in this case:
git switch -c v8.1Update the Release Notes
Update the release notes in /scripts/release-notes.txt to reflect the changes
included in the new version.
Tip
You can use Claude or any other LLM for this, just use this command to get the
differences from the last tag
git log v8.0..master --oneline > /tmp/commits-for-release.txt (in this case
being v8.0) and instruct it to update the file for the next version.
Update the Project Version
Update the project version by modifying /CMakeLists.txt. Specifically the
macros ESBMC_VERSION_MAJOR, ESBMC_VERSION_MINOR, ESBMC_VERSION_PATCH to
include the desired version number.
Commit and Push to the Branch
Commit the changes and push them to the branch created earlier. Then submit a
PR. Name the commit appropriately, in this case update: bump version to v8.1.
git add scripts/release-notes.txt CMakeLists.txt
git commit -m "update: bump version to v8.1"
git pushCreate the PR
Note
You can do this from the GitHub UI as well. But for convenience I show the commands.
Make sure to change the title and body to your version number.
gh pr create \
--title "update: bump version to v8.1" \
--body "Bump version to v8.1 and update release notes."Await PR to be Merged
Allow 2 other maintainers to review your PR as usual, approve and merge it.
Tagging the Commit
Create a tag for the commit with the version change, make sure to name it
according to the version you’re releasing. In this case v8.1:
git tag v8.1Push the tag to origin:
git push --tagsCreating the Release Artifacts
You need to get the build artifacts that will be uploaded. Run a new
Release job on
the master branch. Download the artifacts and prepare to upload them in the
next step.
Creating the Release on GitHub
After pushing the tag, GitHub will allow you to create the official release associated with that tag through the repository’s Releases page.
- Select the tag you created and title the release according to your version “Release 8.1” (note the missing v, for consistency with past releases).
- Write the release description, which should just be a markdown version of the
content written in
/scripts/release-notes.txtfrom earlier. - You will need to upload the release artifacts created in the last step.
Tip
You can use Claude or any other LLM to prepare the release description.