-
Notifications
You must be signed in to change notification settings - Fork 208
Release process
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.
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.
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. The stable repositories on Bintray will also be updated with the new release package.
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 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.
RMVs are used for bug fixes that do not change interfaces or introduce new features.