wiki:AppVersionNew

Version 11 (modified by davea, 6 years ago) (diff)

--

Creating application versions

The create new applications versions:

  • Create the directory structure described below to store applications files
  • From the project's root directory, run ./bin/update_versions.

Application directory hierarchy

Application versions are stored in a directory hierarchy under apps/ in the project root directory. The hierarchy has the following structure:

apps/
  appname1/
    1.0/
      windows_intelx86/
        (files)
      windows_intelx86__cuda/
        (files)
      i686-apple-darwin/
        (files)
      ... other platforms
    1.1/
    ... other versions
  appname2/
  ... other apps

The version directories have names of the form PLATFORM or PLATFORMPLANCLASS (note that two underscores separate PLATFORM and PLAN_CLASS). The contents of a particular directory are:

  • application files
  • signature files (FILENAME.sig)
  • a "version description file", version.xml

The structure of version.xml is:

<version>
  <file>
    <physical_name>PNAME</physical_name>
    [ <main_program/> ]
    [ <copy_file/> ]
    [ <logical_name>LNAME</logical_name> ]
    [ <gzip/> ]
    [ <url>URL0</url> ]
    [ <url>URLn</url> ]
  </file>
  ... more <file>s

  [<dont_throttle/>]
</version>

File attributes include:

  • physical_name: the name of the file on disk.
  • main_program: designates the main program.
  • copy_file: the file is to be copied into the runtime directory on the client, rather than being linked to.
  • logical_name: if copy_file is present, the name of the file in the runtime directory.
  • gzip: gzip the file on the server, so that it will use less network bandwidth for each download. Details here.
  • url: URLs from which the file can be downloaded. Use this if you want to mirror your executables on separate servers. The executables must be present on the main server, at least while update_versions is run.

You only need to list files that have a main_program or copy_file attribute, or whose logical name is different from its physical name.

Other options:

  • dont_throttle: set if the app does its own CPU throttling (e.g., the Virtualbox wrapper).

If the application has only one file (the main program), you don't need a version.xml file.

If your application includes executable files other than the main program, make sure that their user execute (u+x) flag is set (relevant for Unix and Mac versions).

Also note that you will want to give your graphics program the logical name 'graphics_app' - so you would want an entry such as the following:

  <file>
    <physical_name>qcn_graphics_6.65_i686-apple-darwin</physical_name>
    <logical_name>graphics_app</logical_name>
  </file>