OGRE Wiki
Support and community documentation for Ogre3D
Ogre Forums
ogre3d.org
Log in
Username:
Password:
CapsLock is on.
Remember me (for 1 year)
Log in
Home
Tutorials
Tutorials Home
Basic Tutorials
Intermediate Tutorials
Mad Marx Tutorials
In Depth Tutorials
Older Tutorials
External Tutorials
Cookbook
Cookbook Home
CodeBank
Snippets
Experiences
Ogre Articles
Libraries
Libraries Home
Alternative Languages
Assembling A Toolset
Development Tools
OGRE Libraries
List of Libraries
Tools
Tools Home
DCC Tools
DCC Tutorials
DCC Articles
DCC Resources
Assembling a production pipeline
Development
Development Home
Roadmap
Building Ogre
Installing the Ogre SDK
Setting Up An Application
Ogre Wiki Tutorial Framework
Frequently Asked Questions
Google Summer Of Code
Help Requested
Ogre Core Articles
Community
Community Home
Projects Using Ogre
Recommended Reading
Contractors
Wiki
Immediate Wiki Tasklist
Wiki Ideas
Wiki Guidelines
Article Writing Guidelines
Wiki Styles
Wiki Page Tracker
Ogre Wiki Help
Ogre Wiki Help Overview
Help - Basic Syntax
Help - Images
Help - Pages and Structures
Help - Wiki Plugins
Toolbox
Freetags
Categories
List Pages
Structures
Trackers
Statistics
Rankings
List Galleries
Ogre Lexicon
Comments
History: Preparing a new Release
View page
Source of version: 8
(current)
This page describes the general procedure for building a new release of Ogre. {maketoc} !! Update the version number and documentation: # Update the OGRE_VERSION_* definitions in OgreMain/include/OgrePrerequisites.h # 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: +{CODE(wrap="1",colors="bash")} hg log --template '<li>{desc}</li>\n' -b branch_name -r previous_release_tag: > new_changes {CODE} + As an example, let's say you're doing the release of v1.7.2, your command would be: +{CODE(wrap="1",colors="bash")} hg log --template '<li>{desc}</li>\n' -b v1-7 -r v1-7-1: > new_changes {CODE} + 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. # 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: # Make sure you're completely up to date with the master repository and have committed the changes above. # Tag it: +{CODE(wrap="1",colors="bash")} hg tag vM-m-p {CODE} + Where M = major version, m = minor version and p = patch version # Push all your changes to the master # 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 '{MONO()}~np~makesourcerelease <tag>~/np~{MONO}' to use it. !!! Linux / Mac You need Doxygen and Dot (Graphviz) installed. {CODE(wrap="1",colors="bash")} #!/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 {CODE} !!! Windows You need Doxygen, Dot (Graphviz) and 7-Zip on your path. {CODE(wrap="1",colors="winbatch")} @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 {CODE} !! Build the SDKs Each platform has a script inside the SDK/ folder for this, together with instructions, please see those for details. !! Update website # Upload the source and SDK releases to Sourceforge # Edit the downloads page via Wordpress to link to the new files. # Post an announcement on the News (Wordpress) with a summary in the main section, and the changelog after the break.
Search by Tags
Search Wiki by Freetags
Latest Changes
One Function Ogre
IDE Eclipse
FMOD SoundManager
HDRlib
Building Ogre V2 with CMake
Ogre 2.1 FAQ
Minimal Ogre Collision
Artifex Terra
OpenMB
Advanced Mogre Framework
...more
Search
Find
Advanced
Search Help
Online Users
332 online users