Releasing Products
This is an internal page for doing AlliedModders product releases.
Contents
Making Builds
- Once you are absolutely sure the product is ready for a release...
- Jump to a Linux system, check out the source tree.
- Update the changelog (changelog.txt for SourceMod, support/changelog.txt for Metamod:Source).
- For Metamod:Source, edit support/buildbot/bootstrap.pl. Change the file like this changeset.
- For SourceMod, edit tools/buildbot/build_type. Change the "dev" string to "rel".
- For SourceMod, edit product.version to remove the -dev tag.
- Commit the changes. Do not push.
- For Metamod:Source, be at the top level of the tree, and run:
support/versionchanger.pl
Once you're done, use hg diff to verify that version numbers have been bumped. Commit the change. - Push. Watch the waterfall page until builds are complete.
Post-Build Work
- Grab the binaries from the drop site (MM:S drop site, SourceMod drop site). It will be the latest package.
- Install the packages on both Linux and Windows. MAKE SURE THE VERSIONS ARE CORRECT. THERE SHOULD BE NO -dev TAG.
Metamod:Source checks:meta version
SourceMod checks:
sm plugins list sm exts list sm version
- If the versions are not correct, do not release.
- For SourceMod, you need to add the language translation packs.
If this is a major release (1.X.0), there is no prior pack. Make one:- Extract both the tar.gz and zip files to separate folders.
- Visit the translator status page.
- Click "export languages.cfg" - save the new version to addons/sourcemod/configs/, overwriting the old one.
- Click "export" next to each language that is finished. Extract the folder to addons/sourcemod/translations/. For example, if you extract Spanish, you should have addons/sourcemod/translations/es/ complete with ML files.
- Repackage thefolders using the correct compression types (.tar.gz for Linux, .zip for Windows).
If this is a minor release (1.X.Y where Y != 0), there is already a prior pack. Add it in:
- Extract both the tar.gz and zip files to separate folders.
- Download the last minor release from the same branch as this release.
- Copy the addons/sourcemod/configs/languages.cfg file from the old release over the new one.
- Copy the addons/sourcemod/translations/ sub-folders from the old release over to the new one.
- Repackage thefolders using the correct compression types (.tar.gz for Linux, .zip for Windows).
- The build is done!
Releasing to Mirrors
- Log into iroh as yourself. Upload your final builds to your home directory.
- Run:
/scripts/amjump mirror cd /scripts/mirror
- Copy your final builds from your home directory into the mirror folder. Rename them to release names, for example: sourcemod-1.1.2.zip or mmsource-1.8.0.zip.
- Mirror distribution is done with the following command:
./mirror.pl <projectID> <releaseName> <file>
Metamod:Source's ID is 4, SourceMod's ID is 2. For example, these commands mirrored the Metamod:Source 1.7.0 release:
./mirror.pl 4 1.7.0 mmsource-1.7.0.zip ./mirror.pl 4 1.7.0 mmsource-1.7.0.tar.gz
These commands mirrored the last SourceMod release:
./mirror.pl 2 1.1.1 sourcemod-1.1.1.tar.gz ./mirror.pl 2 1.1.1 sourcemod-1.1.1.zip
- Type exit to get back to your user account. You're done!
Cleaning up the Tree
It's time to make sure the tree is set for future development.
- Run hg tag on the last revision of the release. Usually this is the changeset that bumped versions, and usually this is tip. For example, Metamod:Source:
hg tag mmsource-1.7.2
SourceMod:
hg tag sourcemod-1.1.2
- Bump the minor version in product.version and modules.version at the root of the tree.
- Change the tools/buildbot/build_type contents back to "dev"
- Run versionchanger.pl again, from the root of the tree (see section 1, step 6). Use --buildstring="-dev" as a parameter.
- Commit and push.
Updating the SourceMod Site
- Visit a Release Notes page. Copy the contents, make a new one for your specific release. Update the changelog, relnote anything big and important. Link back to it from the "main" relnotes page.
- Jump to the sourcemod account by logging into iroh as yourself:
/scripts/amjump sourcemod cd /home/groups/sourcemod
- Edit the public_html/downloads.php file with your favorite text editor. Edit all instances of the old version with the new one. Make sure to get every link, including relnotes.
- Post news. If you deviate from normal style, don't forget links for downloads, upgrading, and relnotes. It also helps to say "this is backwards compatible" because users will always ask.
- Exit out of the sourcemod account.
Updating the Metamod:Source Site
- Jump to the sourcemm account by logging into iroh as yourself:
/scripts/amjump sourcemm cd /home/groups/sourcemm
- Edit the public_html/templates/content_downloads.tpl file with your favorite text editor. Edit all instances of the old version with the new one. Update all Mercurial links with the tagged changeset ID for this release.
- Post news. Do this by making a post in this forum, which is private. LOOK AT OLDER POSTS - you need to write valid XHTML!
- Exit out of the sourcemm account.