Release Procedure ‐ Running the Packaging Scripts - MegaMek/megamek GitHub Wiki
The procedure for generating a release is nearly the same for each project.
- Go to the project's releases page:
https://github.com/MegaMek/(projectname)/releases/new
. - Set the tag version to the version number (always use the format
vX.XX.XX
). - Add the release name in the format:
vX.XX.XX-Development
. - Click the 'Generate Release Notes' button to automatically generate the list of changes.
-
From the Gradle menu in IntelliJ IDEA, navigate to
MekHQ -> Tasks -> build -> CleanAll
.
Update the version number in the following file:
megamek/src/megamek/resources/Version.properties
Also update the following history files:
-
MegaMek:
docs/history.txt
-
MegaMekLab:
docs/history.txt
-
MekHQ:
docs/history.txt
Commit the changes with the message:
Development snapshot <v0.XX.XX>
- To build releases for all packages at once, run the
buildAllPackages
task in the Gradle menu underTasks -> Distribution -> MekHQ
. - The packages will be found in the
build/distributions
directory.
Unzip all the releases and run each one to ensure they launch properly. Confirm none of these files or the mmconf folder for each project are in the archives. If they are, delete them and open an issue.
- clientsettings.xml
- gameoptions.xml
- megameklab.properties
- megameklab.properties.bak
- mhq.preferences
- mm.preferences
- mml.preferences
If testing is successful, upload all packages to their appropriate repositories.
Update the following file:
megamek/src/megamek/resources/Version.properties
Also update the history files:
-
MegaMek:
docs/history.txt
-
MegaMekLab:
docs/history.txt
-
MekHQ:
docs/history.txt
This will automatically update the package version in Gradle as well.
Increment the version numbers using the following schema:
-
Format:
X.AA.BB
- X: Increments to 1 once a final version of MegaMek is released.
- AA: Increments with a change in Java version.
-
BB: Increments by
.01
for subversions. Use the plain version number without any suffix (e.g.,50.06
not50.06-SNAPSHOT
). Commit and push with the message:
Ready to Develop<v0.XX.X>
Note that version information is automatically generated during PR and Nightly builds.
Complete all release notes and review them for accuracy. Prepare for distribution via social media and other channels.
Ensure all tasks are complete before publishing. Once published, the release will be publicly available.
Share the release notes and announcements on the following platforms:
- Official Website
- MegaMek Subforum on the official forums
- Discord (Post an
@everyone
announcement) - Share links to the release notes on:
- Battletech channel on Reddit
- Facebook MegaMek channels