Difference between revisions of "Releasing Products"

From AlliedModders Wiki
Jump to: navigation, search
(Updating the Metamod:Source Site)
(Updating the Metamod:Source Site)
Line 122: Line 122:
 
  </li>
 
  </li>
 
  <li>Edit the <tt>mmsource.py</tt> file with your favorite text editor. Update the <tt>latest</tt> version number in the <tt>downloads</tt> function.  If this is a new major release (1.X.0), update the <tt>stable</tt> and <tt>devel</tt> version numbers in the <tt>downloads</tt> and <tt>snapshots</tt> functions.</li>
 
  <li>Edit the <tt>mmsource.py</tt> file with your favorite text editor. Update the <tt>latest</tt> version number in the <tt>downloads</tt> function.  If this is a new major release (1.X.0), update the <tt>stable</tt> and <tt>devel</tt> version numbers in the <tt>downloads</tt> and <tt>snapshots</tt> functions.</li>
<li>Edit the <tt>templates/mmsource/downloads.html</tt> file and update all Mercurial links with the tagged changeset ID for this release.</li>
 
 
  <li>Edit the <tt>templates/mmsource/navbar.html</tt> file and replace all instances of the old version with the new one.
 
  <li>Edit the <tt>templates/mmsource/navbar.html</tt> file and replace all instances of the old version with the new one.
 
  <li>Run the following command:
 
  <li>Run the following command:

Revision as of 17:01, 25 August 2013

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. Edit the build_type file and change the "dev" string to "rel" (tools/buildbot/build_type for SourceMod, support/buildbot/build_type for Metamod:Source).
  5. Edit product.version to remove the -dev tag.
  6. Commit the changes.
  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 and update the GeoLite Country data file.

    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. Download the latest GeoLite Country binary file from http://dev.maxmind.com/geoip/geolite
    6. Extract the GeoIP.dat and replace the existing copy in addons/sourcemod/configs/geoip
    7. Repackage the folders 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 major 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. Download the latest GeoLite Country binary file from http://dev.maxmind.com/geoip/geolite
    6. Extract the GeoIP.dat and replace the existing copy in addons/sourcemod/configs/geoip
    7. Repackage the folders using the correct compression types (.tar.gz for Linux, .zip for Windows).
  5. The build is done!

Releasing to Mirrors

  1. Log into web01 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-windows.zip or mmsource-1.8.0-linux-tar.gz.
  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.8.7 release:

    ./mirror.pl 4 1.8.7 mmsource-1.8.7-linux.zip
    ./mirror.pl 4 1.8.7 mmsource-1.8.7-windows.tar.gz
    ./mirror.pl 4 1.8.7 mmsource-1.8.7-mac.tar.gz
    

    These commands mirrored the SourceMod 1.4.0 release:

    ./mirror.pl 2 1.4.0 sourcemod-1.4.0-linux.tar.gz
    ./mirror.pl 2 1.4.0 sourcemod-1.4.0-windows.zip
    ./mirror.pl 2 1.4.0 sourcemod-1.4.0-mac.zip
    
  5. 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.

  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. Don't forget to add -dev.
  3. Change the tools/buildbot/build_type (SourceMod) or support/buildbot/build_type (Metamod:Source) contents back to "dev".
  4. Commit and push.

Updating the SourceMod Site

  1. 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.
  2. Jump to the sourcemod account by logging into iroh as yourself:
    /scripts/amjump sourcemod
    cd /groups/sourcemod
    
  3. 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.
  4. Update ~/compiler-1.x to the latest minor version, where x is the major version number.
  5. Run ~/scripts/purge_old_builds.pl, then edit its entry for 1.x.y, where x = this major release, and y = the new minor version.
  6. Exit out of the sourcemod account.
  7. 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.

Updating the Metamod:Source Site

  1. Jump to the alliedmodders account by logging into web01 as yourself:
    /scripts/amjump alliedmodders
    cd /groups/alliedmodders/hub/amhub
    
  2. Edit the mmsource.py file with your favorite text editor. Update the latest version number in the downloads function. If this is a new major release (1.X.0), update the stable and devel version numbers in the downloads and snapshots functions.
  3. Edit the templates/mmsource/navbar.html file and replace all instances of the old version with the new one.
  4. Run the following command:
    touch ../run/apache.wsgi
    
  5. Post news. Do this by making a post in this forum, which is private. LOOK AT OLDER POSTS - you need to write valid XHTML!
  6. Exit out of the alliedmodders account.

Updating Translations

This section applies to SourceMod major releases. In order to update the translator tool, shell in as the "sourcemod" user. Find the translation folder. Run the following steps:

  • cd sourcemod-central
  • hg pull -u
  • cd ..
  • ./sync_lang_files.pl sourcemod-central/translations

Any languages with a non-green status will not be exported, so a few weeks before a release it is a good idea to post news asking for translators.