|
|
(43 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | This is an internal page for doing AlliedModders product releases.
| + | =Releasing SourceMod= |
− | | + | <li>Create a git branch.</li> |
− | =Making Builds= | + | <li>Update master.cfg in buildbot buildmaster. Don't forget to push the change to github.</li> |
− | <ol>
| + | <li>mount -orw /mnt/downloads on web01.</li> |
− | <li>Once you are '''absolutely sure''' the product is ready for a release...</li>
| + | <li>mkdir /mnt/downloads/smdrop/<new release folder>, chmod 775 it, fix ownership.</li> |
− | <li>Jump to a Linux system, check out the source tree.</li>
| + | <li>mount -oro /mnt/downloads.</li> |
− | <li>Update the changelog (<tt>changelog.txt</tt> for SourceMod, <tt>support/changelog.txt</tt> for Metamod:Source).</li>
| + | <li>Fix sm_commit_log by updating last ~N master builds to be the new stable branch.</li> |
− | <li>For Metamod:Source, edit <tt>support/buildbot/bootstrap.pl</tt>. For SourceMod, edit <tt>tools/buildbot/bootstrap.pl</tt>. Change the file like [http://hg.alliedmods.net/sourcemod-1.1/rev/4bfc362ba419 this changeset]. In both files this is the last line. It must be commented so BuildBot does not run the <tt>versionchanger.pl</tt> script.</li>
| + | <li>Update ~sourcemod downloads.php.</li> |
− | <li>Once <tt>bootstrap.pl</tt> has been edited, commit the change. Do not push.</li>
| + | <li>Update ~sourcemod vbcompiler.php.</li> |
− | <li>For Metamod:Source, be at the top level of the tree, and run:
| + | <li>Update forums newpost.php and editpost.php (search for ccversion). Do this on staging, create a production PR in bitbucket, then pull.</li> |
− | <pre>
| + | <li>Create a ~sourcemod/compiler-1.<version> folder, drop spcomp + includes there.</li> |
− | support/versionchanger.pl
| + | <li>Add an entry to web-commit-updater/updater.php for the new version.</li> |
− | </pre>
| + | <li>Force builds on the new dev and stable branches via pushbuild.txt.</li> |
− | For SourceMod, be at the top level of the tree, and run:
| + | <li>Add a script for the new version in ~sourcemod/update.</li> |
− | <pre>
| + | <li>Change the ~sourcemod/compiler symlink to the new version.</li> |
− | tools/versionchanger.pl
| + | <li>Update hardcoded verison in ~sourcemod compiler.php.</li> |
− | </pre>
| + | <li>git checkout new branch in ~sourcemod/sourcemod, then generate.py in /scripts/sourcepawn/exp/docgen/generate</li> |
− | Once you're done, use <tt>hg diff</tt> to verify that version numbers have been bumped. Commit the change.</li>
| |
− | <li>Push. Watch the waterfall page until builds are complete.</li>
| |
− | </ol>
| |
− | | |
− | =Post-Build Work=
| |
− | <ol>
| |
− | <li>Grab the binaries from the drop site ([http://metamodsource.net/mmsdrop/ MM:S drop site], [http://sourcemod.net/smdrop/ SourceMod drop site]). It will be the latest package.</li>
| |
− | <li>Install the packages on both Linux and Windows. '''MAKE SURE THE VERSIONS ARE CORRECT. THERE SHOULD BE NO -dev TAG.'''
| |
− | <br><br>
| |
− | Metamod:Source checks:
| |
− | <pre>
| |
− | meta version
| |
− | </pre>
| |
− | SourceMod checks:
| |
− | <pre>
| |
− | sm plugins list
| |
− | sm exts list
| |
− | sm version
| |
− | </pre></li>
| |
− | <li>If the versions are not correct, do not release.</li>
| |
− | <li>For SourceMod, you need to add the language translation packs.
| |
− | <br><br>
| |
− | '''If this is a major release (1.X.0), there is no prior pack. Make one:'''
| |
− | <ol>
| |
− | <li>Extract both the tar.gz and zip files to separate folders.</li>
| |
− | <li>Visit the [http://www.sourcemod.net/translator/?go=translate&op=status translator status page].</li>
| |
− | <li>Click "export languages.cfg" - save the new version to <tt>addons/sourcemod/configs/</tt>, overwriting the old one.</li>
| |
− | <li>Click "export" next to each language that is finished. Extract the folder to <tt>addons/sourcemod/translations/</tt>. For example, if you extract Spanish, you should have <tt>addons/sourcemod/translations/es/</tt> complete with ML files.</li>
| |
− | <li>Repackage thefolders using the correct compression types (.tar.gz for Linux, .zip for Windows).</li>
| |
− | </ol>
| |
− | <b>If this is a minor release (1.X.Y where Y != 0), there is already a prior pack. Add it in:</b>
| |
− | <ol>
| |
− | <li>Extract both the tar.gz and zip files to separate folders.</li>
| |
− | <li>Download the last minor release from the same branch as this release.</li>
| |
− | <li>Copy the <tt>addons/sourcemod/configs/languages.cfg</tt> file from the old release over the new one.</li>
| |
− | <li>Copy the <tt>addons/sourcemod/translations/</tt> sub-folders from the old release over to the new one.</li>
| |
− | <li>Repackage thefolders using the correct compression types (.tar.gz for Linux, .zip for Windows).</li>
| |
− | </ol>
| |
− | <li>The build is done!</li>
| |
− | </ol>
| |
− | | |
− | =Releasing to Mirrors=
| |
− | <ol>
| |
− | <li>Log into iroh as yourself. Upload your final builds to your home directory.</li>
| |
− | <li>Run:
| |
− | <pre>
| |
− | /scripts/amjump mirror
| |
− | cd /scripts/mirror
| |
− | </pre>
| |
− | </li>
| |
− | <li>Copy your final builds from your home directory into the mirror folder. Rename them to release names, for example: <tt>sourcemod-1.1.2.zip</tt> or <tt>mmsource-1.8.0.zip</tt>.</li>
| |
− | <li>Mirror distribution is done with the following command:
| |
− | <pre>
| |
− | ./mirror.pl <projectID> <releaseName> <file>
| |
− | </pre>
| |
− | Metamod:Source's ID is 4, SourceMod's ID is 2. For example, these commands mirrored the Metamod:Source 1.7.0 release:
| |
− | <pre>
| |
− | ./mirror.pl 4 1.7.0 mmsource-1.7.0.zip | |
− | ./mirror.pl 4 1.7.0 mmsource-1.7.0.tar.gz
| |
− | </pre>
| |
− | These commands mirrored the last SourceMod release:
| |
− | <pre>
| |
− | ./mirror.pl 2 1.1.1 sourcemod-1.1.1.tar.gz
| |
− | ./mirror.pl 2 1.1.1 sourcemod-1.1.1.zip
| |
− | </pre>
| |
− | </li> | |
− | </ol>
| |
− | | |
− | =Updating Sites=
| |