Go to QuArK Web Site
Snapshots & Distributions
Updated 02 May 2021
Upper levels:
QuArK Information Base
4. The Source Code

 4.11. Snapshots & Distributions

 [ Prev - Up - Next ] 

This section describes QuArK distribution policy, tools and methodology.


 Index


 QuArK Release Policy

Peter Brett - 05 Apr 2018   [ Top ] 

QuArK has two types of releases: distributions and snapshots.

  1. Distributions are released through the SourceForge Release System. A distribution consists of the following files:
    •  quark-win32-*version*.exe  - a Nullsoft Scriptable Install System executable containing the QuArK Windows binaries with a bundled Python micro-distribution and the Infobase.
    •  quark-win32-*version*.zip  - a zip archive containing the QuArK Windows binaries with a bundled Python micro-distribution and the Infobase.
    •  quark-src-*version*.zip  - a zip archive containing full exports of the  infobase ,  runtime  and  source  CVS modules.
    •  quark-help-*version*.zip  - a zip archive containing the compiled Infobase.
    You will need to have "Release Technician" permissions on the QuArK SourceForge project to be able to release a distribution.
    N.B. that version numbers are in the format  #.#.#state#  where 'state' can be one of 'rel', 'beta', or 'alpha'. The numbers before the current state are the major and minor versions, and the number after the state is the release number at that version/state. Examples:
    •  6.4.0alpha1 . Note also that version numbers should be unique.
    •  6.3.0rel4 
  2. Snapshots are released on QuArK's SourceForge webspace. A snapshot consists of the following files:
    •  quark-win32-*date*.zip  - a zip archive containing the QuArK Windows binaries with a bundled Python micro-distribution and the Infobase.
    •  quark-src-*date*.zip  - a zip archive containing full exports of the  infobase ,  runtime  and  source  CVS modules.
    •  quark-help-*date*.zip  - a zip archive containing the compiled Infobase.
    You will need to have access to the QuArK project's SourceForge webspace (i.e. a SourceForge shell account is required) to be able to release a snapshot.
    N.B. that dates should be in the format  YYYYMMDD .

Typically, QuArK snapshots are released every couple of weeks, although this may vary depending on how much work is being done. If two weeks go by with very little CVS activity, there won't be much point in making a snapshot; equally, if things are frantic, it's likely we'll do snapshots more frequently. Also, it depends how much time the release technicians have available.

Distributions are done on a much less frequent basis, because they require much more work on the part of whoever's doing the releases.


 Releasing a Snapshot

Peter Brett, DanielPharos - 02 May 2021   [ Top ] 

Here's the process you might follow to prepare and release a snapshot. Before you'll be able to follow the process outlined below, you'll probably want to read File Release System - Offering Files for Download to know how to work with the SourceForge File Release System.

  1. Make a copy of the  runtime ,  source  and  infobase  directories you want to release.
  2. Build a QuArK binary from this source directory.
  3. Please save the QuArK.map file, if it was generated. This will allow converting from memory addresses back to Delphi functions if a crash is reported.
  4. Put the new QuArK binary in the main runtime directory (where it belongs).
  5. Make sure that there are no stray files in the runtime directory, such as generated .pyc files.
  6. If not done already, delete the old runtime\help and copy the output from the infobase build there instead.
  7. Zip up the directory, each to a different zip-file, using the scheme from 'QuArK Release Policy'. No fancy zip-compressions, please! Any plain old unzipper should be able to unzip the files. If possible, use the Windows XP built-in zip functionality; this creates a pretty common denominator zip-file.
  8. Create a new snapshot-release in the QuArK-package using the SourceForge File Release System. Name this release 'snapshot YYYY-MM-DD', and add the zip-files to that new release. Don't forget to set the 'specifics' on the files correctly!
  9. Make sure the new release is 'Active', and visible on the SourceForge website.

  10. You should also e-mail a release announcement to the development mailing list (quark-python@yahoogroups.com), something along the lines of: (I'm going to assume that the date is 31st August 2007)
    Subject: Snapshots 20070831
    
    New QuArK snapshots are now available from
    http://quark.sourceforge.net/
    
    - Compiled Infobase:
    http://quark.sourceforge.net/download/quark-help-20070831.zip
    - Full source code with Python 2.2.3:
    http://quark.sourceforge.net/download/quark-src-20070831.zip
    - Win32 binaries with Python 2.2.3:
    http://quark.sourceforge.net/download/quark-win32-20070831.zip
    

    Read through and summarize the NEWS.txt file to compile a changelog.
    It's also a good idea only to have four snapshots on the site at a time, so as to be sure not to exceed the storage quota. So delete the oldest snapshots if you need to.

 Releasing a Distribution

Peter Brett, DanielPharos - 01 May 2021   [ Top ] 

Once you've decided that you're ready to create a distribution, here's what you do.

  1. First, make sure you have access permissions to work with the SourceForge release system.
  2. Then work out what the version number is for this distribution (see 'QuArK Release Policy'). You'll probably need to discuss with other developers to decide what the state is going to be and whether to increment the the minor version, but for the sake of argument lets say the version number you come up with is '6.4.1beta3'.
  3. Perform a clean check-out from the source code repository, to make sure you're using the latest files without any uncommitted changes.
  4. For a distribution, it's necessary to update the version numbers in the QuArK executable. Go to the Project > Options > Version Info and update the numbers. Don't forget the copyright year, and the pre-release-flag!
    Also, some const's in  QkConsts.pas  need to be updated. Check them out and update them where needed:
      QuArKVersion
      QuArKMinorVersion
      QuArKCopyright
      QuArKUsedCompiler
      QuArKCompileDate
    
    (The  QuArKCompileDate  can be determined by using the date utility in utils\dateutil.)
    Additionally, there's two version indicators at the top in runtime/addons/defaults.qrk that might need updating as well:
      Version
      InternalVersion
    
  5. Make sure that the Project > Options > Directories/Conditionals: Conditional Defines are set correctly.
  6. Most of creating a distribution is similar to creating a snapshot. First, do steps 1 to 3 of 'Releasing a Snapshot', with the difference that you name the files with the '6.4.1beta3' instead of the date, so  quark-win32-20070831  becomes  quark-win32-6.4.1beta3 .
  7. Open up your local copy of  QuArK.nsi . You'll need to make some changes there:
    1. Update the version numbers:
      !define INSTALLER_EXENAME "quark-win32-6.4.1beta3.exe"
      !define PRODUCT_VERSION "6.4.1 beta 3"
      InstallDir "$PROGRAMFILES\QuArK 6.4.1 beta 3"
      
    2. Set the path to the files to create the installer with:
      !define BUILDDIR "C:\QuArK_installer_files"
      It is advisable to simply create this directory and copy the files into it manually.
    3. Set the path to the installer images:
      !define SPLASHDIR "C:\QuArK_installer_splash_image"
  8. If you are making an official release, don't forget to commit the updated  QuArK.nsi  file to the source code repository.
  9. Create the installer; see 'Creating the installer'.
  10. It's not a bad idea to run some tests at this point. Test the installer, and make sure the new release does not have any obvious bugs.
  11. Zip up the source and infobase directories just as with the snapshot. Again: no fancy zip-compressions!
  12. Now create the release in SourceForge (see 'Releasing a Snapshot' for more details about this).
  13. Create a news-announcement on the SourceForge-page.
  14. Tell the webmaster of the QuArK website to do the same. (It's probably smart to have similar text in both.)

 Creating the installer

DanielPharos - 01 May 2021   [ Top ] 

(I'm going to assume that you're running Windows.)

In preparation for creating the installer, you'll need to carry out a couple of preliminary steps.

  1. Download and install Nullsoft Scriptable Install System (NSIS) 2.0 beta 4 or higher from http://nsis.sourceforge.net.
  2. Checkout the  utils  module from QuArK CVS on SourceForge. This module contains the scripts and other files you'll need to be able to create the distribution.

There are several steps in creating the installer:

  1. Change "INSTALLER_EXENAME" to the name of the installer executable file.
  2. Change "PRODUCT_VERSION" to match the new version number.
  3. Change "InstallDir" to the new Program Files location.
  4. Create an empty folder (here we'll use "QuArK_installer_files" in the C:\ directory).
  5. Change "BUILDDIR" to the name of this new folder.
  6. Place the QuArK.exe, all runtime files and the help folder in the above folder.
  7. Create an empty folder (here we'll use "QuArK_installer_splash_image" in the C:\ directory).
  8. Copy the install_header.bmp and install_splash.bmp files from utils\nsis-dist-tools folder to the above folder.
  9. Run the  QuArK.nsi  script. If you selected this option during the NSIS installation, right-clicking the file should provide you with that option. If not, open up NSIS.exe to start program select "MakeNSISW (compiler interface)", and drag the  QuArK.nsi  file into the compiler window, or use the "File > Load Script" method to open this file.
  10. The finished QuArK installer will be place in the same location as this file, ready for distribution!

This will produce the installer executable in the same folder as where  QuArK.nsi  is located.


 Broadcasting the release

DanielPharos - 01 May 2021   [ Top ] 

There are some steps only the webmaster can perform, because it involves modifying things on the QuArK website. These are:

  1. Make sure there's a news-announcement on the SourceForge-page.
  2. If this is the new recommended build, mark it as such in SourceForge downloads.
  3. Add the new QuArK release to the website's databast.
  4. If this is the new recommended build, make sure that indicated on the website download page as well.
  5. Copy the news-announcement to the website, and publish it there too. Make sure to link to the correct download.
  6. And publish it on the quark-news mailing list as well.
  7. If needed, update the random-news-blurb about the latest release on the forums.
  8. Contact any mirror-sites, so they can update their downloads.
  9. Consider updating the release information on QuArK's Wikipedia page.


Copyright (c) 2021, GNU General Public License by The QuArK (Quake Army Knife) Community - http://quark.sourceforge.net/

 [ Prev - Top - Next ]