Difference between revisions of "Releasing Products"

From AlliedModders Wiki
Jump to: navigation, search
(New page: This is an internal page for doing AlliedModders product releases. =Making Builds= <ol> <li>Once you are '''absolutely sure''' the product is ready for a release...</li> <li>Jump to a L...)
 
Line 84: Line 84:
 
</ol>
 
</ol>
  
=Updating Sites=
+
=Cleaning up the Tree=
 +
It's time to make sure the tree is set for future development.
 +
 
 +
<ol>
 +
<li>Run <tt>hg tag</tt> on the last revision of the release.  Usually this is the changeset that bumped versions, and usually this is <tt>tip</tt>.  For example, Metamod:Source:
 +
<pre>hg tag mmsource-1.7.2</pre>
 +
SourceMod:
 +
<pre>hg tag sourcemod-1.1.2</pre>
 +
</li>
 +
<li>Bump the minor version in <tt>product.version</tt> and <tt>modules.version</tt> at the root of the tree.</li>
 +
<li>Run <tt>versionchanger.pl</tt> again, from the root of the tree (see section 1, step 6).</li>
 +
<li>Commit and push.</li>
 +
</ol>

Revision as of 16:45, 26 February 2009

This is an internal page for doing AlliedModders product releases.

Making Builds

  1. Once you are absolutely sure the product is ready for a release...
  2. Jump to a Linux system, check out the source tree.
  3. Update the changelog (changelog.txt for SourceMod, support/changelog.txt for Metamod:Source).
  4. For Metamod:Source, edit support/buildbot/bootstrap.pl. For SourceMod, edit tools/buildbot/bootstrap.pl. Change the file like this changeset. In both files this is the last line. It must be commented so BuildBot does not run the versionchanger.pl script.
  5. Once bootstrap.pl has been edited, commit the change. Do not push.
  6. For Metamod:Source, be at the top level of the tree, and run:
    support/versionchanger.pl
    

    For SourceMod, be at the top level of the tree, and run:

    tools/versionchanger.pl
    
    Once you're done, use hg diff to verify that version numbers have been bumped. Commit the change.
  7. Push. Watch the waterfall page until builds are complete.

Post-Build Work

  1. Grab the binaries from the drop site (MM:S drop site, SourceMod drop site). It will be the latest package.
  2. 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
    
  3. If the versions are not correct, do not release.
  4. 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:
    1. Extract both the tar.gz and zip files to separate folders.
    2. Visit the translator status page.
    3. Click "export languages.cfg" - save the new version to addons/sourcemod/configs/, overwriting the old one.
    4. 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.
    5. 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:

    1. Extract both the tar.gz and zip files to separate folders.
    2. Download the last minor release from the same branch as this release.
    3. Copy the addons/sourcemod/configs/languages.cfg file from the old release over the new one.
    4. Copy the addons/sourcemod/translations/ sub-folders from the old release over to the new one.
    5. Repackage thefolders using the correct compression types (.tar.gz for Linux, .zip for Windows).
  5. The build is done!

Releasing to Mirrors

  1. Log into iroh as yourself. Upload your final builds to your home directory.
  2. Run:
    /scripts/amjump mirror
    cd /scripts/mirror
    
  3. 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.
  4. 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
    

Cleaning up the Tree

It's time to make sure the tree is set for future development.

  1. 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
  2. Bump the minor version in product.version and modules.version at the root of the tree.
  3. Run versionchanger.pl again, from the root of the tree (see section 1, step 6).
  4. Commit and push.