Skip to content

Creating a new release for xmage

LevelX2 edited this page Dec 26, 2018 · 16 revisions

This documents describes the steps that has a developer to to, to release a new public version of XMage. It distinguishes technically between a minor and a major release change. Minor release changes can be used if no changes are done concerning the interfaces of the client and server part of xmage. A major release prevents the usage of older clients with another major release number, so problems with that are prevented. Otherwise there are no fixed rules when and why to do minor or major releases.

Development steps

1. Updating the version number

Change the version information in MageVersion.java. Normally MAGE_VERSION_PATCH for a major and MAGE_VERSION_MINOR_PATCH for a minor patch.

2. Update the DB version if neccessary

CARD_CONTENT_VERSION

The file CardRepository.java includes the CARD_CONTENT_VERSION number, that should be increased by 1, if the released version has a changed set of cards (nomally cards were added). So if the client connects to the new server version, he can request the updated card DB content and the client card editor is showing all available cards.

CARD_DB_VERSION

The file CardRepository.java includes also a CARD_DB_VERSION number, that needs to be increased, if the db structure of the cards DB was changed. That only happens rarely.

3. Update the version number in the project files (pom.xml) of all XMage projects

ONLY NEEDED FOR MAJOR RELEASE

For this change one can use the pearl script version-bump. If executed it shows the current version number (e.g. "1.4.32") and you are requested to enter the new major version number (e.g. "1.4.33"). The script than automatically updated all the pom.xml files of all projects with the new number.

4. Create a release tag

Create a new release tag with the new release number with a name in the form "xmage_1.4.32V0". The "1.4.32" means the major release number and the "0" behind the "V" indicates the minor release number. This tag is late needed to upload the new release file to github and allow users to download the new release from github.

Clone this wiki locally