Skip to content
Quentin Sabah edited this page Mar 25, 2025 · 2 revisions

Making a release

Versioning

Before a release is made, the changelog needs to be updated. Between releases '(@VERSION@-1) UNRELEASED' is used for the current version information. This is generated automatically during the build process. For a release, this information, along with the current date and a list of changes, should be added to the changelog. After the release the auto-updateable tag should be first in the list of versions to ensure correct labelling of HEAD releases.

Github

The release process from the GitHub side is simple. As a souffle-lang admin, go to the Releases page. Draft a new release. Currently this is done by clicking on the 'Draft a new release' button. Enter the appropriate new tag in the tag section and set the release title to 'Release '. In the description section enter a list of the important changes. This list can be populated by searching through all pull requests made since the last release and adding all non-trivial fixes/changes. Be sure to document any user interface changes.

Automation

Once a release is made it will be tested on travis and distribution packages prepared. These are added to the Releases page for the new release, along with the GitHub-generated source release.

When to release

Major versions

Major versions are released when a breaking change is introduced to add new features/remove previously deprecated features. Bugfixes could potentially also introduce breaking changes so may also lead to a major version change.

Minor versions

Minor versions are released for major performance improvements or important new features. They may also be used before a major feature is added to encourage stability of released versions.

Really minor versions

RMVs are used for bug fixes that do not change interfaces or introduce new features.

Clone this wiki locally