Skip to main content
Preparing a new Release        

This page describes the general procedure for building a new release of Ogre.

Update the version number and documentation:

  1. Update the OGRE_VERSION_* definitions in OgreMain/include/OgrePrerequisites.h
  2. Add a new section to Docs/ChangeLog.html and list all the changes since the last release. A good way to generate the base list is to use the hg command line:
    Copy to clipboard
    hg log --template '<li>{desc}</li>\n' -b branch_name -r previous_release_tag: > new_changes

    As an example, let's say you're doing the release of v1.7.2, your command would be:
    Copy to clipboard
    hg log --template '<li>{desc}</li>\n' -b v1-7 -r v1-7-1: > new_changes

    This will generate you a set of HTML list items which you can embed in the <ul></ul> section of the release notes - you'll probably want to tidy up or group some items.
  3. Commit your changes

Update the manual:


If there were manual changes, you need to generate the manual again and commit it. Details on generating the manual can be found in Building the manual.

Tag the release:

  1. Make sure you're completely up to date with the master repository and have committed the changes above.
  2. Tag it:
    Copy to clipboard
    hg tag vM-m-p

    Where M = major version, m = minor version and p = patch version
  3. Push all your changes to the master
  4. If for some reason you need to re-tag, you can use the -f option to replace the existing tag, but be aware this may cause confusion if someone else has already seen the previous tag.

Build the source releases:

I use scripts to build these, one on Linux / Mac (it's the same) and one on Windows. In both cases, you call 'makesourcerelease <tag>' to use it.

Linux / Mac


You need Doxygen and Dot (Graphviz) installed.

Copy to clipboard
#!/bin/bash # NOTE: You can set OGRE_RELEASE_CLONE_SOURCE to a local repo if you want to speed things up # This script will re-clone to a local folder for the release tag=$1 if [[ "$tag" == "" ]]; then echo No tag specified exit -1 fi foldername=ogre_src_$tag if [[ "$OGRE_RELEASE_CLONE_SOURCE" == "" ]]; then OGRE_RELEASE_CLONE_SOURCE=http://bitbucket.org/sinbad/ogre fi hg clone -r $tag $OGRE_RELEASE_CLONE_SOURCE $foldername # Build configure pushd $foldername # delete repo, we only want working copy rm -rf .hg # Gen docs cd Docs/src . makedocs.sh # remove unnecessary files cd ../api/html rm -f *.hhk *.hhc *.map *.md5 *.dot *.hhp *.plist *.xml ../*.tmp popd # tarball for Linux rm -f $foldername.tar.bz2 /bin/tar -cvhjf $foldername.tar.bz2 $foldername

Windows


You need Doxygen, Dot (Graphviz) and 7-Zip on your path.

Copy to clipboard
@echo off if "%1" == "" goto paramErr set tag=%1 set foldername=ogre_src_%tag% rem You can set OGRE_RELEASE_CLONE_SOURCE to a local repo if you want to speed things up if "%OGRE_RELEASE_CLONE_SOURCE%" == "" SET OGRE_RELEASE_CLONE_SOURCE=http://bitbucket.org/sinbad/ogre rem Clean down existing snapshot area echo Cleaning up %foldername%... rmdir /S/Q %foldername% rem Clone ogre from local copy (you should make sure this includes the tag) echo Cloning... hg clone -r %tag% %OGRE_RELEASE_CLONE_SOURCE% %foldername% rem Build configure pushd %foldername% rem delete repo, we only want working copy echo Remove repository... rmdir /S/Q .hg rem Gen docs cd Docs\src doxygen html.cfg rem remove unnecessary files cd ..\api\html del /Q/F *.hhk *.hhc *.map *.md5 *.dot *.hhp *.plist ..\*.tmp popd rem Make self-extracting zip del /Q/F %foldername%.exe rem create self-extracting 7zip archive 7z a -r -y -sfx7z.sfx %foldername%.exe %foldername% goto end :paramErr echo You must supply a tag name :end

Build the SDKs


Each platform has a script inside the SDK/ folder for this, together with instructions, please see those for details.

Update website

  1. Upload the source and SDK releases to Sourceforge
  2. Edit the downloads page via Wordpress to link to the new files.
  3. Post an announcement on the News (Wordpress) with a summary in the main section, and the changelog after the break.