-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Release Guide
Rot127 edited this page May 29, 2026
·
20 revisions
Change version in following path:
CMakeLists.txt
# Check if VERSION is provided externally, otherwise default to 5.0.9
if(NOT DEFINED PROJECT_VERSION OR PROJECT_VERSION STREQUAL "")
set(PROJECT_VERSION "5.0.9")
endif()
pkgconfig.mk
# version major & minor
PKG_MAJOR = 5
PKG_MINOR = 0
# version bugfix level. Example: PKG_EXTRA = 1
PKG_EXTRA = 0
# version tag. Examples: rc1, b2, post1 - or just comment out for no tag
PKG_TAG = post1include/capstone/capstone.h
// Capstone API version
#define CS_API_MAJOR 5
#define CS_API_MINOR 0
// Version for bleeding edge code of the Github's "next" branch.
// Use this if you want the absolutely latest development code.
// This version number will be bumped up whenever we have a new major change.
#define CS_NEXT_VERSION 6
// Capstone package version
#define CS_VERSION_MAJOR CS_API_MAJOR
#define CS_VERSION_MINOR CS_API_MINOR
#define CS_VERSION_EXTRA 0
...
#define CS_VERSION_PRE_RELEASE CS_VERSION_ALPHA9cd bindings
python3 const_generator.py all- Ensure the CI on the release branch is all green
- Update
Changelog- Go to: Create new release
- Select branch
- In "Tag" select "Create new tag" (it won't actually be created).
- Generate release notes and copy them to the
Changelogfile. - Return from page without creating the release (that is done later).
- Check version numbers as above:
- Check/Update
CMakeLists.txtversion - Check/Update
pkgconfig.mkversion - Check/Update
capstone.hversion
- Check/Update
- Update binding constants.
- Open PR with all these changes.
- Merge after review was done.
Important
The upload of Python wheels will only trigger if the release is created and a tag is assigned (see: https://github.com/capstone-engine/capstone/pull/2766).
Important
The Actions triggering on release created won't run if the release was saved as Draft Release and then published.
This means: Do not write and save a Draft Release to publish it later. No binaries will be built.
Just publish it directly.
- Create tag
- Locally run
git tag -s x.y.z-alpha(example tag name of course).- Tag name must be of the form
x.y.z-alpha.-alphais optional and can be any addition. Tag name should NOT start with av. -
-ssigns the tag. This is optional but recommended.
- Tag name must be of the form
- Push tag:
git push upstream tag x.y.z-alpha
- Locally run
- Create release, with changelog and some highlights.
- Publish release directly (don't make it a draft release and publish it later!).
- If this was a major release, increment version numbers as above in the
nextbranch (e.g. for a major release: v5,nextshould haveCS_API_MAJOR 6andCS_NEXT_VERSION 7). - In case of a pre-release, update
CS_VERSION_PRE_RELEASEto the next version. - Close milestone associated with release version (move all the open issues to the next one).
- Update the website