DarkRadiant Release Mechanics: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
New page: == Versions == DarkRadiant is using the '''major.minor.revision''' scheme for assigning version numbers to releases, e.g. 0.9.5, 1.0.2, 1.1.0, etc. * The '''major''' version number is in...
 
Line 11: Line 11:


=== Pre-release Versions ===
=== Pre-release Versions ===
Sometimes, before releasing a new version, it's justified to package an pre-release version for the team to test internally. Even though these releases are generally not released to the public they need to be numbered correctly, such that bug reports can be associated with the correct release number. The term "preN" is appended to the version to tag it as pre-release, e.g. 1.2.0pre1, 1.4.0pre3.  
Sometimes, before releasing a new version, it's justified to package a pre-release version for the team to test internally. Even though these releases are generally not released to the public they still need to be numbered correctly, such that bug reports from testers can be associated with the correct release number.  
 
The term "preN" is appended to the version to tag it as pre-release, e.g. 1.2.0pre1, 1.4.0pre3.  


Usually, such pre-releases are created every time at least the minor number is incremented, for simple bugfixes it's usually not necessary to package a pre-release. Often there are a series of pre-release versions before the actual version is released to the public, so the number N in "preN" is simply incremented for each new pre-release to distinguish them.
Usually, such pre-releases are created every time at least the minor number is incremented, for simple bugfixes it's usually not necessary to package a pre-release. Often there are a series of pre-release versions before the actual version is released to the public, so the number N in "preN" is simply incremented for each new pre-release to distinguish them.

Revision as of 07:35, 10 March 2010

Versions

DarkRadiant is using the major.minor.revision scheme for assigning version numbers to releases, e.g. 0.9.5, 1.0.2, 1.1.0, etc.

  • The major version number is increased every time a milestone is reached in terms of functionality or design.
  • The minor version number is increased every time a significantly large feature (or several large features) are added.
  • The revision number is to be increased for bugfixes or other stability releases.

Important: at least one number is changed for each release - no way two releases are carrying the same triple of major.minor.revision numbers.

Note: the term "revision" in the scheme is not related to the SVN revision number.

Pre-release Versions

Sometimes, before releasing a new version, it's justified to package a pre-release version for the team to test internally. Even though these releases are generally not released to the public they still need to be numbered correctly, such that bug reports from testers can be associated with the correct release number.

The term "preN" is appended to the version to tag it as pre-release, e.g. 1.2.0pre1, 1.4.0pre3.

Usually, such pre-releases are created every time at least the minor number is incremented, for simple bugfixes it's usually not necessary to package a pre-release. Often there are a series of pre-release versions before the actual version is released to the public, so the number N in "preN" is simply incremented for each new pre-release to distinguish them.

Windows Package Names

Since 0.9.9 the Windows release of DarkRadiant is shipped for both 32 bit (x86) and 64 bit platforms (x64). Users should be able to tell the target platform from the download file name:

  • darkradiant-1.2.0.exe (x86)
  • darkradiant-1.2.0.x64.exe (x64)

Pre-Release packages look like this:

  • darkradiant-1.2.0pre1.exe (x86)
  • darkradiant-1.2.0pre1.x64.exe (x64)

Since it's become practice to release a zipped no-installer version for each release, there is a naming convention for these ZIP files as well.

  • darkradiant-1.2.0.zip (x86)
  • darkradiant-1.2.0.x64.zip (x64)

How to create a Release (Windows)

This should describe how to create a Windows release from your working copy. This guides assumes that you have a working build environment and the most recent trunk checked out to your hard drive in

C:\Games\DarkRadiant

(It's perfectly possible to work with other folders, but the available tool scripts in SVN are geared towards using the C:\Games\ path.)

Further, to compile a windows installer you'll need the free InnoSetup installed on your machine and associated to the .iss file extension (which is the default). Grab the latest version and install it on your system.

Clean Your Installation

To make sure any remnants of previous builds or releases are removed from your install/ folder, it's best to remove the DarkRadiant.exe/.pdb/.lib/.exp/.suo files from install/ and completely delete the install/modules/ and install/plugins/ folders.

Adjust the Version

  • Open Visual Studio and the DarkRadiant solution.
  • Open the version header file version.h (it can be found in the "include" project in Visual Studio's solution explorer) and adjust the version number on that file, e.g.
#define RADIANT_VERSION "1.2.0"

Build the Solution

  • Choose "Release" as Solution Configuration.
  • Select the desired target platform (Win32 or x64) from the Solution Platform dropdown in the toolbar.
  • Hit Build > Rebuild Solution to clear all previous intermediate files and compile DarkRadiant from scratch.
  • After compilation check the Output Window at the bottom if any "failed" builds are reported.

Copy the Installation Binaries

  • Open Windows Explorer, go to C:\Games\DarkRadiant\tools\scripts and run either copy_install_files.cmd (for x86 builds) or copy_install_files.x64.cmd (for 64 bit targets). This will copy all the necessary binaries and config files from your SVN working copy and put them into C:\Games\DarkRadiant_install (x86) or C:\Games\DarkRadiant_install (x64).

Create the Installer

  • The small script in the previous step also launches the InnoSetup wizard with the correct innosetup .iss script, so you should see a InnoSetup window open by this time.
  • If InnoSetup isn't launched for you, go to C:\Games\DarkRadiant\tools\innosetup and double-click the correct .iss file (darkradiant.iss or darkradiant.x64.iss). If that isn't working either, launch InnoSetup manually and open the .iss file from there.
  • Once the InnoSetup window has appeared, adjust the version numbers in the script window:
    • In [Setup], adjust AppVerName=DarkRadiant 1.2.0 to the correct version.
    • In [Setup], adjust DefaultGroupName=DarkRadiant 1.2.0
    • In [Setup], adjust OutputBaseFilename=darkradiant-1.1.0 (this is the installer EXE's name)
    • [Optional]: If you are working in a different path than C:\Games\DarkRadiant, adjust the paths in the [Files] section.
  • Hit the green play button at the top to compile the installer package.
  • The installer is started, you can cancel that immediately.
  • The package has been placed in C:\Games\DarkRadiant\tools\innosetup\<packagename>.exe

Upload the Package to Sourceforge

To be written

Links