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
.
Remove -SNAPSHOT
from the version number to set the release version. This change needs to be made in the following files:
-
MegaMek:
src/megamek/SuiteConstants.java
docs/history.txt
MegaMekRoot/build.gradle
-
MegaMekLab:
docs/history.txt
MegaMekLabRoot/build.gradle
-
MekHQ:
docs/history.txt
MekHQRoot/build.gradle
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.
November 2024 - The build packages are adding the local preferences to the package and need to be deleted before uploading.
Delete the following from each zip if present.
- 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.
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.
Add -SNAPSHOT
to the end of the version number for the development version. Update the same files as in Step 3, and add a new section to the docs/history.txt
files. Commit and push with the message:
Ready to Develop <v0.XX.X>
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